基于单片机的电子钟设计方案毕业论文。。.doc
基于单片机的电子时钟设计
摘要
20 世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。对于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所以以数码管为显示器的时钟比指针式的时钟表现出了很大的优势。数码管显示的时间简单明了而且读数快、时间准确显示到秒。而机械式的依赖于晶体震荡器,可能会导致误差。
数字钟是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。数字钟的精度、稳定度远远超过老式机械钟。在这次设计中,我们采用LED数码管显示时、分、秒,以24 小时计时方式,根据数码管动态显示原理来进行显示,用 12MHz的晶振产生振荡脉冲,定时
器计数。在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调整。数字
钟是其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱,因此得到了广泛的使用。
关键字:数字电子钟单片机
数字电子钟的背景
20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各
个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产
品性能进一步提高,产品更新换代的节奏也越来越快。时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。
目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着 CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发
展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方
法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法
来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的
装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿
命,因此得到了广泛的使用。
数字电子钟的意义
数字钟是采用数字电路实现对 . 时, 分, 秒. 数字显示的计时装置 , 广泛用于个人家庭 , 车站 , 码头办公室等公共场所 , 成为人们日常生活中不可少的必需品 , 由于数字集成电路的发展和石
英晶体振荡器的广泛应用, 使得数字钟的精度 , 远远超过老式钟表 ,钟表的数字化给人们生产
生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时
自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、
甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字
钟及扩大其应用,有着非常现实的意义。
数字电子钟的应用
数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、
剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集
成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便
等优点,它还用于计时、自动报时及自动控制等各个领域。
电路及功能说明:
电路图如图所示:
图A
图B
v1.0可编辑可修改
图 C
该数字钟是用一片AT89C51A单片机通过编程去驱动8 个数码管实现的。通过 6 个开关控制 , 从上到下
6 个开关 KEY1~KEY6的功能分别为: KEY1,切换至秒表; KEY2,调节时间 , 每调一次时加1; KEY3, 调节
时间 , 每调一次分加1; KEY4,从其它状态切换至时钟状态;KEY5,切换至闹钟设置状态, 也可以对秒表清零; KEY6,秒表暂停 . 控制键分别与 ~口连接.其中:
A. 通过 P2 口和 P3 口去控制数码管的显示如图所示P2 口接数码管的a—— g 端,是控制输出编码,P3
口接数码管的1—— 8 端 , 是控制动态扫描输出.
B.从输出一个信号使二极管发光,二极管在设置的闹钟时间到了时候发光,若有乐曲可以去驱动扬
声器实现。
(图 A 是时钟运行状态,图 B 是闹钟运行状态,图C是秒表运行状态)
功能说明:
1.各个控制键的功能:可对时间进行校准调节(只能加1);按下设置键数字时钟进入闹钟设置状态,设置闹钟的时间;时加1、分加1键是在校准时间时或设置闹钟时间对小时数或分钟数调
节而设置的;按下秒切换键就可以进入秒表模式,同时秒表也开始计时,按下秒表暂停、复位
键就暂停、归零,如果要重新对秒计时则可以按秒表开始、复位;清零键可以对闹钟清零。
2. AT89C51 单片机,通过编写程序对数码显示进行控制。
3.八个 7 段数码管显示时钟和秒表信号。
二,实验程序流程图:
1.主程序流程图:
v1.0可编辑可修改开始
定时器及中断寄存器初使化
是否设定参数Y 执行时钟 ,秒表 ,闹钟设定程序
N
执行显示程序2.中断程序流程图
v1.0可编辑可修改
恢复初值保护
tcount 加 1
N
tcount=100?
Y
秒数值 time1.second 加
1,tcount 归零
N
判断时间与闹钟
时间是否相同time1.second=60?
Y Y
执行闹钟程序分数值 time1.minute 加
P0.0=11,time1.second 归零 ,
N
N N
闹钟程序是否
time1.minute=60?
执行完
Y Y
返回主程序
时数值 time1.hour 加
1,time1.minute 归零
N time1.hour>23?
Y
时数值 time1.hour 归零
v1.0可编辑可修改2.秒表中断程序流程图:
恢复初值保护
10ms计数器加 1
N
ms>100?
Y
秒计数器加1,10ms 计数器归零 ,
即sec++,ms=0
N
sec>60?
Y
分计数器加 1,秒计数器归
零,即 minit++,sec=0.
输出字码 ,中断结
束 ,返回上级主程序
3.按键程序流程图:
第一图为时钟和闹钟的调节 .
v1.0
可编辑可修改
程序初使化
N
判断时加键 判断标志 flag 是 输出时钟时个位加
thour 是否按下 ,
dat1[6]>9?
Y
Y
P1.2=0?
否为 0,flag=0?
1,dat1[6]++, 延时 .
N
N
N
Y
判断分加键盘 输出闹钟时个位加
输出时钟时十位加 tminute 是否按
1,alarms[6]++, 延时 alarms[6]>9?
下 ,P1.1=0?
1,dat1[7]++, 延时
Y
Y
N
判断标志 flag 是
否为 0,flag=0?
输出闹钟时十位加
1,alarms[7]++, dat1[7]>2?
延时
输出闹钟分个位加
1,alarms[3]++, N
Y
延时
N
Y
N
输出时钟分个位加
1,dat1[3]++, 延时 .
alarms[7]>2?
时十位归 alarms[3]>9?
零 ,dat1[7]=0
N Y
Y
dat1[3]>9?
时十位归
零 ,alarms[7]=0.
输出闹钟分十位加
1,alarms[4]++, 延时
Y
N
输出时钟分十位加 dat1[4]>2?
Y
分十位归 alarms[4]>2?
延时
零 ,dat1[4]=0
1,dat1[4]++,
Y
N
分十位归 零,alarms[4]=0.
第二图为进入中断和清零
v1.0可编辑可修改
判断分加键tminute 是
否按下 ,P1.1=0?
N
判断秒表 miaobiao1 是否按进入秒表中断,执行
Y返加上级主程序
下,P1.0=0?秒表中断程序
N
判断清零键miaobiao2 是否按
N
下,P1.3=0?
Y
清零所有的计数器,
各个显示的字码
第三章数字钟的硬件设计
最小系统设计
v1.0可编辑可修改
图 3-1 单片机最小系统的结构图
单片机的最小系统是由电源、复位、晶振、/EA=1 组成,下面介绍一下每一个组成部分。
1.电源引脚
Vcc 40电源端
GND 20接地端
工作电压为 5V,另有 AT89LV51工作电压则是 ,引脚功能一样。
2.外接晶体引脚
v1.0可编辑可修改
图 3-2 晶振连接的内部、外部方式图
XTAL1 19
XTAL2 18
XTAL1 是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外
部振荡信号应直接加到XTAL1,而 XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,
如晶振为 12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF 左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和 XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接
晶体谐振器以及电容C1 和 C2 构成并联谐振电路,接在放大器的反馈回路中。对外接电容的
值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的
快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22μF。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与
单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。
3.复位RST 9
在振荡器运行时,有两个机器周期(24 个振荡周期)以上的高电平出现在此引腿时,将
使单片机复位,只要这个脚保持高电平,51 芯片便循环复位。复位后P0-P3 口均置 1 引脚
表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为 ROM的 00H处开始运行程序。复位是由外部的复位电路来实现的。片内复位电路
是复位引脚 RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的
输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮
复位两种方式,此电路系统采用的是上电与按钮复位电路。当时钟频率选用6MHz时,C取 22 μF,Rs 约为 200Ω, Rk 约为 1K。复位操作不会对内部RAM有所影响。
常用的复位电路如下图所示:
v1.0可编辑可修改
图 3-3常用复位电路图
4.输入输出引脚
(1)P0 端口 [ P0 是一个 8 位漏极开路型双向 I/O 端口,端口置 1(对端口写 1)时作高
阻抗输入端。作为输出口时能驱动8 个 TTL。
对内部 Flash 程序存储器编程时,接收指令字节 ; 校验程序时输出指令字节,要求外接上拉电阻。
在访问外部程序和外部数据存储器时,P0 口是分时转换的地址 ( 低 8 位)/ 数据总线,访问期间内部的上拉电阻起作用。
(2) P1 端口 [ -] P1 是一个带有内部上拉电阻的 8 位双向 I/0 端口。输出时可驱动 4 个TTL。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。
对内部 Flash 程序存储器编程时,接收低 8 位地址信息。
(3) P2 端口 [ -] P2 是一个带有内部上拉电阻的 8 位双向 I/0 端口。输出时可驱动 4 个TTL。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash 程序存储器编程时,接收高 8 位地址和控制信息。
在访问外部程序和16 位外部数据存储器时, P2 口送出高 8 位地址。而在访问8 位地址的外部数据存储器时其引脚上的内容在此期间不会改变。
(4) P3端口[-] P2是一个带有内部上拉电阻的8 位双向 I/0端口。输出时可驱动 4 个TTL。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。
v1.0可编辑可修改对内部 Flash 程序存储器编程时,接控制信息。除此之外P3 端口还用于一些专门功能,
具体请看下表。
P3 引脚兼用功能
串行通讯输入( RXD)
串行通讯输出( TXD)
外部中断 0( INT0 )
外部中断 1(INT1)
定时器 0 输入 (T0)
定时器 1 输入 (T1)
外部数据存储器写选通WR
外部数据存储器写选通RD
表 3-1P3 端口引脚兼用功能表
LED 显示电路
显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工艺,
单片机应用系统中常用的显示器有:发光二极管 LED显示器、液晶 LCD显示器、 CRT显示器等。 LED显示器是现在最常用的显示器之一,如下图所示。
图 3-4 LED 显示器的符号图
发光二极管( LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可
以组装成分段式或点阵式LED显示器件(半导体显示器)。分段式显示器(LED数码管)由 7 条线段围成 8 字型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的
光。只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。LED 数码管有共阳、共
阴之分。图是共阳式、共阴式LED数码管的原理图和符号 .
v1.0可编辑可修改
图 3-5共阳式、共阴式LED数码管的原理图和数码管的符号图
显示电路显示模块需要实时显示当前的时间, 即时、分、秒,因此需要 6 个数码管,另需两个数码管来显示横。采用动态显示方式显示时间,硬件连接如下图所示,时的十位和个位
分别显示在第一个和第二个数码管,分的十位和个位分别显示在第四个和第五个数码管,秒
的十位和个位分别显示在第七个和第八个数码管,其余数码管显示横线。LED 显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。对于多位LED显示器,通常都是采用动态扫描的方法进行显示,其硬件连接方式如下图所示。
图 3-6 数码管的硬件连接示意图
v1.0可编辑可修改数码管使用条件:
a、段及小数点上加限流电阻
b、使用电压:段:根据发光颜色决定;小数点:根据发光颜色决定
c、使用电流:静态:总电流80mA(每段 10mA);动态:平均电流4-5mA 峰值电流 100mA
数码管使用注意事项说明:
(1)数码管表面不要用手触摸,不要用手去弄引角;
(2)焊接温度:260度;焊接时间:5S
(3)表面有保护膜的产品, 可以在使用前撕下来。
v1.0可编辑可修改
第四章数字钟的软件设计
系统的软件设计也是工具系统功能的设计。单片机软件的设计主要包括执行软件(完成
各种实质性功能)的设计和监控软件的设计。单片机的软件设计通常要考虑以下几个方面的
问题:
(1)根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计出合理的总
体结构,使软件开发清晰、简洁和流程合理;
(2)培养良好的编程风格,如考虑结构化程序设计、实行模块化、子程序化。既便于
调试、链接,又便于移植和修改;
(3)建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数;
(4)绘制程序流程图;
(5)合理分配系统资源;
(6)为程序加入注释,提高可读性,实施软件工程;
(7)注意软件的抗干扰设计,提高系统的可靠性。
系统软件设计流程图
这次的数字电子钟设计用到很多子程序,它们的流程图如下所示。
主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以
显示时间。
开始
启动定时器
按键检测
时间显示
v1.0可编辑可修改
图 4-1主程序流程图
按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加1;如果没有按下,就检测分按键是否按下,分按键如果按下,分就加1;如果没有按下,就检测时按键是否按下,
时按键如果按下,时就加1;如果没有按下,就把时间显示出来。
开始
N
秒按键按下
Y
秒加 1
N
分按键按下
Y
分加 1
N
时按键按下
Y
时加 1
显示时间
结束
图 4-2按键处理流程图
v1.0可编辑可修改定时器中断时是先检测 1 秒是否到, 1 秒如果到,秒单元就加 1;如果没到,就检测 1 分钟是否到,1 分钟如果到,分单元就加1;如果没到,就检测1 小时是否到,1 小时如果到,时单元就加 1,如果没到,就显示时间。
开始
N
一秒时间到
Y
秒单元加 1
N
60秒时间到
Y
秒单元清零,分单元加 1
N
60分钟到
Y
分单元清零,时单元加 1
N
24小时到
v1.0可编辑可修改
图 4-3 定时器中断流程图
时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后
是分十位显示,再就是时个位计算显示,最后是时十位显示。
开始
秒个位计算显
示
秒十位计算显
示
分个位计算显
示
分十位计算显
示