资源描述:
《数码管动态显示程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
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