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

上传人:人*** 文档编号:487802364 上传时间:2022-10-25 格式:DOC 页数:5 大小:55KB
返回 下载 相关 举报
实验七单片机数码管动态扫描显示实验_第1页
第1页 / 共5页
实验七单片机数码管动态扫描显示实验_第2页
第2页 / 共5页
实验七单片机数码管动态扫描显示实验_第3页
第3页 / 共5页
实验七单片机数码管动态扫描显示实验_第4页
第4页 / 共5页
实验七单片机数码管动态扫描显示实验_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《实验七单片机数码管动态扫描显示实验》由会员分享,可在线阅读,更多相关《实验七单片机数码管动态扫描显示实验(5页珍藏版)》请在金锄头文库上搜索。

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

2、动态实时的显示在数码管上。该脉冲计数电路在以上电路的基础上自行修改。三、 实验仪器与设备1. 微机一台 2.keil c51 集成开发环境 3.proteus 仿真软件四、 实验说明1.动态扫描方法:(1)动态扫描法是对各数码管循环扫描、轮流显示的方法。由于一次只能让一个数码管显示,因此,要显示8位的数据,必须让数码管一个一个轮流显示才可以,同时每个数码管显示的时间大约在1ms到4ms之间,所以为了保证正确显示,每隔1ms,就得刷新一个数码管。当扫描显示频率较高时,利用人眼的视觉暂留特性,看不出闪烁现象,这种显示需要一个接口完成字形码的输出(段选),另一接口完成各数码管的轮流点亮(位选)。(2

3、)在进行数码管显示的时候,要对显示单元开辟8个显示缓冲区,每个显示缓冲区装有显示的不同数据即可。(3)对于显示的字形码数据采用查表方法来完成。2.P0口 P0口作为地址/数据总线使用时是一个真正的双向端口;而作通用I/O口时,只是一个准双向口,由于其内部漏极开路,应外接10K的上拉电阻,否则无法输出高电平。3.74LS138:3线8线译码器引脚排列: Vcc Y0 Y1 Y2 Y3 Y4 Y5 Y616 15 14 13 12 11 10 9 74LS1381 2 3 4 5 6 7 8 A0 A1 A2 S3 S2 S1 Y7 GND真值表:输入输出S1S2+S3A2 A1 A0Y0 Y1

4、Y2 Y3 Y4 Y5 Y6 Y70X11111111X100000000X X X X X X 0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 10 1 1 1 1 1 1 11 0 1 1 1 1 1 11 1 0 1 1 1 1 11 1 1 0 1 1 1 11 1 1 1 0 1 1 11 1 1 1 1 0 1 11 1 1 1 1 1 0 11 1 1 1 1 1 1 0五、 实验步骤1 用Protues设计数码管动态扫描显示电路;2 在KeilC51中编写键盘识别程序,编译通过后,于Pro

5、tues联合调试;3 启动仿真,观察数码管显示是否正确;4 用Protues设计脉冲计数电路,仿真调试运行程序并查看效果。六、 实验总结1、 实验电路及程序见附录。2、 数码管动态显示的原理利用人的视觉暂留特性,当扫描显示频率较高时,眼睛就看不出数码管的闪烁,从而实现稳定的显示。注意依次扫描的时间间隔应在5ms左右。扫描一次八个数码管的时间也应在此范围内。3、 用74LS138译码器做数码管的选通信号输入端,采用共阴极数码管可容易的实现对其选通控制。4、 在编写程序时注意显示缓冲区的使用,即开辟一个把位的叔祖,每个显示缓冲区装有显示的不同数据即可实现显示效果。附录:电路图程序1#include

6、#define uint unsigned int#define uchar unsigned charunsigned long int cnt,num,temp;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar code address=0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07; uchar disbuf8;void delay(uint m)while(m-);void main(void) uchar i; TMOD=0x10; ET1=1; TR1=1

7、; EA=1;while(1) num=cnt*65536+TH1*256+TL1; if(num=) num=0; temp=num; for(i=0;i8;i+) disbufi=temp%10; temp=temp/10; for(j=0;j8;j+) P1=address7-j;P0=tabledisbufj; delay(100); void tc1() interrupt 3 cnt+;程序2#include#define uint unsigned int#define uchar unsigned charuchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar code address=0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07;void delay(uint);void main() uchar m=0; while(1) if(m=8) m=0; P1=addressm; P0=tablem+; delay(500); void delay(uint m) while(m-);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号