毕业设计自动报时系统Word下载.docx
- 文档编号:16659784
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:26
- 大小:350.68KB
毕业设计自动报时系统Word下载.docx
《毕业设计自动报时系统Word下载.docx》由会员分享,可在线阅读,更多相关《毕业设计自动报时系统Word下载.docx(26页珍藏版)》请在冰豆网上搜索。
本设计是利用单片机原理设计的自动报时系统。
其中,自动报时系统以AT89C51单片机为核心,采用4个独立式按键来调整时间和设置闹铃,用共阴极动态六段LED动态显示来显示时间,计时方案采用时钟芯片DS1302。
以8路反向动态缓冲器74LS240作为LED的动态扫描的段码控制驱动信号,用P2.0—2.5外接一片集电极开路反向门电路7406(OC门)做6位LED的位选信号驱动口,6个数码管的8根段选线分别接74LS240的输出,LED共阴极端与7406的输出端相连,从左到右依次来显示时,分,秒。
正文中首先简单描述了硬件系统的工作原理,且附以硬件系统的设计框图,论述了本次毕业设计所应用的各种硬件接口技术和各个接口模块的功能及工作过程,并具体描述了外接电路接口的软、硬件调试。
本文撰写的主导思想是软、硬件相结合,以硬件为基础,来进行各功能模块的编写。
关键词:
单片机,自动报时系统,位码,段码,显示
1前言
随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小、功能将更强。
在单片机家族中,80C51系列是其中的佼佼者,加之Intel公司将其MCS–51系列中的80C51内核使用权以专利互换或出售形式转让给全世界许多著名IC制造厂商,如Philips、NEC、Atmel、AMD、华邦等,这些公司都在保持与80C51单片机兼容的基础上改善了80C51的许多特性。
这样,80C51就变成有众多制造厂商支持的、发展出上百品种的大家族,现统称为80C51系列。
80C51单片机已成为单片机发展的主流。
专家认为,虽然世界上的MCU品种繁多,功能各异,开发装置也互不兼容,但是客观发展表明,80C51可能最终形成事实上的标准MCU芯片。
本设计采用的是ATMEL公司的AT89C51芯片,此芯片根据了充分的静止CMOS控制器与三级节目记忆锁,共有:
32条I/O线,2定时计数器,6个中断来源,4K闪存,128个字节在芯片RAM。
由于本设计所做的是一个自动报时系统简单,所以要用到单片机的最小应用系统模块1,还需要用独立式键盘和动态显示模块。
而我的硬件设计详见第二章,主要介绍了需要哪几部分硬件电路和硬件系统的概叙。
在2.1节介绍了主要的硬件框架;
2.2节简单的介绍了单片机最小应用系统的性能和附属电路;
2.3节详细介绍了键盘控制电路;
2.4节介绍了动态显示电路。
2.5介绍了DS1302芯片。
在第三章中我们详细的解说了软件系统的设计。
3.1节介绍了我们做这个设计的程序设计思路;
3.2节介绍了主程序模块及其框图;
3.3节介绍了显示程序模块及其框图。
第四章是我对此设计的调试过程和结果显示。
第五章就是我对此设计的总体概括,体会和心得。
我所设计的这个自动报时系统简单,实用性强,成本低,使用维护方便,软件功能强,运行稳定可靠等优点。
2硬件系统设计
2.1总体框图设计
我所设计的是一个自动报时系统,自动报时系统用到的单片机芯片是AT89C51芯片,除此之外还包括:
晶振电路和复位电路构成单片机最小应用系统;
还有独立式按键电路;
动态显示电路等等;
总体设计框图如图2.1所示。
图2.1 总体设计框图
2.2单片机选型
2.2.1AT89C51的特点
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能、CMOS、8位单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
AT89C51的管脚图如图2.2所示。
图2.2AT89C51管脚图
主要特性:
1、与MCS-51兼容
2、4K字节可编程闪烁存储器
3、寿命:
1000写/擦循环
4、数据保留时间:
10年
5、全静态工作:
0Hz-24Hz
6、三级程序存储器锁定
7、128*8位内部RAM
8、32可编程I/O线
9、两个16位定时器/计数器
10、5个中断源
11、可编程串行通道
12、低功耗的闲置和掉电模式
13、片内振荡器和时钟电路
2.2.2单片机附属电路
单片机附属电路主要有晶体振荡电路和复位电路。
一、晶体振荡电路
1.晶体振荡器的作用石英晶体振荡器也称石英晶体谐振器,它用来稳定频率和选择频率,是一种可以取代LC谐振回路的晶体谐振元件。
2.本设计所用的晶体振荡电路如图2.3所示:
图2.3晶体振荡电路
此晶振电路所选用的石英晶振频率为12MHZ。
时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12us),是计算机中最基本的、最小的时间单位。
在一个时钟周期内,CPU仅完成一个最基本的动作。
对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;
若采用4MHZ的时钟频率,则时钟周期为0.25us。
由于时钟脉冲是单片机的基本工作脉冲,它控制着单片机的工作节奏(使单片机的每一步都统一到它的步调上来)。
显然,对同一种机型的单片机,时钟频率越高,单片机的工作速度就越快。
但是,由于不同的单片机的硬件电路和器件不完全相同,所以其需要的时钟频率范围也不相同。
我们学习的51系列单片机的时钟范围是1.2MHz-12MHz。
二、复位电路
单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第—个单元取指令。
无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位,所以我们必须弄清楚MCS-51型单片机复位的条件、复位电路和复位后状态。
单片机复位的条件是:
必须使RST/Vpd或RST引脚加上持续两个机器周期(即24个振荡周期)的高电平。
例如,若时钟频率为12MHz,每机器周期为1us,则只需2us以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。
单片机常用的复位电路如图2.4(a)和图2.4(b)所示:
图2.4(a)复位电路图2.4(b)与单片机相连的复位电路
图2.4(a)复位电路,其电阻阻值的选择和电容容量的选择都是经过计算的,而最后计算的结果时间常数可以满足我们的需求。
其计算过程如下:
て=0.7RC=0.7×
1000×
10×
10-6=0.7ms
此值远远大于2us,所以此复位电路可用。
图2.4(b)是我设计中用到的复位单路,为按键复位电路。
该电路除具有上电复位功能外,若要复位,只需按图中的RESET键,此时电源VCC经电阻R1、R2分压,在RESET端产生复位高电平。
2.3独立式按键控制电路
独立式键盘的接口电路:
在单片机应用系统中,有时只需要几个简单的按键向系统输入信息。
这时,可将每个按键直接接在一根I/O接口线上,这种连接方式的键盘称为独立式键盘。
如图2.5所示,每个独立按键单独占有一根I/O接口线,每根I/O接口线的工作状态不会影响到其他I/O接口线。
这种按键接口电路配置灵活,硬件结构简单,但每个按键必须占用一根I/O线,I/O接口线浪费较大。
故只在按键数量不多时采用这种按键电路。
在此电路中,按键输入都采用低电平有效。
上拉电阻保证了按键断开时,I/O接口线有确定的高电平。
当I/O接口内部有上拉电阻时,外电路可以不配置上拉电阻。
独立式按键具体在自动报时系统中的应用,在2.3.1中有详细介绍。
.
图2.5独立式键盘电路
2.3.1自动报时系统的按键接口及功能工作原理
在自动报时系统中采用4个独立的键盘,其中一个为功能键;
一个为数字调整键;
一个为取消设置键,用来设定时间;
一个为ALM键,用来设定定时时间。
按键的接口由P1.7、P1.6、P1.5、P1.5、P1.4来完成。
1.时间调整:
按下功能键,系统停止计时显示,进入时间设定状态,系统只显示小时的内容,其余4位LED处于全暗状态,等待按键设置。
此时按动数字调整键后小时将会加1,按动取消键后又重新回到原来的时间显示状态;
若再按动功能键则用来调整分钟,此时小时和秒的4位LED指示全暗,按数字调整键后可以对分钟增1调整,按动取消键后又重新回到原来的时间显示状态;
再按动功能键则用来调整秒,此时小时和分钟的4位LED指示全暗,秒显示当前的秒数,暗数字调整键可以对秒进行增1调整,按动取消键后又重新回到原来的时间显示状态,按动功能键后系统将自动由设定后的时间开始计时显示。
2.闹钟设置/启闹:
按下ALM键,系统继续计时,但显示为00:
00:
00,此时再按动功能键后进入闹钟设置状态,设置过程和时间调整相同,但是最后按功能键确定后显示定时时间30S后自动启动定时闹钟功能,并恢复时间显示。
定时时间到,蜂鸣器鸣叫1min后自动停闹,每次设置时只能定一次,下次需重新设置。
2.3.2按键开关的去除抖动功能
目前,MCS—51单片机应用系统上的按键常采用机械触点式按键,它在断开、闭合时输入电压波形如图2.6所示.可以看出机械触点在闭合及断开瞬间均有抖动过程,时间长短与开关的机械特性有关,一般为5~10ms。
由于抖动,会造成被查询的开关状态无法准确读出。
例如,一次按键产生的正确开关状态,由于键的抖动,CPU多次采集到底电平信号,会被误认为按键被多次按下,就会多次进行键输入操作,这是不允许的。
为了保证CPU对键的一次闭合仅在按键稳定时作一次键输入处理,必须消除产生的前沿(后沿)抖动影响。
所以我在软件设计中作了相应设计。
图2.6按键过程
2.4LED动态显示电路
2.4.1数码管简介
1.数码管结构
数码管由8个发光二极管(以下简称字段)构成,通过不同的组合可用来显示数字09、字符AF及小数点“·
”。
数码管的外形结构如图2.7(a)所示。
数码管又分为共阴极和共阳极两种结构,分别如图2.7(b)和图2.7(c)所示。
(a)外型结构;
(b)共阴极;
(c)共阳极
图2.7数码管结构图
2.数码管工作原理
由于我们采用的是共阴极数码管,所以介绍共阴极数码管的工作原理如下:
共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起。
通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。
当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮。
根据发光字段的不同组合可显示出各种数字或字符。
此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。
共阳极数码管的工作原理与共阴极的正好相反。
3.数码管字形编码
要使数码管显示出相应的数字或字符,必须使段数据口输出相应的字形编码。
LED显示字型码表见表2.1:
表2.1LED显示字型码表
显示字符
共阴极
共阳极
3FH
C0H
9
6FH
90H
1
06H
F9H
A
77H
88H
2
5BH
A4H
B
7CH
83H
3
4FH
B0H
C
39H
C6H
4
66H
99H
D
5EH
A1H
5
6DH
92H
E
79H
86H
6
7DH
82H
F
71H
8EH
7
07H
F8H
8
7FH
80H
2.4.2显示的种类
1.静态显示概念
静态显示是指数码管显示某一字符时,相应的发光二极管恒定导通或恒定截止。
这种显示方式的各位数码管相互独立,公共端恒定接地(共阴极)或接正电源(共阳极)。
每个数码管的8个字段分别与一个8位I/O口地址相连,I/O口只要有段码输出,相应字符即显示出来,并保持不变,直到I/O口输出新的段码。
采用静态显示方式的优点:
较小的电流即可获得较高的亮度,且占用CPU时间少,编程简单,显示便于监测和控制,但其占用的接口线多,硬件电路复杂,成本高,只适合于显示位数较少的场合。
2.动态显示概念
动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。
通常,各位数码管的段选线相应并联在一起,由一个8位的I/O口控制;
各位的位选线(公共阴极或阳极)由另外的I/O口线控制。
动态方式显示时,各数码管分时轮流选通,要使其稳定显示,必须采用扫描方式,即在某一时刻只选通一位数码管,并送出相应的段码,在另一时刻选通另一位数码管,并送出相应的段码。
依此规律循环,即可使各位数码管显示将要显示的字符。
虽然这些字符是在不同的时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人以同时显示的感觉。
采用动态显示方式比较节省I/O口,硬件电路也较静态显示方式简单,但其亮度不如静态显示方式,而且在显示位数较多时,CPU要依次扫描,占用CPU较多的时间。
我们这个设计所使用的显示属于动态显示,其显示电路图形如图2.8所示:
图2.8动态显示电路
显示器由6个共阴极数码管组成。
同时采用动态扫描方式依次循环点亮数码管,即构成多位动态显示电路。
图中,6位数码管均采用共阴极LED,P0接口外接8路反相三态缓冲器74LS240作LED动态扫描的段码控制驱动信号,用P1接口的P1.0-P1.3外接一片集电极开路反相门电路74LS07做为8位LED的位选信号驱动口,LED共阴极端与74LS06的输出端相连。
74LS240的功能
74LS240是原码三态输出的8缓冲数码驱动器,其管脚分布图如图2.9所示,G为控制端,又称为使能端其工作原理如下:
当G=0时,A输入为低电平时,Y输出也为低电平。
当G=0时,A输入为高电平时,Y输出为高电平。
当G=1时,A不论输入高电平还是低电平Y为高阻状态。
图2.974LS240管脚图
74LS06的功能
74LS06是六缓冲的数码驱动器,它是有6个集电极开路的非门所组成,当使能端为低电平时,输入为高电平时输出也为高电平,当输入为低电平时输出也为低电平,其逻辑表达式为:
Y=A。
2.5时钟芯片DS1302
2.5.1DS1302芯片具有以下特点
1、实时时钟/日历:
实时时钟/日历提供秒、分、时日星期月和年等信息,每月天数以及闰年能自动调整,时钟可以才用24h或AM/PM的12h格式。
2、31字节的静态RAM:
用于存储数据。
3、带慢速充电控制备份电源的充电特性。
4、简单的三线串行接口:
该芯片使用同步串行通信。
与时钟/RAM通信供需3根线:
复位、数据线、串行时钟。
数据可以以每次1个字节的形式传送到时钟/RAM或从其读出。
2.5.2它的引脚图和引脚功能
DS1302的引脚结构见图2.10,引脚功见表2.2。
图2.10DS1302引脚图
引脚号
引脚名称
功能
Vcc2
主电源
2、3
X1、X2
32.768KHZ晶振接口
GND
地
RST
复位兼片选端
I/O
串行数据输入/输出
SCLK
串行时钟输入端
Vcc1
后备电源
表2.2DS1302的引脚功能
2.5.3DS1302的工作原理
1、DS1302组成:
串行时钟芯片主要由移位寄存器、控制逻辑、振荡器、实时时钟、RAM、电源组成,如图2.11所示。
图2.11DS1302内部结构组成
入移位寄存器;
其2、复位时钟:
为了初始化任何的数据传送,通过把RST输入驱至高电平来启动所有的数据传送。
RST有两种功能,首先,RST接通控制逻辑,允许地址/命令序列送次,RST提供了单字节或多字节数据传送的手段。
时钟SCLK是上升沿后继以下降沿的序列。
数据输入时,在时钟的上升沿前必须有效,而数据位在时钟的下降沿之后输出。
如果RST输入为低电平,则I/O引脚变为高阻状态,终止数据传输。
通电时,VCC>2.5V,RST由0至1状态时,SCKL必须为逻辑0。
3、操作方式:
芯片的操作受地址/命令字节控制,每一组数据的传送由命令字节初始化。
地址/命令字节格式如图2.12所示。
位7必须为逻辑1,如果它是0,禁止写DS1302;
位6逻辑0,指定为时钟/日历数据,为逻辑1,指定为RAM数据;
位1—5指定输入或输出的寄存器单元地址;
位0指定输入/输出数据。
命令字节总是从最低有效位开始输入。
4、数据输入:
当命令字节为写命令时,最低位为0,在下8个SCLK周期的上升沿输入字节,数据从最低位开始输入;
数据输出:
当命令字节为读命令时,最低位为1,在下8个SCLK周期的下降沿输出数据字节。
这时被传送的第一数据为发生在命令字节的最后一位之后的第一个下降沿,所以,在非多字节方式,每次读或写的脉冲个数为16个,前8个为命令脉冲,后8个为读或写的脉冲。
这样在单字节传送数据时,每次命令为16个脉冲即可完成,多余的脉冲将忽略不计。
通过对地址31寻址,可以把时钟/日历或RAM寄存器规定为多字节读写方式,读或写仍从地址0单元的最低位开始。
当以多字节方式写时钟寄存器时,必须按数据的次序写最先的8个寄存器。
这样8个时钟字节的读或写共需72个脉冲时钟,31个RAM的读或写共需256脉冲时钟。
其时序如图2.13所示:
图2.13DS1302的时序
2.6电路原理
电路的核心是89C51单片机,其内部带有4KB的FlashROM,无须扩展程序存储器;
电脑没有大量的运算和暂存数据,现有的128B片内RAM已能满足要求,也不必扩展片外RAM。
系统配备6位LED显示和4个单接口键盘,采用P0接口外接8路反相三态缓冲器74LS240作LED动态扫描的段码控制驱动信号,用P2接口的P2.0-P2.5外接一片集电极开路反相门电路74LS06做为6位LED的位选信号驱动口,6个数码管的8根段选线分别与74LS06的输出端相连;
LED共阴极端与7406的输出端相连;
按键接口由P1.7、P1.6、P1.5、P1.4来完成。
DS1302实时时钟芯片接口由P1.0、P1.1、P1.2来控制,P3口接闹钟小喇叭。
其硬件原理总图见附录A。
3软件设计
3.1设计思路
因为我做的是自动报时系统,它需要具有校时,调时,定时,闹钟,等功能,而且用到了DS1302芯片,此芯片具有自动记时功能所以编写程序简单。
所以我们考虑到用单片机语言来做我们的设计。
对于程序我们的设计思路是:
1.在此设计中用定时器来完成动态扫描显示。
用定时器T0定2ms的时间间隔,每次定时时间到时就输出一个LED信号,即显示一位。
定时器每中断6次后循环到第一位LED显示。
这样动态显示占用CPU的时间只有输出段码和输出位码的有限时间,提高了CPU的工作效率。
2.要有主程序程序。
3.本设计使用按键来对DS1302写入时间校时,对时,设定时间的,所以要有DS1302的写时钟程序。
4.系统资源分配:
1)定时器:
定时器T0用做显示定时,按方式1工作,每隔2ms溢出中断一次。
2)片内RAM及标志位的分配:
a)显示缓冲区:
使用(30H—35H)6个RAM作LED的显示缓冲区,每一个缓冲区对应一个LED,在定时时间到时就把6个缓冲区中的数送给相应的LED显示。
b)时间缓冲区:
使用(36H—3BH)6个RAM来保存当前从DS1302中读出来的时间,在主程序运行时大约每一秒钟把其中的数据更新到显示缓冲区用以显示。
c)定时缓冲区:
使用(40H—45H)6个RAM保存设定的定时时间,并在时间缓冲区的内容更新的同时进行比较,若相同则表明定时时间到了,开始调用报时子程序。
3.2主程序模块
主程序与按键控制,读时间并对定时时间进行判断。
主程序初始化后,就开始进行对DS1302的读时间;
读完后送显示缓冲区,同时并对定时时间进行判断比较;
然后开始依次扫描4个按键来判别是否进入相应的按键子程序中;
再对DS1302读时间完成主循环程序。
流程图如下:
图3.1主程序流程图
LCALLKEY-SET
LCALLALM-SET
LCALLALM
MOVADDR-1302,#85H
LCALLREAD-CLOCK
MOVA,DATA-1302
ANLA,#10H
MOV36H,A
ANLA,#0FH
MOV37H,A
MOVADDR-1302,#83H
ANLA,#0F0H
MOV38H,A
MOV39H,A
MOVADDR-1302,#81H
ANLA,#70H
MOV3AH,A
ANLA,#OFH
MOV3BH,A
MOVR4,#6
3.3显示程序模块
显示程序采用动态显示,由位码控制那一个数码管显示,由段码控制数码管显示什么数值,根据中断程序显示时间来查表显示数值,从第一位到第六位逐个点亮,同时每显示一位判断一次六位显示完了吗?
没有显示完进行显示下一位,显示完了从头开始再循环。
显示子程序的流程图如图3.2所示:
图3.2显示子程序流程图
DESPLAY:
MOVR2,#01H;
将位码送R2
MOVR0,#30;
将段码送R0
NEXT3:
MOVA,@R0
MOVDPTR,#TAB2
MOVCA,@A+DPTR
MOVP0,A;
MOVP1,R2;
LCALLDELAY1;
调用延时程序
MOVA,R2
JBACC.3,U2;
显示完转U2
RLA;
未显示完,将未码左移
MOVR2,A;
将位码重送、R2中
INCR0;
指向31H
LJMPNEXT3
U2:
RET;
显示返回
3.4DS1302的写时钟程序模块
DS1302的写时程序:
WRITE-CLOCK:
NOP;
DS1302的写时钟程序,入口:
ADDR-1302作地址
:
DATA-1302作数据
;
功能:
在ADDR地址单元中写入DATA数据
CLRCLK
CLKRST;
NOP
SETBRST
MOVR3,ADDR-1302
LCALLCLOCK-OUT
MOVR3,DATA-1302
CLRRST
SETBCLK
3.5按键程序模块
进入按键程序,判断有键按下吗?
没有,则调用延时重新判断,如果到了,调用延
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 自动 报时 系统