实验七-单片机数码管动态扫描显示实验.doc

实验七-单片机数码管动态扫描显示实验.doc

ID:52715566

大小:68.00 KB

页数:5页

时间:2020-03-29

实验七-单片机数码管动态扫描显示实验.doc_第1页
实验七-单片机数码管动态扫描显示实验.doc_第2页
实验七-单片机数码管动态扫描显示实验.doc_第3页
实验七-单片机数码管动态扫描显示实验.doc_第4页
实验七-单片机数码管动态扫描显示实验.doc_第5页
资源描述:

《实验七-单片机数码管动态扫描显示实验.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验七数码管动态扫描显示实验一、实验目的1.掌握keilC51软件protues软件联合仿真调试的方法;2.掌握单片机对数码管的动态显示控制方式;3.掌握定时器的基本应用及编程方法。二、实验内容1.用Protues设计一8位数码管动态扫描显示电路。要求利用P0口作数码管的段选线,P1.0~P1.2与74LS138译码器的3个输入端相连,其译码输出Y0~Y7作为数码管的位选线。2.编写程序,将数字1~8分别显示在8个数码管上,要求显示内容无闪烁。3.编写程序,利用Protues中的“激励源/DCLOCK/

2、数字类型/时钟”产生频率为1HZ的方波输出,并利用定时/计数器T1统计脉冲的个数,将统计结果动态实时的显示在数码管上。该脉冲计数电路在以上电路的基础上自行修改。三、实验仪器与设备1.微机一台2.keilc51集成开发环境3.proteus仿真软件四、实验说明1.动态扫描方法:(1)动态扫描法是对各数码管循环扫描、轮流显示的方法。由于一次只能让一个数码管显示,因此,要显示8位的数据,必须让数码管一个一个轮流显示才可以,同时每个数码管显示的时间大约在1ms到4ms之间,所以为了保证正确显示,每隔1ms,就得

3、刷新一个数码管。当扫描显示频率较高时,利用人眼的视觉暂留特性,看不出闪烁现象,这种显示需要一个接口完成字形码的输出(段选),另一接口完成各数码管的轮流点亮(位选)。(2)在进行数码管显示的时候,要对显示单元开辟8个显示缓冲区,每个显示缓冲区装有显示的不同数据即可。(3)对于显示的字形码数据采用查表方法来完成。2.P0口P0口作为地址/数据总线使用时是一个真正的双向端口;而作通用I/O口时,只是一个准双向口,由于其内部漏极开路,应外接10KΩ的上拉电阻,否则无法输出高电平。3.74LS138:3线—8线译

4、码器引脚排列:VccY0Y1Y2Y3Y4Y5Y616151413121110974LS13812345678A0A1A2S3S2S1Y7GND真值表:输入输出S1S2+S3A2A1A0Y0Y1Y2Y3Y4Y5Y6Y70X11111111X100000000XXXXXX00000101001110010111011111111111111111110111111110111111110111111110111111110111111110111111110111111110一、实验步骤1.用Protues

5、设计数码管动态扫描显示电路;2.在KeilC51中编写键盘识别程序,编译通过后,于Protues联合调试;3.启动仿真,观察数码管显示是否正确;4.用Protues设计脉冲计数电路,仿真调试`运行程序并查看效果。二、实验总结1、实验电路及程序见附录。2、数码管动态显示的原理利用人的视觉暂留特性,当扫描显示频率较高时,眼睛就看不出数码管的闪烁,从而实现稳定的显示。注意依次扫描的时间间隔应在5ms左右。扫描一次八个数码管的时间也应在此范围内。3、用74LS138译码器做数码管的选通信号输入端,采用共阴极数码

6、管可容易的实现对其选通控制。4、在编写程序时注意显示缓冲区的使用,即开辟一个把位的叔祖,每个显示缓冲区装有显示的不同数据即可实现显示效果。附录:电路图程序1#include#defineuintunsignedint#defineucharunsignedcharunsignedlongintcnt,num,temp;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};ucharcodeaddress

7、[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};uchardisbuf[8];voiddelay(uintm){while(m--);}voidmain(void){uchari;TMOD=0x10;ET1=1;TR1=1;EA=1;while(1){num=cnt*65536+TH1*256+TL1;if(num==100000000)num=0;temp=num;for(i=0;i<8;i++){disbuf[i]=temp%10;temp=temp/10;

8、}for(j=0;j<8;j++){P1=address[7-j];P0=table[disbuf[j]];delay(100);}}}voidtc1()interrupt3{cnt++;}程序2#include#defineuintunsignedint#defineucharunsignedcharucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。