《数码管的控制器的设计与实现(共21页).doc》由会员分享,可在线阅读,更多相关《数码管的控制器的设计与实现(共21页).doc(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上课程设计任务书学生姓名:谢斌 专业班级:通信1002 指导教师:黄秋元 工作单位:信息学院 题 目: 数码管显示控制器的设计与实现 初始条件:Keil软件Proteus软件单片机的相关知识要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)能自动一次显示出数字 0、1、2、3、4、5、6、7、8、9(自然数列),1、3、5、7、9(奇数列), 0、2、4、6、8(偶数列),0、1、2、3、4、5、6、7、0、1(音乐符号序列);然后再从头循环;打开电源自动复位,从自然数列开始显示。时间安排:序号阶段内容所需时间1选题,原理方案设计2天2电
2、路原理图、印刷版图设计、电路的仿真、实物制作3天3撰写报告1天4答辩1天合计7天指导教师签名: 2012 年 7 月 日系主任(或责任教师)签名: 2012年 7 月 日目 录摘 要 本次设计的数码管显示控制器是可以循环显示:(1) 0、1、2、3、4、5、6、7、8、9(自然数列),1、3、5、7、9(奇数列), 0、2、4、6、8(偶数列),0、1、2、3、4、5、6、7、0、1(音乐符号序列);开机启动时先显示自然数列。采用单片机对数码管进行控制,以单片机为核心。本系统大部分功能由软件来实现,吸收了硬件软件化的思想,大部分功能通过软件来实现,使电路简单明了,系统稳定性大大提高。应用定时器
3、对数码管显示时间进行精确控制。其中应用Keil软件进行编程,Proteus搭建仿真电路并且和Keil进行连调。关键词:单片机,Keil,ProteusAbstractThe design of the digital tube display controller can cycle show: (1)0,1,2,3,4,5,6,7,8,9( the natural numbers ),1,3,5,7,9( odd columns ),0,2,4,6,8( even-numbered ),0,1,2,3,4,5,6,7,0,1( music symbol sequence ); boot wh
4、en the first display of nature series.The application of single-chip microcomputer in digital tube control, with the single-chip microcomputer as the core. This system most of the functions are realized by software, absorb the ideas of hardware and software, most of the functions by software, so tha
5、t the circuit is simple, greatly improve the stability of the system. Application of the timer on the digital tube display time to carry on the accuracy control. The application of Keil software programming, Proteus building simulation circuit and Keil sandhi.Key words: SCM, Keil, Proteus1引言现如今,电气化领
6、域渗透到我们的生活的内容已经越来越宽泛了,对我们的影响也越来越大了,所以,学好有关“电”的知识对我们的未来有很大的帮助。我们作为通信工程专业的学生,更应该好好学习有关模电和数电的知识,因为它们是相辅相成的。然而,要想学好这两门课程单靠看书本的内容是很难学好的,有效的学习方法应该是理论与实践的结合。所以,我们必须要认真对待所有的实验设计练习,在实际的设计实践中发现自己的不足并克服各种困难从而提高自己的能力。我经过不断的探讨与合作研究后,终于亲手完成了我的设计,对单片机有了更深刻的认识,我感到无比的高兴。2设计方案2.1方案一基本门电路法本控制器主要由四部分构成1) 包括一个30进制计数器,负责产
7、生0到29这三十个数,并循环;2) 一个译码后再编码成三十个要求的四位二进制数(0 1 2 3 4 5 6 7 8 9 (自然数列),1 3 5 7 9 (奇数数列),0 2 4 6 8 (偶数数列),0 1 2 3 4 5 6 7 0 1 (音乐符号数列);3) 一个BCD八段显示译码器,负责将编码译码电路产生的四位二进制数译码4) 八段数码管由译码器驱动进行显示。30选1数据选择器30进制计数器(循环作用)七段译码器(进行译码)数码管(显示需要的数字) 图2.1.1门电路法原理框图2.2方案二单片机法本控制器主要由两部分构成硬件:1)AT89C51单片机最小系统;2)数码管与单片机的输出端
8、吕进行连接。软件:对单片机进行编程以达到设计要求(0 1 2 3 4 5 6 7 8 9 (自然数列),1 3 5 7 9 (奇数数列),0 2 4 6 8 (偶数数列),0 1 2 3 4 5 6 7 0 1 (音乐符号数列),数码管进行动态显示,其中要用定时器来对显示时间进行准确的控制。2.3方案比较通过比较方案一与方案二,可知方案二的电路简单、易实现,且是由单片机来控制数码管的显示,时间精确。所以本人决定采用方案二来实现数码管显示的控制设计。3硬件电路设计3.1芯片及元器件介绍3.1.1 AT89C51单片机介绍AT89C51是一种低功耗、高性能的片内含有4KB快闪可编程/擦除只读存储器
9、(FPEROM-Flash Programmable and Eraseable Read Only Memory)的8位CMOS微控制器,使用高密度、非易失存储技术制造,并且与80C51引脚和指令系统完全兼容。主要性能:与MCS-51 微控制器产品系列兼容。片内有4KB可在线重复编程的快闪擦写存储器存储数据保存时间为10年全静态工作:可从0Hz至16MHz程序存储器具有3级加密保护128*8位内部RAM32条可编程I/O线两个16位定时器/计数器中断结构具有5个中断源和2个优先级可编程全双工串行通道空闲状态维持低功耗和掉电状态保存存储内容存贮器为64K,前4K/8K20K在CPU内部,其它程
10、序在EPR0M27512中。数据存贮器为32K(62256),地址为8000FFFFH。/O扩展8155,片内RAM地址200O-20FFH8155命令口地址为2100HA口地址21O1H B口地址:2102H C口地址:2103HT低八位2104H T高八位2105HA/D采用精高度,速度快(25us)的AD574,并在其转换前对信号作了采样保持处理。AD574启动地址为:4000H 高八位地址为4002H低四位地址为:4003H多路模拟开关的使用IN0P1=0F8H IN4P1=0FCH IN1P1=0F9H IN5:P1=OFDHIN2P1=0FAH IN5:P1=0FEH IN3P1=
11、0FBH IN7:P1=0FFHP1.0按CD4051的C,P1.1按CD4051的B脚(10)、P1.2按CD4051的A脚(11)。D/A采用0832输出,地址为6000H-6FFFH键盘显示(CZ2)采用8279,地址为:7FFEH-7FFFH日历时钟芯片DS12887,命令寄存器为5000H-500DH,不掉电数据存贮器为500EH-507FH控制板160x1O9(mm) 供电+5V300mA +12V100mA -12V100mA 图3.1.1.1AT89C51实物图 图3.1.1.2AT89C51引角图3.1.2数码管介绍数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码
12、管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管; 按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮
13、。 编辑本段结构 led数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等.,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。led
14、数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用LED数码管内部引脚图片,图3.1.3 这是一个7段两位带小数点10引脚的LED数码管 图3.1.4 引脚定义每一笔划都是对应一个字母表示 DP是小数点. 图3.1.2.3 10引脚的LED数码管 图3.1.2.4 LED数码管引脚定义数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BC
15、D码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要58=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 动态显示驱动数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字
16、形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。3.2硬件电路3.2.1单片机最小系统在Proteus当中构建单片机最小系统电路,晶振为12MHz,如图3.
17、2.1所示图3.2.1单片机最小系统3.2.2整体电路图选用共阳数码管的段选接在单片机的P1端口,十个数码管的片选通过增益接在P2端口和P3.1,P3.2引角构成的电路图如图3.2.2所示图3.2.2总电路图4单片机程序4.1部分程序代码4.1.1数码管段选编码 数码管选用的是共阳数码管,当给高电平时所选的段会亮,根据数码的引角及与单片机引角连接的方式可以得到数码管的显示编码(0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f)(0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x
18、8E)4.1.2数码管片选编码有八个数码管和P2口相连,根据其给低电平选中编写编码0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F4.1.3定时器的设定设置TMOD寄存器中的M1M0位来进行工作方式选择,本次设计选用定时器0的工作方式1。即TMOD=0X01。时钟频率为12MHz,12个时钟周期为一个机器周期,那么此时机器周期就是1us,计满TH0和TL0就需要2exp16-1个数,再来一个脉冲计数器溢出,随即向CPU申请中断。如果我们要定时50ms的话,那么就需要先给TH0和 TL0装一个初值,在这个初值的基础上计50000个数后,定时器溢出,此时刚好就是50m
19、s中断一次,当需要1s时,我们写程序时当产生20次50ms的定时中断后便认为是1s,这样便可精确控制定时时间。需要计数的个数N,装入THX 和TLX中的数值为THX=(65536-N)/256 (4.1.1)TLX=(65536-N)%256 (4.1.2)初始化过程如下(1) 对TMOD赋值,以确定T0和T1的工作方式。(2) 计算初值,并将初值写入TH0、TL0或TH1、TL1。(3) 中断方式时,则对IE赋值,开放中断。(4) 使TR0或TR1置位,启动定时器/计数器定时或计数。 4.2总程序代码#include/声明52系列头文件#define uchar unsigned char/
20、宏定义int code S_Data=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82, /数码管显示编码0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E;intcode W0_Data=0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F; /P2口段选编码intcode W1_Data=0x0E,0x0D; /P3口段选编码void delay(uchar); /申明延时函数void display(uchar); /申明显示函数uchar temp=0,num=0; /定义变量void main() /
21、主函数TMOD=0X01;/设置定时器0为工作方式1TH0=(65536-50000)/256; /装初值12M晶振定时50ms数为50000TL0=(65536-50000)%256; /开总中断EA=1; /开定时器0中断ET0=1; /启动定时器中断0TR0=1;while(1)display(num); /数码管显示数字 void display(uchar num) /显示函数if(num=0) /显示(0 1 2 3 4 5 6 7 8 9)P2=W0_Data0;P3=0xFF;P1=S_Data0;delay(1);P2=W0_Data1;P1=S_Data1;delay(1)
22、;P2=W0_Data2;P1=S_Data2;delay(1);P2=W0_Data3;P1=S_Data3;delay(1);P2=W0_Data4;P1=S_Data4;delay(1);P2=W0_Data5;P1=S_Data5;delay(1);P2=W0_Data6;P1=S_Data6;delay(1);P2=W0_Data7;P1=S_Data7;delay(1);P2=0xFF;P3=W1_Data0;P1=S_Data8;delay(1);P3=W1_Data1;P1=S_Data9;delay(1);if(num=1) /奇数列显示(1 3 5 7 9)P2=W0_Da
23、ta0;P3=0xFF;P1=S_Data1;delay(1);P2=W0_Data2;P1=S_Data3;delay(1);P2=W0_Data4;P1=S_Data5;delay(1);P2=W0_Data6;P1=S_Data7;delay(1);P2=0xFF;P3=W1_Data0;P1=S_Data9;delay(1);if(num=2) /偶数列显示(0 2 4 6 8)P2=W0_Data1;P3=0xFF;P1=S_Data0;delay(1);P2=W0_Data3;P1=S_Data2;delay(1);P2=W0_Data5;P1=S_Data4;delay(1);P
24、2=W0_Data7;P1=S_Data6;delay(1);P2=0xFF;P3=W1_Data1;P1=S_Data8;delay(1);if(num=3) /显示音乐符号序列(0 1 2 3 4 5 6 7 0 1)P2=W0_Data0;P3=0xFF;P1=S_Data0;delay(1);P2=W0_Data1;P1=S_Data1;delay(1);P2=W0_Data2;P1=S_Data2;delay(1);P2=W0_Data3;P1=S_Data3;delay(1);P2=W0_Data4;P1=S_Data4;delay(1);P2=W0_Data5;P1=S_Data
25、5;delay(1);P2=W0_Data6;P1=S_Data6;delay(1);P2=W0_Data7;P1=S_Data7;delay(1);P2=0xFF;P3=W1_Data0;P1=S_Data0;delay(1);P3=W1_Data1;P1=S_Data1;delay(1); void T0_time() interrupt 1 /定时器0中断函数temp+;TH0=(65536-50000)/256;TL0=(65536-50000)%256;if(temp=20) /如果到了20次,说明到了一秒temp=0; /数码管显示构成循环num+;if(num=4)num=0;
26、void delay(uchar z) /延时函数uchar x,y;for(x=z;x0;x-)for(y=110;y0;y-);5仿真结果图5.1起始时刻仿真图5.2奇数列仿真图5.2偶数列仿真图5.3音乐符号序列仿真6总结通过本次课程设计使对单片机有了一定的认识,了解了其工作的基本方式与原理,由于本次设计采用了C语言作为编程语言,对C语言编程有个实际的应用,对其如何编程有了更深刻的认识,补充了当时学习过程中没有实际操作的不足。使自己掌握了C语言的编程方式。本次设计当中,还应用到了Keil软件,对其基本的操作有了一定的掌握,学会了用C语言对单片机进行编程。在仿真方面应用到了Proteus,
27、学会了单片机的仿真,对软件的基本操作有了一定的了解,并且仿真当中应用到与Keil连调功能,更加深了对这两个软件的理解,也学会了其基本操作。可以说通过本次课程设计,使自己学会了很多,收获颇丰,增强了自己的动手能力,使理论与实际相结合,对理论知识的理解更为透彻。参考文献1康华光电子技术基础 数字部分(第五版)北京高等教育出版社 2006.郭天祥新概念51单片机C语言教程入门、提高、开发、拓展全攻略电子工业出版社 2009.2电子线路设计实验测试第三版,谢自美 主编,华中科技大学出版社.3新型集成电路的应用电子技术基础课程设计,梁宗善主编,华中科技大学出版社.4电子技术基础课程设计,孙梅生等编著,高等教育出版社.附录1:元件清单元件名种类及数量电阻10k 1个 电容10u 1个 、30p 2个电源5v 1个按键开关1个晶振12MHz 1个共阳数码管8位 1个、2位 1个单片机AT89C52 1个增益74HC04 10个附录2本科生课程设计成绩评定表姓 名性 别专业、班级课程设计题目:课程设计答辩或质疑记录:成绩评定依据:最终评定成绩(以优、良、中、及格、不及格评定) 指导教师签字: 年 月 日专心-专注-专业
限制150内