预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验七数码管动态扫描显示实验实验目的掌握keilC51软件protues软件联合仿真调试的方法;掌握单片机对数码管的动态显示控制方式;掌握定时器的基本应用及编程方法。实验内容1.用Protues设计一8位数码管动态扫描显示电路。要求利用P0口作数码管的段选线P1.0~P1.2与74LS138译码器的3个输入端相连其译码输出Y0~Y7作为数码管的位选线。2.编写程序将数字1~8分别显示在8个数码管上要求显示内容无闪烁。3.编写程序利用Protues中的“激励源/DCLOCK/数字类型/时钟”产生频率为1HZ的方波输出并利用定时/计数器T1统计脉冲的个数将统计结果动态实时的显示在数码管上。该脉冲计数电路在以上电路的基础上自行修改。实验仪器与设备微机一台2.keilc51集成开发环境3.proteus仿真软件实验说明1.动态扫描方法:(1)动态扫描法是对各数码管循环扫描、轮流显示的方法。由于一次只能让一个数码管显示因此要显示8位的数据必须让数码管一个一个轮流显示才可以同时每个数码管显示的时间大约在1ms到4ms之间所以为了保证正确显示每隔1ms就得刷新一个数码管。当扫描显示频率较高时利用人眼的视觉暂留特性看不出闪烁现象这种显示需要一个接口完成字形码的输出(段选)另一接口完成各数码管的轮流点亮(位选)。(2)在进行数码管显示的时候要对显示单元开辟8个显示缓冲区每个显示缓冲区装有显示的不同数据即可。(3)对于显示的字形码数据采用查表方法来完成。2.P0口P0口作为地址/数据总线使用时是一个真正的双向端口;而作通用I/O口时只是一个准双向口由于其内部漏极开路应外接10KΩ的上拉电阻否则无法输出高电平。3.74LS138:3线—8线译码器引脚排列:VccY0Y1Y2Y3Y4Y5Y6151413121110974LS13812345678A0A1A2S3S2S1Y7GND真值表:输入输出S1S2+S3A2A1A0Y0Y1Y2Y3Y4Y5Y6Y70X11111111X100000000XXXXXX00000101001110010111011111111111111111110111111110111111110111111110111111110111111110111111110111111110实验步骤1.用Protues设计数码管动态扫描显示电路;2.在KeilC51中编写键盘识别程序编译通过后于Protues联合调试;3.启动仿真观察数码管显示是否正确;4.用Protues设计脉冲计数电路仿真调试`运行程序并查看效果。实验总结实验电路及程序见附录。数码管动态显示的原理利用人的视觉暂留特性当扫描显示频率较高时眼睛就看不出数码管的闪烁从而实现稳定的显示。注意依次扫描的时间间隔应在5ms左右。扫描一次八个数码管的时间也应在此范围内。用74LS138译码器做数码管的选通信号输入端采用共阴极数码管可容易的实现对其选通控制。在编写程序时注意显示缓冲区的使用即开辟一个把位的叔祖每个显示缓冲区装有显示的不同数据即可实现显示效果。附录:电路图程序1#include<reg51.h>#defineuintunsignedint#defineucharunsignedcharunsignedlongintcntnumtemp;ucharcodetable[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};ucharcodeaddress[]={0x000x010x020x030x040x050x060x07};uchardisbuf[8];voiddelay(uintm){while(m--);}voidmain(void){uchar