ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:120.57KB ,
资源ID:17594867      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17594867.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机原理数码管动态显示实验单片机原理实验报告材料文档格式.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机原理数码管动态显示实验单片机原理实验报告材料文档格式.docx

1、2 Proteus ISIS 7 Professional 应用程序3 Keil 应用程序实验内容:数码管动态显示技术 要求实现:1动态显示法,实现数码管分别显示数字 1-8 ;2实现指定数值的显示 (可使用 缓存数值) ( 33355223);3实现类似时钟的效果,如“ 13-23-25 ” 13 时 23分 25 秒; 4实现时钟的自动计时;扩展要求: 结合 LED显示,实现带数码显示的交通灯;实验步骤、实验结果及分析:1 实验步骤:1、使用 Proteus ISIS 7 Professional 应用程序,建立一个 .DSN 文件2、在“库”下拉菜单中, 选中“拾取元件”(快捷键 P),

2、分别选择以下元件: AT89C51、CAP、CAP-ELEC、 CRYSTA、L RESPACK-8。3、构建仿真电路:连接图显示 1-8显示 33355223显示时间 13.23.25时钟自动计时红绿灯效果图 1红绿灯效果图 25、把用户程序经过编译后生成的2 实验程序 定义数组LedcodeY)P3=1=60)While (1)Sec1=20-comsec;Sec2=30-comsec;R1=1;y1=0;g1=0; r2=0;y2=0;g2=1;comse sec+1) % 60;,ms=0For (i=0;i=20& comsec60)=3050)Sec2=50-comsec;R1=0

3、;g1=1;程序源代码:#include#define uchar unsigned char#define uint unsigned intuchar code Ledcode=定义一个数组里面放0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; / 入 1-8void delay(uint x)while(x-);void main()uchar i;while(1)for(i=0;8;i+)i; /P3 口表示从第一个位开始显示数值P2=Ledcodei; /P2 口用来显示所需要显示的数值 delay(500);2.实现指定数值的显示 (可使用

4、 缓存数值) ( 33355223);unsigned char code LedCode= 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40 ;unsigned char DispBuf8=3,3,3,5,5,2,2,3; / 指定要显示的数的位置 void delay(unsigned int x)unsigned int i;i+)P2=LedCodeDispBufi; / 显示指定数的位置 delay(500);3.实现类似时钟的效果,如“ 13-23-25 ” 13 时 23 分 25 秒;unsigned char cod

5、e LedCode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40;unsigned char Hour=13,Min=23,Sec=25;unsigned char DispBuf8; void delay(unsigned int x) void PutTime()DispBuf7=Sec%10; /取对应秒数的个位放在最右边显示DispBuf6=Sec/10;取对应秒数的十位放在右起第二位显示DispBuf5=10;DispBuf4=Min%10;此处表示秒跟分之间用横杆隔开DispBuf3=Min/10;DispBuf2=1

6、0;DispBuf1=Hour%10;DispBuf0=Hour/10; void main()long n=0; while(1) unsigned char i;PutTime();delay(500);4.实现时钟的自动计时;void delay(unsigned int x)unsigned char i,ms; / 定义一个 ms 用于控制秒数加一的延时 PutTime();ms+; / 控制加一的时延if(ms=20)Sec+;ms=0;if(Sec=60) / 表示进位,当秒满六十则向分钟进一,同时秒数清零 Min+;Sec=0;if(MinHour+;Min=0;if(Hour

7、=24) / 当小时数满 24 小时时,则小时数清零,完成计时 Hour=0;5.扩展要求:#include reg52.h#define Disp_Null 10uchar code LedCode= 0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x40;uchar DispBuf8;sbit r1=P20;sbit y1=P21;sbit g1=P22;sbit r2=P23;sbit y2=P24;sbit g2=P25;uchar sec1;sec2;comsec;void PntTime( )DispBuf3=sec2 % 1

8、0;DispBuf2=sec2 / 10;DispBuf1=sec1 % 10;DispBuf0=sec1 / 10;void display()for (i = 0;i =60)comsec=(comsec+1) % 60; / 定义一个计数变量 , 使其一直保持在 60 内 if( comsec =20 &30) /comsec 在 20 与 30 之间时 y2 、 r1亮=30 &50) /g1 、 r2 在 comsec增加 20 内亮 sec2=50-comsec;r1=0;r2=1;=50) sec2=60-comsec;过程总结:本实验是将单片机的 P2口做为输出口,将四个数码管

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

10、)先准备好要显示的数据,放入相应的显示存储单元中。2)根据要使用的数码管的具体位置来确定扫描初值和扫描方向。3)根据使用数码管的个数来确定扫描的位数。4)查表将要显示的数据转换为能使数码管正确显示相对应的段码。5)分时送段码和位码,数码管开始循环显示。指导教师评语:1、完成所有规定的实验内容,实验步骤正确,结果正确;2、完成绝大部分规定的实验内容,实验步骤正确,结果正确;3、完成大部分规定的实验内容,实验步骤正确,结果正确;评定等级: A(优秀) B(良好) C(中等) D(及格) E (不及格)成绩评定教师签字年月日 备注:注: 1、报告内的项目或设置,可根据实际情况加以补充和调整2 、教师批改学生实验报告应在学生提交实验报告 10 日内

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1