单片机课程设计.docx
《单片机课程设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计.docx(40页珍藏版)》请在冰豆网上搜索。
单片机课程设计
2012~2013学年第2学期
《单片机原理及应用》
课程设计报告
题目:
基于数码管的电子时钟设计
专业:
班级:
姓名:
指导教师:
电气工程系
2013年5月1日
1、任务书
课题名称
基于数码管的电子时钟设计
指导教师(职称)
执行时间
2012~2013学年第2学期第10周
学生姓名
学号
承担任务
设计目的
熟悉基于数码管的电子时钟设计方法,了解蜂鸣器的工作特性以及Proteus仿真软件的正确使用。
设计要求
1、用8个数码管显示一个电子时钟格式为00-00-00,分别表示时钟、分钟和秒钟;
2、要求有暂停,能进行时钟、分钟和秒钟的调节;
3、到整时(如1点整,2点整)时蜂鸣器发出“滴答”声,同时一个发光二极管发出闪烁。
摘要
随着人类科技文明的发展,人们对于时钟的要求在不断地提高。
时钟已不仅仅被看成一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能。
高精度、多功能、小体积、低功耗,是现代时钟发展的趋势。
在这种趋势下,时钟的数字化、多功能化已经成为现代时钟生产研究的主导设计方向。
本文正是基于这种设计方向,以单片机为控制核心,设计制作一个符合要求的多功能电子时钟。
单片机自20世纪70年代问世以来,单片机作为集CPU、RAM、ROM、定时、计数和多种接口于一体的微控制器,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。
单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。
由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。
本设计中以AT89S51单片机为例进行设计。
本设计基于单片机技术原理,以单片机芯片AT89S51作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个电子时钟系统。
该时钟系统主要由时钟电路模块、复位电路模块、LED数码管显示模块、以及键盘控制模块组成。
系统具有简单清晰的操作界面,能在4V~7V直流电源下正常工作。
能够准确显示时间(显示格式为时时:
分分:
秒秒,00.00.00,刚上电时为12.00.00,当显示到23.59.59,即有重新从00.00.00开始显示),可随时进行时间调整,并整点报时。
设计以硬件软件化为指导思想,充分发挥单片机功能,大部分功能通过软件编程来实现,电路简单明了,系统稳定性高。
同时,该时钟系统还具有功耗小、成本低的特点,具有很强的实用性。
(由于protuds仿真软件中无AT89S51单片机,则用AT89C51代替,其仿真结果是一样的。
)
关键词:
AT89S51单片机;电子时钟
Abstract
Withthedevelopmentofhumancivilization,peopletotherequirementofclockinconstantincrease.Clockisnotonlyberegardedasakindoftoolusedtodisplaythetime,inmanypracticalapplicationsitisalsoneedtobeabletorealizemorefunctions.Highaccuracy,multi-function,smallvolume,lowpowerconsumption,isthetrendof
thedevelopmentofthemodernclock.Underthistrend,digitalclock,muti_functionchangehasbecomeadominantdesignofmodernclockproductionresearchdirection.Thisarticleisbasedonthedesigndirection,withthesinglechipprocessorasthecore,
anddesignameettherequirementsofmulti-functionelectronicclock.
SCMsinceappearedinthe1970s,single-chipcomputerasCPU,RAM,ROM,timing,countandvariousinterfaceintheintegrationofmicrocontroller,
withitsextremelyhighpriceperformanceratio,bypeople'sattentionandconcern,
applicationisverywide,developingveryquickly.SCMsmallsize,lightweight,stronganti-jammingcapability,environmentalrequirementsisnothigh,lowcost,highreliability,goodflexibility,developrelativelyeasy.Becauseoftheseadvantages,inourcountry,SCMhasbeenwidelyusedinindustrialautomationcontrol,automaticdetection,intelligentinstrumentsandmeters,householdappliances,powerelectronics,electromechanicalintegrationequipment,andotheraspects,andisthemosttypicalinthemicrocontroller51single-chipmicrocomputerandoneofthemostrepresentative.
InthisdesignwithAT89S51asanexampletocarryonthedesign.Technologyprinciple,thedesignbasedonsinglechipmicrocomputertosingle-chipmicrocomputerAT89S51asthecorecontroller,throughmakingandsoftwareprogramofthehardwarecircuit,thedesignmakeaelectronicclocksystem.Theclocksystemmainlyconsistsofmodule,resetcircuit,clockcircuitmodule,LEDdigitaltubedisplaymodule,andthecompositionofthekeyboardcontrolmodule.Systemhasasimpleandclearinterface,canunderthe4v~7vdcpowersupplytoworkproperly.Canaccuratelydisplaythetime(displayformatforallthetime:
component,secondsseconds,00.00.00,justonelectricityfor12.00.00,whenshownto23.59.59,namelyhavetobeginfrom00.00.00display),canadjusttime,atanytimeandhour.Designinhardwareandsoftwareintotheguidingideology,givefullplaytothemicrocontrollerfunctions,mostofthefunctionalitythroughsoftwareprogrammingtoimplementthecircuitsimpleandclear,highsystemstability.Atthesametime,theclocksystemalsohasthecharacteristicsoflowconsumption,lowcost,strongpracticability(BecauseoflackofAT89S51protudssimulationsoftware,thenreplacewithAT89C51,thesimulationresultisthesame.)
Keywords:
AT89S51;electronicclock
第一章绪论
1.1单片机的特点
20世纪末,单片机技术获得了飞速的发展,在其在推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使得现代电子产品性能进一步提高。
单片机有以下特点:
1.单片机的存储器ROM和RAM是严格区分的。
ROM称为程序存储器,只存放程序、固定常数及数据表格。
RAM则为数据存储器,用作工作区及存放用户数据[1]2.采用面向控制的指令系统。
为满足控制需要,单片机有更强的逻辑控制能力,特别是单片机具有很强的位处理能力;
3.单片机的I/O口通常是多功能的。
由于单片机芯片上引脚数目有限,为了解决实际引脚数和需要的信号线的矛盾,采用了引脚功能复用的方法,引脚处于何种功能,可由指令来设置或机器状态来区分;
4.单片机的外部扩展能力很强。
在内部的各种功能部件不能满足应用的需求时,均可在外部进行扩展,与许多通用的微机接口芯片兼容,给应用系统设计带来了很大的方便。
1.2单片机应用简述
目前,单片机正朝着高性能和多品种方向发展趋势是进一步向着CMOS化、低功耗、小体积,大容量、高性能、低价格和外围电路内装化等几个方面发展。
单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。
在以前,是必须由模拟或是数字电路实现的大部分功能的,而现在已经能用单片机通过软件的方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
1.3电子时钟简介
时间对于人们来说总是那么宝贵,工作的忙碌性和繁杂性容易是人忘记当前时间。
忘记了要做的事情,当事情不是很重要的时候这种遗忘无伤大雅。
但是,一旦是重要的事情,一时的耽误可能酿成大祸。
1957年,Ventura发明了世界上第一只电子表,从而奠定了电子时钟的基础,电子时钟也飞速的发展起来。
现代的电子时钟的基于单片机的一种计时工具采用延时程序产生一定的时间中断,用于一秒定义,通过计数方式进行六十秒分钟进一,满六十分小时进一,满二十四小时清零,从而达到计时的功能,是人们日常生活不可缺少的工具。
1.4电子时钟的基本特点
现在高精度的计时工具大多数采用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此,走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LCD显示器或数码管代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。
第二章控制系统的硬件设计
2.1芯片的选择
经过多种单片机性能的分析及现有实验设备的限制,在本设计中单片机芯片采用了AT89S51单片机芯片。
AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机片内含4kbytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。
它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程既通用8位微处理器于单片机芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
2.1.1AT89S51的功能概述
AT89S51提供以下标准功能:
4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时、计数器,一个5向量两级中断结构,一个全双工通信口,片内振荡器及时钟电路。
同时,AT89S51可降至0Hz的静态逻辑操作,并支持两种可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时、计数器,串行通信口及中断系统继续工作。
掉电方式RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。
2.1.2AT89S51引脚功能说明如图2-1
图2-1AT89S51引脚说明
Vcc:
电源电压
GND:
接地
P0口:
P0口是一组8位漏极开路型双向I/O口,即地址/数据总线复用口。
作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:
P1口是一个带有内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
Flash编程和程序校验期间,P1接收低8地址[5]。
P2口:
P2口是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(例如执行MOVX@Ri指令)时,P2口线上的内容(即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。
Flash编程和程序校验期间,P2亦接收高位地址和其他控制信号[5]。
P3口:
P3口是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”,它们被内部上拉电阻拉高并可作为输入端口。
作输入端时,被外部拉低的P3口将用上拉电阻输出电流。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能[5]。
P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRT0位(地址8EH)可打开或关闭该功能。
DIRT0位缺省为RESET输出高电平打开状态。
ALE/PROG:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此可对外输出时钟或用以定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对Flash存储器编程期间,该引脚还用于出入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,单片机执行外部程序时,应设置ALE无效。
/PSEN:
程序储存允许(/PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)使,每个机器周期两次/PSEN有效,即输出两个脉冲。
当访问外部数据存储器。
没有两次有效的/PSEN信号。
EA/VPP:
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的编程电压VPP。
2.1.3AT89S51与AT89C51的比教
AT89S51相对于AT89C51新增加了很多功能,性能有了较大的提升,价格基本上不变,甚至比89C51更低!
[3]AT89S51具有ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要芯片从工作环境上拔出,可以在线烧写。
AT89S51的最高工作频率为33MHz,89C51的极限工作频率是24M,就是说89S51具有更改的工作频率,从而有了更快的计算速度。
AT89S51具有双工UART串行通道。
AT89S51内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路。
AT89S51具有双数据指示器。
AT89S51具有电源关闭标识。
AT89S51具有全新的加密算法,这使得对于89S51的解密变为不可能,程序的保密性大大加强,这样就可以有效保护知识产权不被侵犯[10]。
在兼容性方面,AT89S51向下完全兼容51全部字系列产品。
比如8051、89C51等产品。
也就是说不论教科书上采用的单片机是8051还是89C51还是MCS-51的等等,在89S51上一样可以照常运行,这就是所谓的向下兼容。
[3]总之,无论是比其他品牌同类产品相比,还是与同品牌产品相比都显示了AT89S51优良的性能,更高的性价比。
所以AT89S51芯片成为了本系统的首选。
2.2电子时钟电路设计框图
图2-2电子时钟电路设计框图
2.2.1按键电路设计
设计用了4个按键K1/K2/K3/S1,分别用于调时、调分、调秒及用作复位按钮,达到了时间调节的目的。
电路如图2-3所示:
图2-3按键设计电路图
2.2.2蜂鸣器电路设计
当单片机测控系统故障或处于某种紧张状态时,单片机系统应能发出提醒人们警觉的声音报警。
用I/O口很容易实现该功能。
本设计用于整点报时。
购买市售的压电式蜂鸣器,用一根I/O口线驱动蜂鸣器发声,约需10mA的驱动电流,可用7406或7407低电平驱动,也可以用一个晶体管驱动如图2-4所示:
图2-4蜂鸣器设计电路图
2.2.3LED数码管显示电路
数码管是一种把多个LED显示段集成在一起的显示设备。
有两种类型,一种是共阳极,一种是共阴极。
共阳极就是把多个LED显示段的阳极接在一起,又称为公共端。
共阴型就是把多个LED显示段的阴极连接在一起,即为公共商。
阳极即为二极管的正极,又称为正极,阴极即为二极管的负极,又称为负极。
多位数码管,除某一位的公共端会连接在一起,不同位的数码管的相同端也会连接在一起。
数码管的显示方法可分为静态显示和动态显示,在本设计中采用的是动态显示,其原理:
各个数码管的相同端连接在一起,共同占用8位段引管线:
每位数码管的阳极连接在一起组成公共端。
利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,当全段扫描速度大于视觉暂留速度时,显示就会清晰显示出来。
本设计由两个LED四位一体阴极数码管、8个9012(PNP)三极管、8个510欧上拉电阻等组成,由于LED数码管的位电流较大,故采用三极管来驱动。
8个电阻一端接到单片机的P1口,另一端分别接到三极管的基极,发射极接地,集电极与所述数码管芯片的位控制端相连。
此驱动电路采用主芯片的通用IO口并配合三极管来实现四位数码管的动态扫描和显示驱动,具有电路结构简单、占用电路板空间小、驱动能力强、成本低等优点,其缺点是共阴极的数码管采用PNP三极管驱动,这样三极管的损耗比较大。
位码由P1口输出,段码由P3口输出,P1口线与LED之间5.1K的限流电阻和PNP三极管,显示的方式为动态显示方式。
数码管字型与字段关系如下表2-1所示:
表2-1数码管字型与字段关系表
显示
字符
g
f
e
d
c
b
a
字型码
共阴极
共阳极
0
0
1
1
1
1
1
1
3FH
C0H
1
0
0
0
0
1
1
0
06H
F9H
2
1
0
1
1
0
1
1
5BH
A4H
3
1
0
0
1
1
1
1
4FH
B0H
4
1
1
0
0
1
1
0
66H
99H
5
1
1
0
1
1
0
1
6DH
92H
6
1
1
1
1
1
0
1
7DH
82H
7
0
0
0
0
1
1
1
07H
F8H
8
1
1
1
1
1
1
1
7FH
80H
9
1
1
0
1
1
1
1
6FH
90H
A
1
1
1
0
1
1
1
77H
88H
B
1
1
1
1
1
0
0
7CH
83H
C
0
1
1
1
0
0
1
39H
C6H
D
1
0
1
1
1
1
0
5EH
A1H
2.3整体硬件电路设计如下图2-5
图2-5整体电路图
根据以上各电路模块的设计思路,以及进一步修改得到如上图所示的由AT89C51芯片和74LS245等元件组成的电路图,按钮开关从上到下依次对时、分、秒、秒表以及闹钟进行调节。
此外,该电路还可以实现整点报时,同时发光二极管闪烁的功能。
第三章控制系统的软件设计
3.1主程序设计
a)程序的起始地址:
MCS-51单片机复位后,(PC)=0000H,而0003H-002BH分别是各中断源的入口地址。
所以,编程时应在0000H处写一条跳转指令。
b)主程序的初始化:
将要用到的MCS-51系列单片机内部部件或扩展芯片进行初始工作设定。
流程图如下:
图3-1主程序框图
程序如下:
SECONDEQU30H;秒单元
MINITEEQ