物理与电子工程学院
《单片机原理与接口技术》课程设计报告书
设计题目:基于单片机的LED数码管共
阴极动态显示电路设计
专业:自动化
班级: 14级接本1班
学生姓名:李超
学号: 20140343108
指导教师:成燕平
2015年6月14日
物理与电子工程学院课程设计任务书
专业:自动化班级: 14级接本1班
随着计算机技术的发展,现代的计算机都是大规模集成电路计算机它们具有功能强、结构紧凑、系统可靠等特点,其发展趋势是巨型化、微型化、网络化及智能化。微型化是计算机发展的重要方向,也就是把计算机的运算器、控制器、存储器、I/O接口四个组成部分集成在一个硅片内,于是就出现了一个以大规模集成电路为主要组成的微型计算机即单片机(Single Chip Microcomputer)。正是由于单片机技术的发展,才能使LED七段数码管能够在减少驱动器的情况下能够直接被驱动。由于LED数码管显示技术的优势使得它被广泛应用在工业过程控制系统、智能仪表,智能产品等领域。本论文重点介绍了LED(light emission diode)数码管显示技术,并且编写了这种显示技术在单片机中实现的关键编码以及提供了参考原理简图。
关键词:LED技术;计算机硬件;单片机;数码管
1 引言 (1)
2 设计的目的及要求 (1)
2.1设计目的 (1)
2.2 设计要求 (1)
3硬件电路的分析 (1)
3.1 AT89C51芯片的功能介绍 (1)
3.2 单片机最小工作模式 (4)
3.3 显示电路的设计 (5)
3.4 数码管的控制显示 (6)
4 系统软件程序的设计 (7)
4.1 数码管共阴极显示字符与十六进制转换 (7)
4.2 主程序设计 (8)
5调试及运行结果分析 (9)
5.1 调试及运行 (9)
5.2 结果分析 (11)
5.3 总电路仿真原理图 (11)
6心得体会 (11)
参考文献 (12)
附录 (13)
1 引言
用单片机驱动LED数码管有很多方法,按显示方式可分静态显示和动态(扫描)显示;按译码方式可分硬件译码和软件译码。静态显示数据稳定,占用很少的CPU时间。动态显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。LED数码管的外围电路一般需要一个限流电阻和加大驱动电流的晶体管。LED数码管是由发光二级管显示字段组成的显示器,有“8”字段和“米”字段之分,这种显示器有共阳极和共阴极两种。实际上不上不用驱动电路即可达到正常亮度,为了可靠性设计可采用晶体管构成驱动电路。
2设计的目的及要求
2.1设计目的
在单片机的产品设计中,人机界面是非常重要的部分,而且随着系统的日益复杂,以及人们对产品的人机交互能力的要求不断提升,常握单片机系统中的人机界面基础设计能力成为了学习单片机的基础课程,而4X4键盘的操作和LED 数码管的动态显示是人机界面设计的基础内容,掌握这些基础设计能力,加深对人机界面的认识,同时提高人机界面系统设计能力。
2.2设计要求
采用4个共阴极LED数码管作为显示电路,并采用动态驱动方式进行显示。实现功能为:第一个数码管显示2,时间为0.5s,然后关闭它;立即让第二个数码管显示0,时间为0.5s,再关闭它;立即让第三个数码管显示1,时间为0.5s,再关闭它;立即让第四个数码管显示5,时间为0.5s,再关闭它;关闭第四个数码管后回来显示第一个数码管,一直循环下去。
3 硬件电路的分析
3.1 AT89C51芯片的功能介绍
AT89C51是一种带4K字节闪存可编程可擦除只读存储器,俗称单片机。AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL
的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图3-1所示。
图3-1芯片模型
AT89C51主要功能特性:
(1) 4K字节可编程闪烁存储器。
(2) 32个双向I/O口;128×8位内部RAM 。
(3) 2个16位可编程定时/计数器中断,时钟频率0-24MHz。
(4) 可编程串行通道。
(5) 5个中断源。
(6) 2个读写中断口线。
(7) 低功耗的闲置和掉电模式。
(8) 片内振荡器和时钟电路。
89C51单片机多采用40只引脚的双列直插封装(DIP)方式,下面分别简单绍。
(1)电源引脚
电源引脚接入单片机的工作电源。
Vcc(40引脚):+5V电源。
GND(20引脚):接地。
(2)时钟引脚
XTAL1(19引脚):片内振荡器反相放大器和时钟发生器电路的输入端。
XTAL2(20引脚):片内振荡器反相放大器的输出端。时钟引脚的两种电源接入方式如图3-2所示。
图3-2 电源接入方式
(3)复位RST(9引脚)
在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。
(4)EA/Vpp(31引脚)
EA为外部程序存储器访问允许控制端。当它为高电平时,单片机读片内程序存储器,在PC值超过0FFFH后将自动转向外部程序存储器。当它为低电平时,只限定在外部程序存储器,地址为0000H~FFFFH。Vpp为该引脚的第二功能,为编程电压输入端。
(5)ALE/PROG(30引脚)
ALE为低八位地址锁存允许信号。在系统扩展时,ALE的负跳沿江P0口发出的第八位地址锁存在外接的地址锁存器,然后再作为数据端口。PROG为该引脚的第二功能,在对片外存储器编程时,此引脚为编程脉冲输入端。
(6)PSEN(29引脚)
片外程序存储器的读选通信号。在单片机读片外程序存储器时,此引脚输出脉冲的负跳沿作为读片外程序存储器的选通信号。
(7) pin39-pin32为P0.0-P0.7输入输出脚,称为P0口。
P0是一个8位漏极开路型双向I/O口。内部不带上拉电阻,当外接上拉电阻时,P0口能以吸收电流的方式驱动八个LSTTL负载电路。通常在使用时外接上拉电阻,用来驱动多个数码管。在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,不需要外接上拉电阻。
(8)Pin1-Pin8为P1.0-P1.7输入输出脚,称为P1口,是一个带内部上拉电阻的8位双向I/0口。P1口能驱动4个LSTTL负载。
(9)Pin21-Pin28为P2.0-P2.7输入输出脚,称为P2口。
P2口是一个带内部上拉电阻的8位双向I/O口,P2口能驱动4个LSTTL负载。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash 程序存储器编程时,接收高8位地址和控制信息。在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。
(10)Pin10-Pin17为P3.0-P3.7输入输出脚,称为P3口。
P3口是一个带内部上拉电阻的8位双向I/O口,P2口能驱动4个LSTTL负载,这8个引脚还用于专门的第二功能。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接控制信息。
3.2单片机最小工作模式
单片机的最小系统是由组成单片机系统必需的一些元件构成的,除了单片机之外,还需要包括电源供电电路、时钟电路、复位电路。
在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2 。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟电路时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。一般地,电容C1和C2取30 pF左右,晶体的振荡频率范围是1.2~12 MHz。晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也就快。如图3-3所示。
图3-3 时钟电路
复位是单片机的初始化操作,其主要红能是把程序计数器PC内容初始化为0000H,也就是使单片机从0000H单元开始执行程序,同时使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作。8051单片机采用两种复位方式:一种是加电自动复位,另一种为手动按键复位。如图3-4
所示。
图3-4 复位电路
3.3显示电路的设计
本设计采用共阴极LED数码管作为显示电路。LED即发光二极管,英文全称为Light Emitting Diode。单独的发光二极管便是一个最简单的LED,通过控制其的亮灭来作为信号指示,一般用于电源指示灯、工作状态指示等。单个的发光二极管使用比较简单。LED数码管是由若干个发光二极管组成的显示字段的显示器件,一般简称为数码管。当数码管中的某个发光二极管导通的时候,相应的一个字段便发光,不导通的则不发光。LED数码管可以根据控制不同组合的二极管导通,来显示各种数据和字符。单片机应用系统中使用最多的是7段LED,其可以显示十进制数字以及一些英文字符。7段LED显示模块可以分为共阴极和共阳极两种。
共阴极数码管原理:
共阴极7段LED数码管和共阳极LED数码管结构类似,其引脚配置,如图3-5所示。从图中可以看出7段LED数码管同样由8个发光二极管组成,其中7个发光二极管构成字形“8”,另一个发光二极管构成小数点。共阴极7段LED 数码管的内部结构,如图所示。其中所有发光二极管的阴极为公共端,接GND。如果发光二极管的阳极极为高电平的时候,发光二极管导通,该字段发光;反之,如果发光二极管的阳极为低电平的时候,发光二极管截止,该字段不发光。
图3-5共阴极LED引脚级内部结构
3.4数码管的控制显示
LED数码管模型如图3-6所示。P0为输出端口,P2口为位选端口,LED 的段码端口A~G分别接AT89C51的P2.0~P2.7口,位选端1~4分别接至P2.4、P2.3、P2.1、P2.0,如图3-7所示。
图3-6数码管模型
图3-7 LED与AT89C51的硬件连线
4 系统软件程序的设计
4.1数码管共阴极显示字符与十六进制转换
把发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接+5V。这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。为了显示数字或符号,要为LED显示器提供代码,因为这些代码是为显示字形的,因此称之为字形代码。七段发光二极管,再加上一个小数点位,共计八段。因此提供给LED显示器的字形代码正好一个字节。若a、b、c、d、e、f、g、dp 8个显示段依次对应一个字节的低位到高位,即D0、D1、D2、D3、D4、D5、D6、D7,则用共阴极LED数码管显示十六进制数时所需的字形代码如表4-1所示。
表4-1 8段数码管字形代码
4.2 主程序设计
主程序包含初始化部分、调用延时子程序DELAY初始化时00H位设置为0,默认为循环显示。
初始时将数据2、0、1、5数据送入30H、31H、32H、33H存储单元,随后调用延时子程序,比较是否为零,顺序执行。
流程图:
5调试及运行结果分析
5.1调试及运行
本设计应用Proteus9及KEIL51软件,首先根据自己设计的电路图用Proteus9软件画出电路模型,关于这个软件的使用通过查一些资料和自己的摸索学习;然后我们用KEIL51软件对所编写的程序进行编译、链接,如果没有错误和警告便可生成程序的hex文件,将此文件加到电路图上使软硬件结合运行。如图5-1所示。
图5-1KEIL工作模式
在Proteus仿真软件中加载在KEIL里生产的HEX文件,加载无误后
确认点击开始仿真按钮,运行结果。
(1)延时0.5秒后,显示数字2,如图5-2所示。
图5-2
(2)延时0.5秒后,显示数字0,如图5-3。
图5-3
(3)继续延时0.5秒后,显示数字1,如图所示5-4。
图5-4
(4)继续延时0.5秒后,显示数字5,如图所示5-5。
图5-5
5.2结果分析
接通电源后数码管可以按要求间隔0.5秒后,依次循环显示出数字2、0、1、5然后又依次显示出数字2、0、1、5如此周而复始,不断循环。并且打开电源自动复位,从自然数列开始显示。实现了预期的设计要求。
5.3总电路仿真原理图
如图5-6所示
图5-6
6心得体会
回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在这努力的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力。
参考文献
[1]徐爱钧,徐阳.Keil单片机高级语言应用编程与实践[M].电子工业出版社,2013.12
[2]张国勋.缩短ICL7135A/D采样程序时间的一种方法[J].电子技术应用.1993.第一期
[3]高峰.单片微型计算机与接口技术[M].北京科学出版社,2003.
[4]刘伟,赵俊逸,黄勇.一种基予C8051F单片机的SOC型数据采录器的设计与实现
[5]宋雪松,李冬明,催长胜.51单片机(C语言版)[M].清华大学出版社,2014.4
[6]汤嘉立,李林,胡羽等.单片机应用技术实例教程[M].人民邮电出版社,2014.11
[7]徐爱钧.单片机原理实用教程-基于Proteus虚拟仿真(第2版)[M],2012.12
[8]徐爱钧,徐阳.Keil单片机高级语言应用编程与实践[M].电子工业出版社,2013.12
附录
课程设计中的程序如下:
ORG 0000H
MOV 30H,#2
MOV 31H,#0
MOV 32H,#1
MOV 33H,#5 ;预置显示数据为2015
MOV DPTR,#TAB ;段选码表首地址
Start: MOV R0,#30H ;数据缓冲区首址
MOV R1,#01H ;共阴初始位选码
MOV R2,#4 ;数码管个数
loop: MOV A,@R0 ;取待显示数据
MOVC A,@A+DPTR;查显示码
MOV P2,R1 ;送出显示段码
MOV P0,A ;送出位选码
LCALL DELAY ;延时200us左右
INC R0 ;修改地址指针
MOV A,R1
RL A
MOV R1,A ;移位位选码
DJNZ R2,LOOP ; 四位未显示完,继续
SJMP Start ;显示完4位,进入下一轮DELAY: MOV R6,#250H
DL0: MOV R4 ,#60
DL1: MOV R5, #60
DJNZ R5,$
DJNZ R4,DL1
DJNZ R6,DL0
RET
TAB: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H , 92H DB 82H, 0F8H, 80H, 90H, 88H , 83H
END
课程设计成绩评定表