数字电子时钟设计与开发毕业论文.docx
《数字电子时钟设计与开发毕业论文.docx》由会员分享,可在线阅读,更多相关《数字电子时钟设计与开发毕业论文.docx(45页珍藏版)》请在冰豆网上搜索。
数字电子时钟设计与开发毕业论文
数字电子时钟设计与开发毕业论文
摘要I
第1章绪论1
1.1数字电子时钟背景1
1.2数字电子时钟的发展史1
1.3数字电子时钟的应用1
1.4数字电子时钟的应用2
第2章数字电子时钟总体设计3
2.1设计方案3
2.1.1核心控制部分方案3
2.1.2显示部分方案3
2.1.2键盘部分方案3
2.2方案选择3
2.2.1时间显示4
2.1.2时间调整4
2.1.3闹钟设置4
第3章数字电子时钟硬件电路设计5
3.1硬件电路采用器件5
3.2AT89C51单片机模块5
3.2.1AT89C51单片机的主要性能6
3.2.2AT89C51单片机的引脚说明7
3.2.3AT89C51单片机的储存器说明8
3.2.4AT89C51单片机的振荡器说明9
3.2.5AT89C51单片机的定时/计数器说明9
3.2.6AT89C51单片机的芯片擦除功能说明10
3.2.7AT89C51单片机的中断源10
3.3可编程I/O扩展—8155芯片模块10
3.3.18155芯片的部结构10
3.3.28155芯片的引脚说明10
3.3.38155芯片的地址编码及工作方式12
3.3.48155芯片的命令/状态寄存器12
3.3.58155芯片与51单片机接口15
3.4显示模块15
3.4.1数码管简介15
3.4.2数码管结构及工作原理16
3.4.3数码管分类17
3.4.4数码管光源的优缺点17
3.574LS07模块18
3.5.174LS07简介18
3.5.274LS07引脚图18
3.5.374LS07真值表18
3.5.474LS07逻辑图19
3.6矩阵键盘模块19
3.6.1矩阵键盘的工作原理20
第4章数字电子时钟软件电路设计21
4.1系统软件设计流程图21
4.1.1主程序流程21
4.1.2按键处理流程21
4.1.3定时器中断流程21
4.1.4时间显示流程21
4.2源程序清单24
第5章数字电子时钟系统调试31
5.1软、硬件调试31
5.1.1测试AT89C51单片机、8155、74LS07芯片31
5.1.2主程序流程31
5.1.3软件调试31
5.2统一调试31
第6章数字电子时钟实物电路展示32
结论33
参考文献34
致谢35
作者简介36
第1章绪论
1.1数字电子时钟的背景
20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。
忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。
但是,一旦重要事情,一时的耽误可能酿成大祸。
目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着科技化、低功耗、小体积、大容量、高性能、低价格和外围电路装化等几个方面发展。
下面是单片机的主要发展趋势。
单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
1.2数字电子时钟的发展史
电子钟有着很长的历史,从民国19年的电钟,研制始于60年代中期的国电晶体、半导体管钟,到研制始于70年代末的石英电子钟,再到今天我们所用的智能电子钟。
以前的电子钟存在着很多缺点,其外观体积庞大,在功能上有死摆、走时时间不长、走时精确度不高等缺点。
如今无论是外观,还是在功能上,电子钟都有了很大的改进。
1.3数字电子时钟的意义
数字钟是采用数字电路实现对时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
1.4数字电子时钟的应用
数字钟已成为人们日常生活中:
必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
第2章数字电子时钟总体设计
2.1设计方案
2.1.1核心控制部分方案
方案一:
采用单片机作为数字电子时钟的核心控制部分
方案二:
采用555定时器作为电子时钟的核心控制部分
2.1.2显示部分方案
方案一:
静态显示就是当CPU将要显示的字或字段码送到输出口,显示器就可以显示出所要显示的字符,如果CPU不去改写它,它将一直保持下去;静态显示硬件开销大,电路复杂,信息刷新速度慢。
方案二:
动态显示则是一位一位地轮流点亮显示器地各个位(扫描)。
对于显示器的每一位而言,每隔一段时间点亮一次;动态显示耗能较小,但编写程序较复杂。
动态显示硬件连接简单,信息刷新速度快。
2.1.3键盘部分方案
方案一:
独立式键盘。
独立式键盘的各个按键相互独立,每个按键独立地与一根数据输入线(单片机并行接口或其他芯片的并行接口)连接。
独立式键盘配置灵活,软件结构简单,但每个按键必须占用一根接口线,在按键数量不多时,接口线占用多。
所以,独立式按键常用于按键数量不多的场合。
方案二:
矩阵式键盘。
矩阵式键盘采用的是行列式结构,按键设置在行列的交点上.(当接口线数量为8时,可以将4根接口线定义为行线,另4根接口线定义为列线,形成4×3键盘,可以配置12个按键。
)
2.2方案选择
经过论证,决定采用AT89C51单片机作为数字电子时钟的核心部分,采用8155以及6位数码管作为显示系统,采用4×3矩阵键盘作为数字电子时钟的控制系统的方案。
如图2-1数字电子时钟硬件电路图
2.2.1时间显示
由于本方案需要显示时、分、秒三方面容,所以计划采用6位数码管作为显示系统,上电后系统自动进入时钟显示,从00:
00:
00开始计时,此时可以设定当前时间。
2.2.2时间调整
按下矩阵键盘上的C/R键(时间设定/起动计时键),系统停止计时,进入时间设定状态,系统保持原有显示,等待键入当前时间,根据需要按下0—9数字键可以顺序设置分和秒,并在相应的LED上显示设置值。
6位设置完毕后,系统将从设定后的时间开始计时显示。
2.2.3闹钟设置
按下ALM键(闹钟设置/启闹/停闹键),系统继续计时,显示00:
00:
00,进入闹钟设置状态,等待键入启闹时间,根据需要按下0—9数字键可以顺序进行相应的时间设置,并在相应的LED上显示设置值。
6位设置完毕后,系统启动定时启闹功能,并恢复时间显示。
定时时间一到,蜂鸣器就会鸣叫,直至重新按下ALM键停闹,并取消闹钟设置。
第3章数字电子时钟硬件电路设计
3.1硬件电路采用器件
数字电子时钟电路有80C51单片机、可编程I/O接口芯片8155、4×3键盘输入电路、6位LED显示输出电路及74LS07为主要部件的蜂鸣器启闹电路组成。
如图3-1数字电子时钟硬件电路图
3.2AT89C51单片机模块
AT89C51单片机是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
如图3-2AT89C51单片机
3.2.1AT89C51单片机的主要性能
·与MCS-51兼容
·4K字节可编程闪烁存储器
·寿命:
1000写/擦循环
·数据保留时间:
10年
·全静态工作:
0Hz-24Hz
·三级程序存储器锁定
·128×8位部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片振荡器和时钟电路
3.2.2AT89C51单片机的引脚说明
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)这是由于上拉的缘故。
表3-1AT89C51的特殊功能口
P3口也可作为AT89C51的一些特殊功能口,如表3-1所示:
口管脚
备选功能
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禁止,置位无效。
如图3-3AT89C51单片机引脚图
3.2.3AT89C51单片机的储存器说明
MCS-51器件有单独的程序存储器和数据存储器。
外部程序存储器和数据存储器都可以64K寻址。
程序存储器:
如果EA引脚接地,程序读取只从外部存储器开始。
对于AT89C51,如果EA接VCC,程序读写先从部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地址为:
2000H~FFFFH。
数据存储器:
AT89S52有256字节片数据存储器。
高128字节与特殊功能寄存器重叠。
也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。
当一条指令访问高于7FH的地址时,寻址方式决定CPU访问高128字节RAM还是特殊功能寄存器空间。
直接寻址方式访问特殊功能寄存器(SFR)。
例如,下面的直接寻址指令访问0A0H(P2口)存储单元MOV0A0H,#data使用间接寻址方式访问高128字节RAM。
例如,下面的间接寻址方式中,R0容为0A0H,访问的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。
MOVR0,#data堆栈操作也是简介寻址方式。
因此,高128字节数据RAM也可用于堆栈空间。
储存器的结构如图3-4
3.2.4AT89C51单片机的振荡器说明
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
3.2.5AT89C51单片机的定时/计数器说明
AT89C51有两个16位可编程定时器/计数器T0/T1。
T0由TH0,TL0构成,T1由TH1,TL1构成。
T0/T1在定时控制寄存器TCON和方式选择寄存器TMOD控制下,可实现定时或计数。
3.2.6AT89C51单片机的芯片擦除功能说明
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
3.2.7AT89C51的中断源
中断源
说明
外部中断INT0
从P3.2引脚引入的外部中断申请
定时器T0中断
定时器T0溢出时引发中断申请
外部中断INT1
从P3.3引脚引入的外部中断申请
定时器T1中断
定时器T1溢出时引发中断申请
串行口中断
一次串行发送或接收完成后,发出中断申请
引起专断的原因称为中断源。
AT89C51单片机有5个中断源,包括2个外部中断,2个片定时/计数器溢出中断,1个串行口中断。
89C51单片机中断源如表3-2所示。
表3-2AT89C51单片机中断源
3.3可编程I/O扩展—8155芯片模块
8155是单片机常用的接口扩展芯片,其部包含256B的静态RAM,2个8位的并行I/O接口,1个6位的并行I/O接口和一个14位的定时/计数器。
3.3.18155芯片的部结构
8155芯片部共包括4个部分,分别是
1、256B的静态RAM,存取时间为400ns
2、3个通用的输入/输出口PA、PB、PC。
3、1个14位的可编程定时/计数器。
4、1个8位命令寄存器(只能写入)/8位状态寄存器(只能读出)。
8155芯片的具体结构如图3-5。
3.3.28155芯片的引脚说明
RST:
复位信号输入端,高电平有效。
复位后,3个I/O口均为输入方式。
AD0~AD7:
三态的地址/数据总线。
与单片机的低8位地址/数据总线(P0口)相连。
单片机与8155之间的地址、数据、命令与状态信息都是通过这个总线口传送的。
:
读选通信号,控制对8155的读操作,低电平有效。
:
写选通信号,控制对8155的写操作,低电平有效。
:
片选信号线,低电平有效。
IO/
:
8155的RAM存储器或I/O口选择线。
当IO/
=0时,则选择8155的片RAM,AD0~AD7上地址为8155中RAM单元的地址(00H~FFH);当IO/
=1时,选择8155的I/O口,AD0~AD7上的地址为8155I/O口的地址。
ALE:
地址锁存信号。
8155部设有地址锁存器,在ALE的下降沿将单片机P0口输出的低8位地址信息及
,IO/
的状态都锁存到8155部锁存器。
因此,P0口输出的低8位地址信号不需外接锁存器。
PA0~PA7:
8位通用I/O口,其输入、输出的流向可由程序控制。
PB0~PB7:
8位通用I/O口,功能同A口。
PC0~PC5:
有两个作用,既可作为通用的I/O口,也可作为PA口和PB口的控制信号线,这些可通过程序控制。
TIMERIN:
定时/计数器脉冲输入端。
TIMEROUT:
定时/计数器输出端。
VCC:
+5V电源。
8155芯片的引脚如图3-6所示
3.3.38155芯片的地址编码及工作方式
在单片机应用系统中,8155是按外部数据存储器统一编址的,为16位地址,其高8位由片选线
提供,
=0,选中该片。
当
=0,IO/
=0时,选中8155片RAM,这时8155只能作片外RAM使用,其RAM的低8位编址为00H~FFH;当
=0,IO/
=1时,选中8155的I/O口,其端口地址的低8位由AD7~AD0确定,如表6-6所示。
这时,A、B、C口的口地址低8位分别为01H、02H、03H(设地址无关位为0)。
8155芯片的I/O口地址如表3-3所示
表3-38155芯片的I/O口地址
AD7~AD0
选择I/O口
A7
A6
A5
A4
A3
A2
A1
A0
×
×
×
×
×
0
0
0
命令/状态寄存器
×
×
×
×
×
0
0
1
A口
×
×
×
×
×
0
1
0
B口
×
×
×
×
×
0
1
1
C口
×
×
×
×
×
1
0
0
定时器低8位
×
×
×
×
×
1
0
1
定时器高6位及方式
3.3.48155芯片的命令/状态寄存器
8155芯片的A口、B口可工作于基本I/O方式或选通I/O方式。
C口可工作于基本I/O方式,也可作为A口、B口在选通工作方式时的状态控制信号线。
当C口作为状态控制信号时,其每位线的作用如下:
PC0:
AINTR(A口中断请求线)
PC1:
ABF(A口缓冲器满信号)
PC2:
(A口选通信号)
PC3:
BINTR(B口中断请求线)
PC4:
BBF(B口缓冲器满信号)
PC5:
(B口选通信号)
8155芯片的I/O工作方式选择是通过对8155芯片部命令寄存器设定控制字实现的。
命令寄存器只能写入,不能读出,命令寄存器的格式如图6-16所示。
在ALT1~ALT4的不同方式下,A口、B口及C口的各位工作方式如下:
ALT1:
A口,B口为基本输入/输出,C口为输入方式。
ALT2:
A口,B口为基本输入/输出,C口为输出方式。
ALT3:
A口为选通输入/输出,B口为基本输入/输出。
PC0为AINTR,PC1为ABF,PC2为
,PC3~PC5为输出。
ALT4:
A口、B口为选通输入/输出。
PC0为AINTR,PC1为ABF,PC2为
,PC3为BINTR,PC4为BBF,PC5为
。
8155芯片命令寄存器的格式如图3-7所示。
8155芯片还有一个状态寄存器,用于锁存输入/输出口和定时/计数器的当前状态,供CPU查询用。
状态寄存器的端口地址与命令寄存器相同,低8位也是00H,状态寄存器的容只能读出不能写入。
所以可以认为8155芯片的I/O口地址00H是命令/状态寄存器,对其写入时作为命令寄存器;而对其读出时,则作为状态寄存器。
8155芯片状态寄存器的格式如图3-8所示。
3.3.58155芯片与51单片机接口
8155芯片与51单片机接口如图3-9所示
3.4显示模块
根据硬件电路要求,本次数字电子时钟设计决定采用6位数码管作为显示模块。
3.4.1数码管简介
LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。
如图3-10。
这些段分别由字母a,b,c,d,e,f,g,dp来表示。
当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。
如:
显示一个“2”字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。
LED数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。
小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。
发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。
常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。
3.4.2数码管结构及工作原理
LED数码管(LEDSegmentDisplays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在部连接完成,只需引出它们的各个笔划,公共电极。
LED数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。
位数有半位,1,2,3,4,5,6,8,10位等等。
本次设计将采用如图3-11所示的6位数码管作为显示模块。
LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。
例如图3-12是4位8段共阴极数码管的部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。
颜色有红,绿,蓝,黄等几种。
led数码管广泛用于仪表,时钟,车站,家电等场合。
选用时要注意产品尺寸颜色,功耗,亮度,波长等。
3.4.3数码管分类
3.4.3.1从控制方式上分:
分为控方式(部有单片机,通电自动变色)和外控方式(需要外接控制器才能变色)。
3.4.3.2从变化方式上分:
分为固定色彩的和七彩、全彩的;固定色彩的是用来勾轮廓的,全彩的可以勾轮廓,也可以组成管屏显示文字、视频等。
3.4.3.3从尺寸上分:
有D50的、D30的,D50和D30表示直径。
3.3.2.4从部可控性上分:
有1米6段的,有1米8段的和1米12段、1米16段、1米32段的。
也就是1米的管子有几段可以独立受控;1米段数越多,做视频的效果越好。
如果密度低,或者做些追逐效果,做1米6段也就可以了。
3.4.3.5从LED数量上分:
有1米96颗灯的,有1米144颗灯的