数码管动态显示试验报告.doc

上传人:scccc 文档编号:12214720 上传时间:2021-12-02 格式:DOC 页数:6 大小:181KB
返回 下载 相关 举报
数码管动态显示试验报告.doc_第1页
第1页 / 共6页
数码管动态显示试验报告.doc_第2页
第2页 / 共6页
数码管动态显示试验报告.doc_第3页
第3页 / 共6页
数码管动态显示试验报告.doc_第4页
第4页 / 共6页
数码管动态显示试验报告.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《数码管动态显示试验报告.doc》由会员分享,可在线阅读,更多相关《数码管动态显示试验报告.doc(6页珍藏版)》请在三一文库上搜索。

1、实验四 数码管动态显示实验一一、实验要求1. 在 Proteus 软件中画好 51 单片机最小核心电路,包括复位电路和晶振电路2. 在电路中增加四个7段数码管(共阳/共阴自选),将P1 口作数据输出口与 7段数码管数据引脚相连 ,P2.0P2.3 引脚输出选控制信号3. 在 Keil 软件中编写程序 ,采用动态显示法 ,实现数码管分别显示数字1,2,3,4二、实验目的1. 巩固 Proteus 软件和 Keil 软件的使用方法2. 学习端口输入输出的高级应用3. 掌握 7 段数码管的连接方式和动态显示法4. 掌握查表程序和延时等子程序的设计三实验说明本实验是将单片机的 P1 口做为输出口,将四

2、个数码管的七段引脚分别接到P1.0 至P1.7。由于电路中采用共阳极的数码管,所以当P1端口相应的引脚为 0时,对应的数码管段点亮。 程序中预设了数字 0-9 的段码。 由于是让四个数码管显示不同的数值,所以要用扫描的方式来实现。因此定义了 scan 函数,接到单片机的 p2.0 至 p2.3在实验中,预设的数字段码表存放在数组 TAB 中,由于段码表是固定的,因此存储类 型可设为 code 。在 Proteus 软件中按照要求画出电路,再利用 Keil 软件按需要实现的功能编写 c 程序, 生成 Hex 文件, 把 Hex 文件导到 Proteus 软件中进行仿真。 为了能够更好的验证实验要

3、求, 在编写程序时需要延时 0.5s,能让人眼更好的分辨;89C51的一个机器周期包含12个时钟脉冲,而我们采用的是12MHz晶振,每一个时钟脉冲的时间是1/12us ,所以一个机器周期为1us。在keil程序中,子函数的实现是用 void delay_ms(int x),其中x为1时是代表1ms。四、硬件原理图及程序设计(一)硬件原理图设计电路中P1.0到P1.7为数码管七段端口的控制口,排阻RP1阻值为220 Q,p2.0到p2.3为数码管的扫描信号。AT89C51单片机的9脚(RST )为复位引脚,当 RST为高电平的时间达到2个机器周期时系统就会被复位;31引脚(EA)为存取外部存储器

4、使能引脚,当EA为高电平是使用单片机内部存储器,当EA为低电平时单片机则使用外部存储器。18、19弓I脚是接晶振脚。而接地和电源端在软件中已经接好,所以不用在引线。如下图所示:| n n Q3 QI宀|1±.-|血IP H PPNPIr3.T/ir& 扫 SWJW P'SJErr-i P3.44TQ e za/IHTi P3JBHWTEI n.inrMDi rJiRjXfr« 111ng 5s ZJK 三 空FZLTfAlS- rzjwAisP31 «/jRl17r辽-ini nFZA10PZ.U/OPTIWASZ .WA.D4n喧金p<F

5、.WAD 4 -3ADZ .VAU1 IfADD X:;:3-» ZJ-可编辑修改-(二)流程图与程序设计定义8051寄存器头文件/定义扫描信号的位置定义数码管的位置数字04的码值数字59的码值定义要显示的数值/声明延时函数定义扫描(三)程序设源代码#in clude <reg51.h>#defi neSEG7P P1#defi neSCANP P2char code TAB10=0xc0, 0xf9, 0xa4, OxbO, 0x99,0x92, 0x83, 0xf8, 0x80, 0x98 ;char disp4=1,2,3,4;void delay_ms(i nt

6、x);char scan 4=0xfe,0xfd,0xfb,0xf7;char i,j;定义变量i, jmain()/主函数的开始解决的方法:while(1) for(i=0;i<4;i+)j=disp3-i;SCANP =scani;SEG7P =TABj;delay_ms(4);void delay_ms(int x) int i,j;for (i=0;i<x;i+)for (j=0;j<120;j+);五实验总结问题一: 运行电路时,数码管乱码解决的方法:重新运行。检查电路,发现程序中扫描信号端口错误,将扫描信号的端口顺序调换, 重新运行后,数码管只显示其中的一部分。检

7、查程序,发现是延时时间的问题,在改动延时时间后,重新编译后在次问题二:/无限循环/从/取出显示的数值/扫描的顺序/将 TAB 的数值赋给数码管/延时 4ms-可编辑修改 -运行电路,电路正常显示,符合要求。通过本次的实验,在前两个实验的基础上让我复习了知识点,也让我在次掌握了新的知 识。在完成这次实验后,让我想到可以用多个按键控制多个数码管实现加减和暂停和开始。 我觉得这次的课程实验让我知道, 一次次的失败, 并不会让我放弃去追求, 相反它会引领着 我去发现问题, 从而解决问题, 完成更深入的探索。也让我明白理论知识的重要性,并且与 实际相结合,多动手,在实践中成长。所以我会很重视每一次的实验。我坚信:每次实验都 会给我自身很大帮助。慢慢的积累点滴的知识,到最后就会多的。-可编辑修改 -Welcome ToDownload !欢迎您的下载,资料仅供参考!-可编辑修改-

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1