单片机实例之数码管PPT推荐.ppt
- 文档编号:15658150
- 上传时间:2022-11-11
- 格式:PPT
- 页数:46
- 大小:668KB
单片机实例之数码管PPT推荐.ppt
《单片机实例之数码管PPT推荐.ppt》由会员分享,可在线阅读,更多相关《单片机实例之数码管PPT推荐.ppt(46页珍藏版)》请在冰豆网上搜索。
程序中将数组元素依次读出送到端口,使数码管显示出对应的数字。
程序的设计框图见图4-5。
图4-51、C语言程序:
#include#defineucharunsignedcharunsignedcharcodetable=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;
unsignedchardispcount;
voiddelay02s()unsignedchari,j,k;
for(i=10;
i0;
i-)for(j=200;
j0;
j-)for(k=248;
k0;
k-);
voidmain(void)while
(1)for(dispcount=0;
dispcount10;
dispcount+)P1=tabledispcount;
delay02s();
任务二任务二LED数码管的动态显示数码管的动态显示本任务就是当单片机与数码管接成动态显示方式,编程实现数码管的0-7数字显示。
一、电路原理动态显示的电路有很多,本课题中所选用的动态显示的电路有很多,本课题中所选用的电路如图电路如图4-6所示。
图中用的是两只四位数码管。
所示。
每只已将所有数码管的每只已将所有数码管的ah分别连接在一起,再分别连接在一起,再将两只四位数码管的将两只四位数码管的ah连接在一起,即将八只连接在一起,即将八只数码管八段显示的数码管八段显示的段码控制线连接段码控制线连接在一起,作为在一起,作为整个数码管的段码控制。
单片机端口驱动能力不整个数码管的段码控制。
单片机端口驱动能力不足,在段码上使用足,在段码上使用74LS373提高数码管亮度。
对提高数码管亮度。
对每只数码管的公共端进行控制,使每只数码管的公共端进行控制,使每只数码管可每只数码管可以单独显示以单独显示。
电路中,将每个数码管的。
电路中,将每个数码管的COM端接端接位选信号位选信号dig,该引脚为低电平即接通显示,实现,该引脚为低电平即接通显示,实现数码管的位控制。
数码管的位控制。
图4-6数码管原理图三、74LS138译码器:
74LS138为3线8线译码器,其工作原理如下:
当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。
图4-474LS138引脚图n真值表:
表4-274LS138功能表图4-6数码管原理图1、C语言程序:
#include#defineucharunsignedcharsbita=P05;
sbitb=P06;
sbitc=P07;
ucharcodetable=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;
uchardispcount;
voiddelay02s(void)unsignedchari,j,k;
dispcount+)a=0;
b=0;
c=0;
P1=tabledispcount;
2、汇编语言程序:
org00haa:
movr0,#00hmovdptr,#tabclrp0.5clrp0.6clrp0.7sd:
mova,r0movca,a+dptrlcalldelaymovp1,aincr0cjner0,#10,sdsjmpaadelay:
movr6,#5SS:
MOVR7,#200LOOP:
MOVR5,#249DJNZR5,$DJNZR7,LOOPDJNZR6,SSrettab:
db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhend如图如图4-6所示电路,在电路连接上将所有要显所示电路,在电路连接上将所有要显示的数码管的八个端并接在单片机同一个端口的示的数码管的八个端并接在单片机同一个端口的八位上,而用单片机的另一个端口的各个位分别八位上,而用单片机的另一个端口的各个位分别控制各数码管的公共端,控制数码管是否点亮。
控制各数码管的公共端,控制数码管是否点亮。
在程序的控制下,在程序的控制下,快速地依次输出要显示各个数,快速地依次输出要显示各个数,并同时控制对应数码管工作并同时控制对应数码管工作,这就是数码管的动,这就是数码管的动态显示方式。
态显示方式。
宏观看同时点亮,微观看依次点亮宏观看同时点亮,微观看依次点亮图4-6数码管原理图动态显示达到一定速度时,由于人眼的视觉暂动态显示达到一定速度时,由于人眼的视觉暂留特性,在观察时,数码管所有内容如同静态显留特性,在观察时,数码管所有内容如同静态显示一样,不会产生闪烁。
所以,对动态扫描的频示一样,不会产生闪烁。
所以,对动态扫描的频率有一定的要求,率有一定的要求,频率频率频率频率太低太低太低太低,LED数码管将出现数码管将出现闪烁闪烁闪烁闪烁现象。
如现象。
如频率太高频率太高频率太高频率太高,由于每个,由于每个LED数码管点数码管点亮的时间太短,亮的时间太短,LED数码管的亮度太低,数码管的亮度太低,无法看无法看无法看无法看清清清清。
所以,显示时间一般取。
所以,显示时间一般取几个几个ms左右为宜。
在左右为宜。
在编写程序时,常采用调用延时子程序来达到要求编写程序时,常采用调用延时子程序来达到要求的保持时间。
程序工作时,使电路的保持时间。
程序工作时,使电路选通某一位数选通某一位数码管后,该数码管被点亮后并保持一定的时间码管后,该数码管被点亮后并保持一定的时间。
下面,以在数码管上从左到右依次显示出下面,以在数码管上从左到右依次显示出88个数个数字(字(0077)为例,编写动态显示程序。
程序中将)为例,编写动态显示程序。
程序中将要显示的八个数字放在一个数组中(该数组取名要显示的八个数字放在一个数组中(该数组取名为为display_datadisplay_data)。
如果从段码输出端口来看,)。
如果从段码输出端口来看,动态显示程序的显示段码输出的过程,其实质和动态显示程序的显示段码输出的过程,其实质和静态显示八个数字是一样的,依次输出各个段码;
静态显示八个数字是一样的,依次输出各个段码;
从位码端口看,要哪只数码管显示,就在那只数从位码端口看,要哪只数码管显示,就在那只数码对应位输出码对应位输出11,显示一个数字后,则下一位输出,显示一个数字后,则下一位输出高电平,这与跑马灯的控制是一样的。
将这两个高电平,这与跑马灯的控制是一样的。
将这两个程序结合起来,就是动态显示程序,流程图如图程序结合起来,就是动态显示程序,流程图如图4-74-7所示。
二、程序分析二、程序分析图4-7动态显示流程图变量赋初值化将数组display_data中第i个元素送段码端口等待一段时间Yesi8No变量指向下一个数据输出位码控制数据1、C语言程序:
#include#defineucharunsignedcharucharcodetabledu=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;
ucharcodetablewe=0x1f,0x3f,0x5f,0x7f,0x9f,0xbf,0xdf,0xff;
voiddelaynms(unsignedcharn)unsignedchari,j;
for(i=n;
i-)for(j=250;
j-);
dispcount8;
dispcount+)P1=tabledudispcount;
P0=tablewedispcount;
delaynms(20);
/10ms,12MHz思考n1.若位控制不是由74Ls138控制,而是由P0口直接控制,程序应该做如何修改?
n2.两种位控制方式,各有什么优缺点?
任务三任务三099999999加法计数器加法计数器本任务是实现本任务是实现099999999的加的加1计数显示。
计数显示。
程序设计分析1.需要定义一个变量,记录加1后的结果,该变量初值为0,问该变量定义为何种类型?
unsignedcharx8=0;
2.对x加13.将x送显,4.延时5.跳转到2.#includeunsignedcharcodetabledu=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;
unsignedcharcodetablewe=0x1f,0x3f,0x5f,0x7f,0x9f,0xbf,0xdf,0xff;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实例 数码管
![提示](https://static.bdocx.com/images/bang_tan.gif)