三门峡职业技术学院
专科生毕业设计(论文)
题目:基于AT89C51单片机的数字钟设计
院 校: 三门峡职业技术学院 系 部: 信 息 工 程 系 专 业: 计算机应用技术 (嵌入式方向) * 名: *** 学 号: ********** 指导老师:
日 期:
摘 要
近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
本次设计中以单片机的发展过程和发展方向为背景,介绍了单片机的输入输出的工作原理和操作方法,中断的工作原理和操作方法,74LS245译码器的工作原理和与,LED连接的方法。
本次做的数字钟是以单片机(AT89C51)为核心,结合相关的元器件(共
阴极LED数码显示器、BCD-锁存/7段译码/驱动器74LS245等),再配以相应的软件,
是它具有时,分,秒显示的功能,并且时,分,秒还可以调整。此次设计电子数字钟是为了了解电子数字钟的原理,从而学会制作电子数字钟。而且通过电子数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法。通过它可以进一步学习与掌握单片机原理与使用方法。
关键词:单片机;AT89C51;共阴极LED数码显示器;74LS245译码器
目录
摘 要 .............................................................................................................................................. 2 目录 .................................................................................................................................................. 3 第一章 数电字子钟的背景、意义、应用 ..................................................................................... 4 第二章 单片机制作数字钟的原理 ............................................................................................... 5
2.1 主芯片8051的硬件资源 ............................................................................................... 5
2.1.1单片机的概念 ........................................................................................................ 5 2.1.2 8051的芯片引脚 .................................................................................................. 6 2.1.3 使用I/O口的注意事项 ....................................................................................... 8 2.2 8051中断系统 ................................................................................................................ 9
2.2.1 中断源 ................................................................................................................... 9 2.2.2 中断的控制 ........................................................................................................... 10 2.2.3 中断响应 ............................................................................................................. 11 2.3 单片机定时/计数器在数字钟的使用 ......................................................................... 11
2.3.1与T/C有关的特殊功能寄存器 .......................................................................... 12 2.3.2 定时器/计数器的初始化 ................................................................................... 13
第三章系统硬件电路的设计 ......................................................................................................... 14
3.1 单片机的基本结构 ......................................................................................................... 14 3.2 74LS245 引脚图及功能: ........................................................................................... 16 3.4硬件电路的设计原则 ...................................................................................................... 18 第四章软件程序的设计 ................................................................................................................. 20
4.1 软件程序内容 ................................................................................................................. 20 4.2 软件流程图 ..................................................................................................................... 21
4.2.1 系统软件设计流程图 ......................................................................................... 21 4.3 定时程序设计 ................................................................................................................. 24
4.3.1实时时钟实现的基本方法: .............................................................................. 24 4.3.2 实时时钟程序设计步骤: ................................................................................. 24
第5章 结论与展望 ..................................................................................................................... 25
5.1 结论 ................................................................................................................................. 25 5.2 单片机的发展趋势 ......................................................................................................... 26 附录: ............................................................................................................................................ 27 参考文献......................................................................................................................................... 33
第一章 数电字子钟的背景、意义、应用
20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。
目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。
数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走
时准确、性能稳定、携带方便等优点,它还用于计时自动报时及自动控制的领域。
第二章 单片机制作数字钟的原理
以8051为主芯片制作多功能数字钟的方案中,时钟信号主要由8051单片机的定时器/计数器来提供,对时间进行设置和进行闹铃设置主要用到单片机的外部中断。外部控制电路及显示电路都用到了他的I/O口,在本章我们主要介绍一下关于8051单片机定时器/计数器、中断源及中断系统以及8051的I/O口的特性及应用
2.1 主芯片8051的硬件资源 2.1.1单片机的概念
单片机(microcontroller,又称微控制器)是在一块硅片上集成了各种部件的微型计算机。这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。图1-1是8051单片机的基本结构图
8051单片机的结构特点有以下几点: ● 8位CPU;
● 片内振荡器及时钟电路; ● 32根I/O线;
● 外部存储器ROM和RAM,寻址范围各64KB;
● 两个16位的定时器/计数器; ● 5个中断源,2个中断优先级 ● 全双工串行口 ● 布尔处理器 2.定时器/计数器
8051内部有两个16位可编程定时器/计数器,记为T0和T1。16位是指他们都是由16个触发器构成,故最大计数模值为216-1。可编程是指他们的工作方式由指令来设定,或者当计数器来用,或者当定时起来用,并且计数(定时)的范围也可以由指令来设置。这种控制功能是通过定时器方式控制寄存器TMOD来完成的
如果需要,定时器在计到规定的定时值是可以向CPU发出中断申请,从而完成某种定式的控制功能。在计数状态下同样也可以申请中断。定时器控制寄存器TCON用来负责定时器的启动、停止以及中断管理
在定时工作时,时钟由单片机内部提供,即系统时钟经过12分频后作为定时器的时钟。技术工作时,时钟脉冲由TO和T1输入
3.中断系统
8051的中断系统允许接受五个独立的中断源,即两个外部中断申请,两个定时器/计数器中断以及一个串行口中断。
外部中断申请通过INTO和INT1(即P3.2和P3.3)输入,输入方式可以使电平触发(低电平有效),也可以使边沿触发(下降沿有效)。两个定时器中断请求是当定时器溢出时向CPU提出的,即当定时器由状态1转为全零时提出的。第五个中断请求是由串行口发出的,串行口每发送完一个数据或接收完一个数据,就可提出一次中断请求
2.1.2 8051的芯片引脚
如图1-2所示 VCC:供电电压。 GND:接地。
P0口:P0口为一个8位漏极开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。
2.1.3 使用I/O口的注意事项
⑴ P1,P2,P3口的输出缓冲器可驱动4个LSTTL电路。对于HCMOS芯片单片机的I/O口,在正常情况下,可任意由TTL或NMOS电路驱动。HMOS及CMOS性的单片机I/O口有集电极开路或漏极开路的输出来驱动时,不必外加上拉电阻
⑵ 对于74LS系列,CD4000系列以及一些大规模集成电路芯片(如8155,8253,8259等),都可以和MCS-51系列单片机直接接口。具体使用时,可以查阅有关器件手册或参考典型电路
⑶ 对一些线性组件,特别是应用键盘、码盘、LED显示器等输入/输出设备时,应当尽量增加驱动部分的容量,否则,单片机将提供不出足够的驱动电流供给负载使用
2.2 8051中断系统
所谓中断,是指当计算机执行正常程序时,系统中出现某些急需处理得异常情况和特殊情球,CPU暂停执行现行程序,转去对随机发生地更紧迫事件进行处理;处理完毕后,CPU自动返回原来的程序继续执行。
中断允许软件设计不需要关心系统其他部分定时要求,算术程序不需要考虑隔几个指令检查I/O设备是否需要服务。相反,算术程序编写时好像有无限的时间作算术运算而无其他工作在进行。若其它事件需要服务时,则通过中断告诉系统。
8051单片机有5个中断源,有两个中断优先级,每个中断源的优先级可以编程控制。中断允许受到CPU开中断和中断源开中断的两极控制。
2.2.1 中断源
中断源是指任何引起计算机中断的事件,一般一台机器允许有许多个中断源。8051系列单片机至少有5个中断源。增加很少的硬件就可把各种硬件中断源“线或”成为一个外部中断输入,然后再顺序检索一起中断的特定源。
8051单片机的5个中断源是:
① 外部中断请求0,由INT0(P3.2)输入; ② 外部中断请求1,由INT1(P3.3)输入; ③ 片内定时器/计数器0益处中断请求; ④ 片内定时器/计数器1 溢出中断请求; ⑤ 片内串行口发送/接收中断请求;
为了了解每个中断源是否产生了中断请求,中断系统应设置许多个中断请 求触发器(标志位)实现记忆。这些中断源请求标志位分别有特殊功能寄存器TCON和SCON的相应位锁存
(1) 定时器/计数器控制寄存器TCON,它是一个八位的寄存器,各位如下表所示
TF1 TF0 IE1 IT1 IE0 IT0 ● IT0,IT1:外部中断0、1触发方式选择位,由软件设置。1是下降沿触
发,0是电平触发。
● IE0,IE1:外部终端0、1请求标志位。
● TF0,TF1:定时器/计数器0、1溢出中断请求标志。
2.2.2 中断的控制
中断的控制主要实现中断的开关管理和中断优先级的管理。这个管理主要通过对特殊功能寄存器IE和IP的编程实现
⑴ 中断允许寄存器IE
EA ET2 ES ET1 EX1 ET0 EX0 ● EX0,EX1:外部终端0,1的中断允许位。1是中断开,0是中断关 ● ET0,ET1:定时器/计数器0、1溢出中断允许位。1是开中断,0是关中
断
● ES:串行口中断允许位。1是中断开,0是中断关 ● ET2:定时器/计数器2溢出中断位
● EA:CPU开/关中断控制位。1是开中断,0是关中断 ⑵中断优先级寄存器IP
PS PT1 PX1 PT0 PX0 若系统中多个中断源同时请求中断,则CPU按中断源的优先级别,由高到低分别响应。
8051单片机有两个断优先级:高优先级和低优先级。每个中断源都可以编程为高优先级。这可以实现两级中断嵌套。嵌套的原则:一个正在执行的中断服务程序可以被高级的中断请求中断,而不能被同级或较低级的中断请求中断。两级中断通过使用IP寄存器设置,相应的位置1,则优先级高,0则优先级低。
PX0、PX1:终端0、1中断优先级控制;
PT0、PT1:定时器/计数器0、1中断优先级控制。 PS:串行口中断优先级控制。
8051复位时,IP被清零,5个中断源都在同一个优先级。这时若其中几个中断源同时产生中断请求,则CPU按照片内硬件优先级链路的顺序相应中断,硬件优先级由高到低的顺序是:外部中断0定时器/计数器0----外部中断1----定时器/计数器1----串行口中断
2.2.3 中断响应
8051的CPU在每个机器周期采样个中断源的中断请求标志位,如果没有上述阻止条件,则将在下一个机器周期响应被激活了的最高级中断请求。阻止条件如下:
① CPU正在处理同级或更高级的中断;
② 现行机器周期不是所执行指令的最后一个机器周期; ③ 正在执行的是RETI或者是访问IE或IP的指令; CPU在中断响应之后完成如下操作: ① 硬件清除相应的中断标志位;
② 执行一条硬件子程序,保护断点,并转向中断服务程序入口。 ③ 结束中断时执行RETI指令,恢复断点,返回主程序。
8051的CPU在相应中断请求时,由硬件电路自动形成转向与该中断源对应的中断的服务程序入口地址。这种方法为硬件向量中断法。
各中断源的中断服务程序入口地址如下:
编号 0 1 2 3 4 中断源 外部终端0 定时器/计数器0 外部终端1 定时器/计数器1 串行口中断 入口地址 0003H 000BH 0013H 001BH 0023H 各中断服务程序入口地址仅隔8个字节,编译器在这些地址放入无条件转移指令,跳到服务程序的实际地址。
向量中断包括把先前的程序计数指针推入堆栈,中断服务程序很像其他子程序。当向量中断发生时,硬件禁止所有中断。此时表明外部中断或定时器溢出的标志位由硬件清除。中断服务程序的不同分支取决于中断源。在重新允许全局CPU中断EA之前,必须仔细清除各种标志。标志会引起立即地重复中断。8051对终端实际上有特殊的返回指令----RETI。不是RET。RETI重新允许系统识别其他中断。因而,没必要在正常使用中断时复位EA,只要在程序初始化时开中断一次就可以了
2.3 单片机定时/计数器在数字钟的使用
8051系列单片机至少有两个16位内部定时器/计数器。8052有三个定时器/计数器,其中连个基本定时器/计数器是定时器/计数器0和定时器/计数器1。
他们既可以编程为定时器使用,也可以编程为计数器使用。若是计数内部晶振驱动时钟,则它是定时器;若是计数8051的输入引脚的脉冲信号,则它是计数器。
8051的T/C时加一计数的。定时器实际上也是工作在技术方式下的,只不过对固定频率的脉冲计数;由于脉冲周期固定,由计数值可以计算出时间,有定时功能。
当T/C工作在定时器时,对振荡源12分频的脉冲计数,即每个机器周期计数值加一,频率加=fosc/12。晶振为6MHz,计数频率=500KHz,每2Us计数加一。
当T/C工作在计数器时,计数脉冲来自外部脉冲输入引脚T0或T1。当T0或T1脚上负跳变需2个机器周期,即24个振荡周期。所以T0或T1脚输入的计数外部脉冲的最高频率为fosc/12。当晶振为12MHz时,最高技术频率为500KHz,高于此频率将计数出错。
2.3.1与T/C有关的特殊功能寄存器
⑴计数寄存器TH和TL
T/C是16位的,计数寄存器有TH高8位TL低8位构成。在特殊功能寄存器中,对应T/C0为TH0和TL0;对应T/C1为TH1和TL1。定时器/计数器的初始值通过TH1/TL1和TH0/TL0设置
⑵定时器/计数器控制寄存器TCON
TR1 TR0 TR0、TR1:定时器/计数器0、1启动控制位。1是启动,0是停止 TCON复位后清零,T/C需要受到软件控制才能启动计数;当计数计满时,产生向高位的进位TF,即溢出中断请求标志
T/C的方式控制寄存器TMOD
GATE C/T M1 M0 GATE C/T M1 M0 ● C/T:计数器或定时器选择位。1位计数器,0位定时器
● GATE:门控信号。1时T/C的启动控制受到双重控制,即要求TR0/TR1
和INT0/INT1同时为高;0时T/C的启动仅受TR0/TR1控制 ● M1和M0:工作方式选择位,具体见下表
M1 M0 0 0 方式 0 功能 为13位定时器/计数器,TL存低5位,TH存高8位 0 1 1 0 1 1 1 2 3 为16定时器/计数器,TL存低8,TH存高8位 常数自动装入的8位定时器/计数器 仅适用于T/C0,两个8为定时器/计数器 2.3.2 定时器/计数器的初始化
⑴初始化步骤
在使用8051的定时器/计数器前,应对它进行编程初始化,主要是对TCON和TMOD编程,还需要计算和装载T/C的计数初值。一般完成以下几个步骤:
① 确定T/C的工作方式----编程TMOD寄存器。 ② 计算T/C中的计数初值,并装载到TH和TL。
③ T/C在中断方式工作时,须开CPU中断和源中断----编程IE寄存器。 ④ 启动定时器/计数器----编程TCON中TR1和TR0位 ⑵计数初值的计算
在定时器方式下,T/C是对机器周期脉冲计数的,如果fosc=6MHz,一个机器周期为2Us,则
方士0 13位定时器最大时间间隔=(213-1)*2Us=16.384ms; 方式1 16位定时器最大时间间隔=(216-1)*2Us=131.072ms; 方式2 8位时器最大时间间隔=(28-1)*2Us=512Us
若使T/C工作在定时器方式1,要求定时1ms,求计数初值。如设计数初值为x,则有(216-1)*2Us=1000us
x=216-500
因此,TH,TL可置65536-500。
第三章系统硬件电路的设计
3.1 单片机的基本结构
MCS-51单片机内部结构:
8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时
/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明: 中央处理器:
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。 数据存储器(RAM)
8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的
字型表。
图3-1 单片机8051的内部结构
程序存储器(ROM):
8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。
定时/计数器(ROM):
8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
并行输入输出(I/O)口:
8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。
MCS-51的引脚说明:
MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:
MCS-51的引脚说明:
MCS-52系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:
图3-2 单片机的引脚
Pin9:RESET/Vpd复位信号复用脚,当8052通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8052的初始态。
3.2 74LS245 引脚图及功能:
总线驱动器74LS245经常用作三态数据缓冲器,74LS245为双向三态数据缓冲器。单向的内部有8个三态驱动器,分成两组,分别由控制端 1G 和2G 控制; 双向的有16个三态驱动器,每个方向8个。在控制端 G 有效时( G 为低电平),由DIR端控制驱动方向:DIR为“1”时方向从左到右(输出允许),DIR为“0”时方向从右到左(输入允许)。 74LS245
的引脚
图。
G=0,DIR=0,B->A; G=0, DIR=1, A->B;
G=1, DIR=X, X=0或者1,输入和输出均为高阻态;高阻态的含意就是相当于没有这个芯片74LS245是8路3态 双向缓冲驱动,也叫做总线驱动门电路或线驱动。主要使用在数据的双
向缓冲,原来常见于51的数据接口电路,比如,早期电路中,扩展了很多的8255/8155/8251/8253/573等芯片的时候,担心8031的数据驱动能力不足,就使用一片
74LS245作为数据缓冲电路,增强驱动能力;也常见与ISA卡的接口电路.
3.3七段数码管的引脚图及使用:
数码管使用条件:
a、段及小数点上加限流电阻。
b、使用电压:段:根据发光颜色决定; 小数点:根据发光颜色决定。 c、使用电流:静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA 峰值电流 100mA
上面这个只是七段数码管引脚图,其中共阳极数码管引脚图和共阴极的是一样的。
LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。右图是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。
将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。当然,LED的电流通常较小,一般均需在回路中接上限流电阻。假如我们将\"b\"和\"c\"段接上正电源,其它端接地或悬空,那么\"b\"和\"c\"段发光,此时,数码管显示将显示数字“1”。而将\"a\"、\"b\"、\"d\"、\"e\"和\"g\"段都接上正电源,其它引脚悬空,此时数码管将显示“2”。其它字符的显示原理类同。
3.4硬件电路的设计原则
在性价比满足应用系统要求的情况下,选择更可靠,更熟悉的单片机缩短研制周期。
尽可能选择自己较为熟悉的应用电路,以提高系统的可靠性。
单片机内部的资源与外部的扩展资源应在满足系统设计的基础上留有余地,为进一步的升级和扩展提供方便。
应充分的结合软件方案考虑硬件的结构,通常硬件功能较完善,其相应的软件程序就简单,但硬件的成本较高,而功能较低,其相应的软件就复杂,其实际常用软件代替硬件来降低成本。
整个系统相关的器件尽可能的做到性能相匹配。
充分的考虑系统的抗干扰性,如具有抗干扰的单片机并充分的帅选芯片与器件,在电路中采取隔离或屏蔽的措施等。
更具以上的原则我们选择我们较为熟悉的80c51单片机;为了LED数码管的显示和和键盘的控制,我们也选择了74LS245的译码器和#1,#2,#3号按键作为时钟的参数修改加一键
#1键修改时,按一下时加一 #2键修改分,按一下分加一 #3键修改秒,按一下秒加一 时钟硬件连接图如下图所示
S0S1S2S3S4S5S6S7U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617B0B1B2B3B4B5B6B7A0A1A2A3A4A5A6A7A0A1A2A3A4A5A6A723456789191U2A0A1A2A3A4A5A6A7CEAB/BA74LS245B0B1B2B3B4B5B6B71817161514131211S0S1S2S3S4S5S6S718XTAL29RST293031PSENALEEASECONDMINUTEHOUR12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51B0B1B2B3B4B5B6B7
第四章软件程序的设计
4.1 软件程序内容
本设计的软件程序包括主程序、中断子程序、打铃子程序、时钟显示子程序、
查询时间表切换程序和延时子程序等等。另外由于电路中有四个按键,还另外设计了防抖动程序来防止干扰。
4.2 软件流程图
4.2.1 系统软件设计流程图
这次的数字电子钟设计用到很多子程序,它们的流程图如下所示。 主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间。
开始 启动定时器 按键检测
时间显示 图4-1 主程序流程图
按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加1;如果没有按下,就检测分按键是否按下,分按键如果按下,分就加1;如果没有按下,就检测时按键是否按下,时按键如果按下,时就加1;如果没有按下,就把时间显示出来。
N 开始 秒按键按下? Y
图4-2 按键处理流程图
定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1;如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1;如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就显示时间。
N 开始 一秒时间到? Y
图4-3 定时器中断流程图
时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。
4.3 定时程序设计
单片机的定时功能也是通过计数器的计数来实现的,此时的计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲,也就是每经过1个机器周期的时间,计数器加1。如果MCS-52采用的12MHz晶体,则计数频率为1MHz,即每过1us的时间计数器加1。这样可以根据计数值计算出定时时间,也可以根据定时时间的要求计算出计数器的初值。MCS-51单片机的定时器/计数器具有4种工作方式,其控制字均在相应的特殊功能寄存器中,通过对特殊功能寄存器的编程,可以方便的选择定时器/计数器两种工作模式和4种工作方式。
定时器/计数器工作在方式0时,为13位的计数器,由TLX(X=0、1)的低5位和THX的高8位所构成。TLX低5位溢出则向THX进位,THX计数溢出则置位TCON中的溢出标志位TFX.
当定时器/计数器工作于方式1,为16位的计数器。本设计师单片机多功能定时器,所以MCS-51内部的定时器/计数器被选定为定时器工作模式,计数输入信号是内部时钟脉冲,每个机器周期产生一个脉冲使计数器增1。
4.3.1实时时钟实现的基本方法:
时钟的最小计时单位是秒,但使用定时器的方式1,最大的定时时间也只能达到131ms。我们可把定时器的定时时间定为50ms。这样,计数溢出20次即可得到时钟的最小计时单位:秒。而计数20次可以用软件实现。
秒计时是采用中断方式进行溢出次数的累积,计满20次,即得到秒计时。从秒到分,从分到时是通过软件累加并进行比较的方法来实现的。要求每满1秒,则“秒”单元中的内容加1;“秒”单元满60,则“分”单元中的内容加1;“分”单元满60,则“时”单元中的内容加1;“时”单元满24,则将时、分、秒的内容全部清零。:
4.3.2 实时时钟程序设计步骤:
(1)选择工作方式,计算初值; (2)采用中断方式进行溢出次数累计;
(3)从秒——分——时的计时是通过累加和数值比较实现的; (4)时钟显示缓冲区:时钟时间在方位数码管上进行显示,为此在内部
RAM中要设置显示缓冲区,共6个地址单元。显示缓冲区从左到右依次存放时、分、秒数值;
(5)主程序:主要进行定时器/计数器的初始化编程,然后反复调用显示 子程序的方法等待中断的到来。 (6)中断服务程序:进行计时操作
(7)加1子程序:用于完成对时、分、秒的加操作,中断服务程序在秒、
分、时加1时共有三种条调用加1子程序,包括三项内容:合字、加1并进行十进制调整、分字。
第5章 结论与展望
5.1 结论
单片机多功能定时系统理论上能很好的达到了学校教学要求,发挥了单片机在智能化方面的应用。该系统的设计很好的满足当前学校教学的需要,是一个理想的智能化的设计。它具有一个走时精确的实时钟,可以任意设置时间,可以控制时间表的转换,时钟的显示功能等。可以通过按键操作和数字显示。该系统规
模小,但是功能较多,操作简单,造价低,应用非常广泛。该系统的设计为向家庭数字化方向发展又前进了一步。同时又扩大了单片机的应用领域。
5.2 单片机的发展趋势
自单片机出现至今,单片机技术已走过了几十年的发展路程。纵观几十年来单片机发展历程可以看出,单片机技术的发展以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,拉动广泛的应用领域,表现出比微处理器更具个性的发展趋势:
1.采用先进结构以实现高性能
在过去的一段时间内,单片机的指令运行速度一直在10MIPS以下,这对于应用在工业控制领域内的单片机来说是足够了,但当单片机被应用在通讯及DSP领域作为高速运算、编码或解码时,就会出现因指令运行速度不够而限制单片机应用的情形,因此提高单片机指令运行速度已经成为迫切需要解决的问题。
2.进一步降低功耗、
基于80C51的飞利浦低功率、低系统成本微控制器51LPC系列是业界推动单片机向低功耗方向发展的主导单片机系列之一。51LPC系列单片机采用以下三种方法降低功耗:(1)使系统进入空闲模式,在空闲模式下,只有外围器件在工作,任意的复位及中断均可结束空闲模式;(2)使系统进入低功耗模式,在低功耗模式下,振荡器停止工作,是功耗降到最小(3)使系统进入低电压EPROM操作;EPROM包含了模拟电路,当Vcc高于4V时,可通过软件使这些模拟电路掉电以降低功耗,在上电情况下可使系统退出该模式。
3.采用Flash Memory
随着半导体工艺技术的不断进步,MPU的Flash版本逐渐替代了原有的OTP版本。Flash MPU具有以下优点:与多次可编程的窗口式EPROM相比,Flash MPU的成本要低得多;在系统编程能力以及产品生产方面提供了灵活性,因为Flash MPU可在编程后面再次以新代码重新编程;可减少已编程器件的报废和库存;有助于生产厂商缩短设计周期,使终端用户产品和、更具有竞争力。
4.集成更多功能及兼容性
目前单片机的另一个发展趋势是在芯片上集成更多的功能。如模拟功能,包括模拟比较器、A/D和D/A转换器等。具体表现在:兼容性作为设计的第一考虑;额外的新的特点是透明的;使用同一种编程器;OTP使器件快速提升及标准化成为可能。
5.强抗干扰能力
不断加强抗干扰能力是单片机进一步发展的必然趋势。ST Microelectronics公司推出的ST62系列单片机在这方面是佼佼者,其优良的抗干扰能力使得许多大公司将其应用在系统中的关键部件上。许多单片机开发商也正朝着这个方向努力。
6.朝系列化、全面化方向发展
各大单片机开发商在增加产品功能的同时效力于形成产品的系列化=全面化,以满足各种控制领域的要求,这也是单片机发展的趋势之一。日本TOSHBA公司开发了从4位到64位的多系列单片机,日立公司也有从4.位到32位的单片机,目前还没有哪个厂家生产的单片机比东芝公司的种类多。
随着单片机性能断提高,不断的克服和弥补自身的不足。在各种控制领域,单片机将拥有更加广阔的使用天地。在很长的一段时间内,它将一直是工程设计
人员的首选控制芯片之一。
源程序如下:
S_SET BIT P1.0 M_SET BIT P1.1 H_SET BIT P1.2
SECOND EQU 30H MINUTE EQU 31H HOUR EQU 32H TCNT
EQU
34H
;数字钟秒控制位 ;分钟控制位
;小时控制位
附录:
ORG SJMP ORG LJMP
00H START 0BH INT_T0 DPTR,#TABLE HOUR,#0 MINUTE,#0 SECOND,#0 TCNT,#0 TMOD,#01H
TH0,#(65536-50000)/256 TL0,#(65536-50000)MOD 256 IE,#82H TR0
;定时50毫秒
;初始化
START: MOV
MOV MOV MOV MOV MOV MOV MOV MOV SETB
;**************************************************** ;判断是否有控制键按下,是哪一个键按下 A1:
LCALL DISPLAY JNB JNB JNB LJMP
S_SET,S1 M_SET,S2 H_SET,S3 A1
;去抖动
S1: LCALL DELAY
JB INC MOV CJNE MOV LJMP
SECOND A,SECOND A,#60,J0 SECOND,#0 K1 S_SET,A1
;秒值加1
;判断是否加到60秒
S2: LCALL DELAY
JB
M_SET,A1
K1: INC
MOV CJNE MOV LJMP
MINUTE A,MINUTE A,#60,J1 MINUTE,#0 K2
;分钟值加1
;判断是否加到60分
S3: LCALL DELAY
JB
HOUR A,HOUR A,#24,J2 HOUR,#0 MINUTE,#0 SECOND,#0 A1
;判断是否加到24小时
;小时值加1
H_SET,A1
K2: INC
MOV CJNE MOV MOV MOV LJMP
;**************************************************** ;等待按键抬起 J0:
JB
S_SET,A1
LCALL DISPLAY SJMP JB
J0 M_SET,A1
J1:
LCALL DISPLAY SJMP JB
J1 H_SET,A1
J2:
LCALL DISPLAY SJMP
J2
;*********************************************** ;定时器中断服务程序,对秒,分钟和小时的计数
INT_T0: MOV
MOV INC MOV CJNE INC MOV MOV CJNE INC MOV MOV CJNE INC MOV MOV CJNE MOV MOV MOV MOV
TH0,#(65536-50000)/256 TL0,#(65536-50000)MOD 256 TCNT A,TCNT A,#20,RETUNE SECOND TCNT,#0 A,SECOND A,#60,RETUNE MINUTE SECOND,#0 A,MINUTE A,#60,RETUNE HOUR MINUTE,#0 A,HOUR A,#24,RETUNE HOUR,#0 MINUTE,#0 SECOND,#0 TCNT,#0
;计时1秒
RETUNE: RETI
;****************************************** ;显示控制子程序 DISPLAY:MOV
MOV DIV CLR MOVC MOV
A,SECOND B,#10 AB P3.6 A,@A+DPTR P0,A
;显示秒
LCALL DELAY SETB P3.6 MOV A,B CLR P3.7 MOVC A,@A+DPTR MOV
P0,A
LCALL DELAY SETB
P3.7
CLR P3.5 MOV
P0,#40H
LCALL DELAY SETB
P3.5
MOV A,MINUTE MOV B,#10 DIV AB CLR P3.3 MOVC A,@A+DPTR MOV
P0,A
LCALL DELAY SETB P3.3 MOV A,B CLR P3.4 MOVC A,@A+DPTR MOV
P0,A
LCALL DELAY SETB
P3.4
CLR P3.2
显示分隔符
显示分钟
;
; MOV LCALL
SETB
MOV MOV DIV CLR MOVC MOV
LCALL SETB MOV CLR MOVC MOV
LCALL SETB
RET
TABLE: DB
DB
DELAY: MOV D1: MOV DJNZ DJNZ RET
END
P0,#40H ;显示分隔符
DELAY P3.2
A,HOUR ;显示小时
B,#10 AB P3.0 A,@A+DPTR P0,A
DELAY P3.0 A,B P3.1 A,@A+DPTR P0,A
DELAY P3.1
3FH,06H,5BH,4FH,66H 6DH,7DH,07H,7FH,6FH R6,#10 R7,#250 R7,$ R6,D1
参考文献
1 李光飞 楼然庙 胡佳文等编著[M]. 《单片机课程设计---实例指导》 北京: 北京航空航天大学出版社 2004.9 电子万年历的设计制作 P30-------P42 2 苏家健 曹柏荣 汪志锋等编著[M].. 《单片机原理及应用技术》 北京: 高等教育出版社 2004.11
3 求是科技编著[M].. 《单片机典型模块设计实例指导》 北京: 人民邮电出版社 2004.5
4 赵亮 侯国锐等编著[M].. 《单片机C语言编程与实例》 北京: 人民邮电出版社 2002
5 李群芳 黄建等编著[M].. 《单片微型计算机与接口技术》 北京: 电子工业出版社 2001
6 王德彪编著[M].. 《MCS-51单片机原理及接口技术》 北京: 电子工业出版社 2003
7 房小翠编著[M].. 《单片机使用系统设计技术》 北京: 北京航空航天大 学出版社 1999
8 涂时亮编著[M].. 《单片微机控制技术》 上海: 复旦大学出版社 1994
9 何立民编著[M]. 《MCS-51系列单片机应用系统设计系统配置与接口技术》 北京 北京航空航天大学出版社 1990
因篇幅问题不能全部显示,请点此查看更多更全内容