




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数码管动态显示模块设计实验目的1、理解数码管动态显示原理2、理解数码管动态显示电路的设计方法3、掌握数码管动态显示程序的设计方法4、掌握单片机定时器与中断系统的使用方法实验仪器单片机开发板、万利仿真机、稳压电源、计算机实验原理1、数码管动态显示原理几乎所有的单片机应用系统都要用到数码显示。数码显示是一个占用IO资源较多、程序设计较复杂的模块。在设计时,应从IO占用与软件复杂程度两方面考虑。这里以8位数码管动态显示电路以例说明工作原理。电路如图4-4所示。vacLEtlQ5Q553012DSOCid-LEEMLEEMLEE2色宀一訂二.宀LEtlQ5Q553012DSOCid-LEEMLEEML
2、EE2色宀一訂二.宀冷rLnuTJ图4-48位数据码动态显示电路数码管显示器的8个笔划段a-hp同名端连在一起,而每一位数码管显示器的公共端(1,2,3,4)各自独立地受三极管控制。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于数码管的公共端,而这一端是由74LS164控制的,所以我们只要控制164的输出数据就可以决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的公共端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各
3、位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。图中100欧电阻起限流作用,保护发光二极管。电阻值越小,发光二极管越亮。2K电阻是位选端限流电阻,保护位选三极管。由上图可知,这里的数码管是共阳极型。数码管上显示一些符号,必须给数码管的笔形口接低电平信号,给要显示的位公共端送高电平,相应位的数码管就可以显示所要的符号。2、数码管动态显示程序设计数码管动态显示程序包含显示数字、部分字母符号、小数点、数码管闪烁、数码管消隐等。其它程序输出到显示程序的数据既可以是BCD码、二进制码、ASCII码、自定义显示码等。假设显示的符号与数据的对应关系如下:显示符号
4、0123456789数据00H01H02H03H04H05H06H07H08H09H显示符号ABCDEFH全亮全暗-数据OAH0BH0CH0DH0EH0FH10H11H12H13H由硬件电路工作原理可知,为了显示稳定的数据,每秒必须显示数据50次以上,才能达到预期目的。首先设计一个能显示一位数的程序,然后重复执行这段程序,并改变所显示的内容。由上一实验内容可知,可把位选数据的输出用两种方法实现:位选数据每显示一位送一字节;位选数据每显示一位送一位二进制数。程序流程图如4-5所示。输出位选数据-1第一位显示数据?0写入74LS1641上一实验内容可知,可把位选数据的输出用两种方法实现:位选数据每
5、显示一位送一字节;位选数据每显示一位送一位二进制数。程序流程图如4-5所示。输出位选数据-1第一位显示数据?0写入74LS1641写入74LS1641P返回输出位选数据-2DIN=O,CLK=O,位选数据设定为左边第1位显示位选数据左移一位,移出的位送到DIN,CLK产生正脉冲输出数据位数减1返回图4-5数码管动态显示程序流程图3、小数点显示原理在显示数据时,显示小数是一个必要功能。但在前面的分析中,并没有包含显示小数点的内容。小数点的显示方式有:(1)固定式:小数点的显示位置不能改变,程序设计较简单。(2)特征位式:每位二进制数控制一个小数点的亮暗情况,一个字节同时控制8个。(3)计数式:用
6、数字控制第N位的小数点亮。如:5表示第5位小数点亮,其它暗。(4)ASCII码式:送到显示缓冲区的数是ASCII码数据,在包含“.“时,相应位的小数点亮。这里以第(2)种为例说明,其它方式由读者自行设计。假定小数点控制数据dispdot的各位情况如下所示。D7D6D5D4D3D2D1D0第1位小数点开关第2位小数点开关第3位小数点开关第4位小数点开关第5位小数点开关第6位小数点开关第7位小数点开关第8位小数点开关当对应位为1时,小数点亮;当对应位为0时,小数点暗。小数点显示的信息可以在显示码输出之前,也可以在扫描一帧结束后单独显示小点数。原理说明:当显示第一位数据时,判断dispdot的D7是
7、否为1,如果为1点亮第一位小数点,为0熄灭第一位小数点。流程图如图4-6所示。图4-6小数点控制程序流程图4、单片机定时器的工原理MCS-51单片机内部有两个16位可编程的定时器/计数器T0和T1。它们即可用作定时器方式,又可用作计数器方式。其中T0由TH0和TL0计数器构成;T1由TH1和TL1计数器构成。工作于定时器方式时,通过对机器周期(新型51单片机可以对振荡周期计数)的计数,即每一个机器周期定时器加1,来实现定时。故系统晶振频率直接影响定时时间。如果晶振频率为12MHZ,则定时器每隔(1/12MHZ)X12=1us力加1。工作于计数器方式时,对P3.4或P3.5管脚的负跳变(1-0)
8、计数。它在每个机器周期的S5P2时采样外部输入,当采样值在这个机器周期为高,在下一个机器周期为低时,计数器加1。因此需要两个机器周期来识别一个有效跳变,故最高计数频率为晶振频率的1/24。特殊功能寄存器TMOD用于定时器/计数器的方式控制。高4位用于设置T1,低4位用于设置T0。如图4-7所示。D7D6D5D4D3D2DIDOTM0DGATEC/IMlM0GATECTMlMOnT1方式控制亠TO方式控制图4-7定时器模式控制字格式TCON寄存器用于定时器的计数控制和中断标志。如图4-8所示。D7D6D5D4D3D2D1TCONTF1TRITFOTROIE1IT1IE0用于外部中制位置1;(2)
9、根据需要设置工作方式,即对TMOD设置;(3)然后启动计数,即对TR0或TR1置1。(4)如使用中断,则计数溢出后硬件会自动转入中断入口地址;如使用查询,则必须对溢出中断标志位TF0或TF1进行判断。5、用定时器编写一个秒计时器假设系统使用的晶振频率为12MHZ,即每个机器周期为1us。如使用方式1,则定时时间最长是216X1us=65536us=65.536ms,小于1s。故必须设置一个软件计数单元,即假设定时器定时中断时间为50ms,则必须定时中断20次才达到1s并对秒计时单元加1,20即为软件计数次数。最后再把秒计时单元的值转成显示数码送显示缓冲区。图4-9定时器应用程序流程图6、单片机
10、中断系统结构及工作原理标准51单片机的中断系统有五个中断源。分别为:中断源入口地址优先级别(同级)外部中断00003H最高定时器0溢出000BH外部中断10013H定时器1溢出001BH串行口中断0023H最低使用中断之前,必须对中断允许寄存器IE进行设置,将中断允许标志EA和对应中断图4-10MSC51图4-10MSC51中断结构图位置1,CPU中断的过程为:当有中断源发生中断信号时,首先对IE中对应的中断位判断;如打开,则进行EA判断;如EA=1,将根据中断优先级IP的设置情况进行优先级判别;如该中断优先级较高,在硬件控制下,先将程序计数器PC的内容压入堆栈,同时把被响应的中断服务程序的入
11、口地址装入PC中,以执行中断服务程序。中断服务程序的最后一条指令必须是中断返回指令RETIoCPU执行完这条指令后,将从堆栈中弹出两个字节内容(断点地址)装入PC中,从而执行被中断的程序。实验内容1、在数码管上显示学号的后8位程序如下include/*动态数码管显示,共阳极*/#defineuintunsignedint#defineucharunsignedchar#includesbitCLK=P3A4;sbitDIN=P2A3;uinti;ucharcodeduan=0 x03,0 x9f,0 x25,0 x0d,0 x99,0 x49,0 x41,0 x1f,0 x01,0 x09;/
12、小数点不亮,段码0-9voiddelay(uintxms)uinti,j;for(i=xms;i0;-i)for(j=110;j0;-j);voidmach()DIN=1;CLK=0;_nop_();CLK=1;_nop_();voidmain()while(1)for(i=0;i8;i+)mach();DIN=0;CLK=0;_nop_();CLK=1;_nop_();P0=0 xff;P0=duan2;显示第一个数码管delay(2);mach();P0=0 xff;P0=duan2;显示第二个数码管delay(2);mach();P0=0 xff;PO=duanO;显示第三个数码管del
13、ay(2);mach();P0=0 xff;P0=duan2;显示第四个数码管delay(2);mach();P0=0 xff;P0=duan8;显示第五个数码管delay(2);mach();P0=0 xff;PO=duanO;显示第六个数码管delay(2);mach();P0=0 xff;P0=duan4;显示第七个数码管delay(2);mach();P0=0 xff;P0=duan9;显示第八个数码管delay(2);2、设计一个以学号后两位加10秒的倒计时程序程序如下#include#include#defineucharunsignedchar#defineuintunsigne
14、dintucharcodenumber=0 x03,0 x9f,0 x25,0 x0d,0 x99,0 x49,0 x41,0 x1f,0 x01,0 x09;uchara8;uintcounter=0;sbitCLK=P3人4;sbitDIN=P2A3;voidDelay(uchart)uchari;while(t-)for(i=120;i0;i-);voidrefresh_led()staticucharj=0;switch(j)_nop_();CLK=1;_nop_();_nop_();CLK=1;_nop_();_nop_();CLK=1;_nop_();_nop_();CLK=1;_
15、nop_();_nop_();CLK=1;_nop_();_nop_();CLK=1;_nop_();_nop_();CLK=1;_nop_();CLK=0;j+;P0=numbera0;Delay(2);/break;case1:DIN=1;CLK=0;CLK=0;j+;P0=numbera1;Delay(2);/break;case2:DIN=1;CLK=0;CLK=0;j+;P0=numbera2;Delay(2);/break;case3:DIN=1;CLK=0;CLK=0;j+;P0=numbera3;Delay(2);/break;case4:DIN=1;CLK=0;CLK=0;j
16、+;P0=numbera4;Delay(2);/break;_nop_();CLK=1;_nop_();_nop_();CLK=1;_nop_();_nop_();CLK=1;_nop_();_nop_();CLK=1;_nop_();_nop_();CLK=1;_nop_();case6:DIN=1;CLK=0;CLK=0;j+;P0=numbera6;Delay(2);/break;case7:DIN=1;CLK=0;CLK=0;j=0;P0=numbera7;Delay(2);break;default:break;voidmain()TMOD|=0 x10;TH1=0 xfc;TL1=
17、0 x67;TR1=1;ET1=1;EA=1;while(1);voidtimer1()interrupt3staticucharsec=32;uchari;TH1=0 xb1;TL1=0 xe0;counter+;if(counter=50)counter=0;a0=sec%10;a1=sec/10%10;a2=sec/100%10;a3=0;a4=0;a5=0;a6=0;a7=0;sec-;for(i=0;i8;i+)DIN=1;CLK=0;_nop_();CLK=1;_nop_();refresh_led();思考题1、运行上面的程序,计算显示程序每秒运行的次数?2、请说明数码管的消隐(数据不显示,内
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校招高中物理面试题目及答案
- 有效风险应对策略试题及答案
- 网络管理员考试技能提升策略试题及答案
- 高效团队合作的开发流程试题及答案
- 法学概论的前沿问题试题及答案
- 校招:网络工程师面试题及答案
- 脚本语言与系统编程语言的比较的试题及答案
- 法学概论中对法律条文的解读试题及答案
- 网络管理员考试现场试题及答案导航
- 法学观点的多样性试题及答案
- 人工智能标准化白皮书
- 2021译林版高中英语选择性必修一课文翻译
- 0720小罐茶品牌介绍
- 二级、三级电箱接线图
- 2022年食品卫生通则第三版(中文版)
- 颈椎功能障碍指数,Neck Disabilitv Index,NDI
- 名著导读《红楼梦》PPT课件(完整版)
- 吉林省办学基本标准手册
- 4车道高速公路30米预应力混凝土简支T梁桥上部结构设计_论文
- 2020年广东省中考物理试卷分析
- 脱氨蒸氨工段操作规程
评论
0/150
提交评论