数码管动态显示程序设计

数码管动态显示程序设计

ID:40501684

大小:516.10 KB

页数:9页

时间:2019-08-03

数码管动态显示程序设计_第1页
数码管动态显示程序设计_第2页
数码管动态显示程序设计_第3页
数码管动态显示程序设计_第4页
数码管动态显示程序设计_第5页
资源描述:

《数码管动态显示程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、电子系统设计专题实验报告学院:电信学院班级:姓名:学号:Email:日期:实验三、数码管动态显示程序设计一、实验目的和要求【实验目的】1.熟悉单片机数码管电路结构原理;2.学会单片机C语言I/O端口编程控制方法;3.学会外部显示部件LED灯的软件编程使用方法;4.学会单片机开发系统的软件调试方法。【实验要求】1.仔细阅读示例程序,了解程序的设计方法,完成示例程序的编译、调试、下载验证,运行结果正确;2.修改示例程序的延时参数及其他参数,使之能够快速稳定的显示1-8的8个数据,即动态扫描显示效果。3.自己设计实现8位数码管能够自动进位计数显示的功能程序,并在实

2、验系统平台完成编译、调试、下载验证,运行结果正确。4.*编写程序,显示教师指定的符号形状。二、实验设备及设计开发环境1.单片机平台:AVRATmega128实验开发板;2.开发环境平台:AVRStudio4.18集成开发软件;WinAVR(GCC)2010C语言编译器;JTAGICEmkII在线仿真器。三、实验的电路原理电路由两个锁存器及8位七段共阳极数码管组成;两个锁存器,分别管理段码和位码,通过使能编程实现段码和位码的操作;位码操作:选定将要进行显示的某一位数码管;段码操作:输出欲显示的字符的段码;程序设计及分析设计思路:1)端口初始化2)关闭位码锁存器

3、,使能段码锁存器(位码锁存使能端输出低电平,段码锁存使能端输出高电平)参考语句:PORTG

4、=_BV(DIG_CS2);//段使能,1PORTG&=~_BV(DIG_CS1);//位关闭,03)送数码管段码参考语句:PORTB=code[j];1)关闭段码锁存器,使能位码锁存器(位段码锁存使能端输出低电平,位码锁存使能端输出高电平)参考语句:PORTG

5、=_BV(DIG_CS1);//1,位使能PORTG&=~_BV(DIG_CS2);//0,段关闭2)送数码管位码参考语句:PORTB=128;6)关闭位码锁存器参考语句:PORTG&=~_BV(DIG_CS

6、1);//0,段关闭PORTG&=~_BV(DIG_CS2);//0,位关闭_delay_ms(1);一、实验结果【任务一】:输出显示八进制计数【任务二】:输出显示倒C一、实验总结完成了输出显示八进制计数和老师指定要输出的倒C,对七段共阳极数码管有了更深的理解,学会了对其进行段、位码操作。附录1软件源代码【任务一】//功能:输出显示八进制计数#include#include#defineDIG_CS1PG3//DIG_CS1与ATmega128的PG3相连,位码#defineDIG_CS2PG4//DIG_CS

7、2与ATmega128的PG4相连,段码#definePB_MASK0xFFuint8_tcode[16]={0xC0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};voidDIG_Init(){PORTB=~PB_MASK;//数据=初始为高电平DDRB=PB_MASK;//输出PORTG&=0x00;//PG是锁存使能端DDRG

8、=_BV(DIG_CS1)

9、_BV(DIG_CS2);//使能位操作:CS1:段CS2:位}intmain(){intm=

10、0,com=1;DIG_Init();while(1){for(inta=0;a<8;++a)//千位{for(inte=0;e<8;++e)//百位{for(inti=0;i<8;++i)//十位{for(intj=0;j<8;++j)//个位{for(intk=0;k<500;++k){//个位//段PORTG

11、=_BV(DIG_CS2);//段使能,1PORTG&=~_BV(DIG_CS1);//位关闭,0PORTB=code[j];//位PORTG

12、=_BV(DIG_CS1);//1,位使能PORTG&=~_BV(DIG_CS2);//0,段关闭PO

13、RTB=128;//关闭PORTG&=~_BV(DIG_CS1);//0,段关闭PORTG&=~_BV(DIG_CS2);//0,位关闭_delay_ms(1);//十位//段PORTG

14、=_BV(DIG_CS2);//使能PORTG&=~_BV(DIG_CS1);//取反0PORTB=code[i];//位PORTG

15、=_BV(DIG_CS1);//1PORTG&=~_BV(DIG_CS2);//0PORTB=64;//关闭PORTG&=~_BV(DIG_CS1);//0PORTG&=~_BV(DIG_CS2);//0_delay_ms(1);//百位//

16、段PORTG

17、=_BV(DIG_CS2);//使能P

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

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

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