毕业论文12864多功能数字钟.docx
《毕业论文12864多功能数字钟.docx》由会员分享,可在线阅读,更多相关《毕业论文12864多功能数字钟.docx(19页珍藏版)》请在冰豆网上搜索。
毕业论文12864多功能数字钟
毕业论文12864多功能数字钟
题目:
多功能数字钟
摘要
此多功能数字钟系统以89C55单片机作为控制核心,其外围电路包括时钟闹钟模块、温度测量模块、交流电电压测量及过欠压报警模块、交流电频率测量模块。
其中使用串行时钟芯片PCF8563,实现时间的显示设置和闹钟功能。
通过温度传感器AD590、AC-DC转换芯片AD536及模数转换芯片ICL7135实现温度和交流电压的测量。
利用波形转换电路和单片机内部定时器测量交流电的频率。
利用光电开关实现非接触关闭闹钟功能。
本系统很好的完成了题目要求的基本及发挥要求,并进行了进一步的扩展。
关键词:
89C55单片机AD536ICL7135
1、引言……………………………………………………………………3
2、方案论证与比较……………………………………………………………………3
3、系统原理框图……………………………………………………………………3
4、主要电路设计与计算…………………………………………………………4
4.1基本功能部分……………………………………………………………………4
4.2温度测量部分……………………………………………………………………8
4.3交流电特性测量部分…………………………………………………………11
5、系统软件工作流程图……………………………………………………………………14
5.1软件说明……………………………………………………………………14
5.2系统软件流程图……………………………………………………………………14
6、系统性能测试与分析……………………………………………………………………15
6.1测试仪器…………………………………………………………………………15
6.2测试方法与数据……………………………………………………………………15
6.3时钟及闹钟功能测试……………………………………………………………………15
6.4温度测试……………………………………………………………………15
6.5交流电电压测试及过欠压报警…………………………………………………15
6.6交流电频率测试……………………………………………………………………16
7、误差分析………………………………………………………………………………17
结论…………………………………………………………………………………………18
致谢………………………………………………………………………………19
参考文献…………………………………………………………………………………20
1、引言
本题目的是设计一个数字时钟,要求具有24小时时间、闹钟设置并具有闹铃功能。
同时要求有对环境温度及供电电源特性进行测量的扩展功能。
我们提出了以下几种方案:
2、方案论证与比较
1)方案一
这是一种纯硬件电路系统。
各功能采用分离的硬件电路模块实现。
用时序逻辑电路实现时钟功能,用555定时器实现闹钟的设定,以及用热敏电阻作为温度传感器等。
但这种实现方法可靠性差、控制精度低,灵活性小、线路复杂、安装调试不方便,而且不方便实现对系统的扩展。
2)方案二
这种方法用可编程逻辑器件(PLD)实现。
这种方案与前一种相比,可靠性增加,同时可以很好的完成时钟的功能。
但是对于温度和电压的测量,不具备对数据的处理功能,无法很好的完成扩展功能的要求。
同时这种方案只能选用数码管显示,显示的效果不够理想。
同时,系统的灵活性不够。
3)方案三
这种方案采用89C55单片机作为系统的控制核心。
时钟功能采用单片集成的时钟芯片实现,可以使用液晶显示(LCD)测量数据及提示信息,有着智能化的人机界面。
同时,采用模数转换器实现对温度、电压等测量数据的转换,可将其读入单片机进行处理。
由于使用了单片机,整个系统可编程,系统的灵活性大大增加了。
另外,本方案可以方便的实现其他功能的扩展。
经过以上的比较论证,我们选用方案三来完成题目的要求。
3、系统原理框图
根据题目设计要求,要实现时间和闹钟的显示及设定、温度测量、市电电压频率测量报警、非接触止闹等功能。
针对此要求,本系统由以下几个模块构成,如图1所示:
图1
4、主要电路设计与计算
4.1基本功能部分
(1)89C51单片机基本系统
核心部分为89C51单片机与地址锁存器74LS373、总线驱动器74LS245构成单片机的基本系统,电路如图2所示:
图2
这里通过三态8D锁存器74LS373锁存单片机的低八位地址。
同时为了方便驱动其它电路,通过总线驱动器74LS245增加单片机的驱动能力。
将数据及地址等信号通过40线的总线引出,便于对此单片机系统作进一步的扩展。
(2)I2C串行时钟PCF8583
本数字钟系统的重要部分在于时钟和闹钟功能模块,这里选用串行日历时钟芯片PCF8563。
与采用并行总线与单片机进行数据通信的时钟芯片相比,PCF8563与单片机的连线大为减少,极大的节省了单片机的系统资源。
PCF8563具有内部时钟电路、内部震荡电路、内部低电压检测及两线制I2C总线通信方式,不但使用外围电路简洁,而且增加了芯片的可靠性。
时钟芯片与单片机的接口电路如图3所示:
图3
PCF8563的管脚排列及描述如图4所示。
图4
PCF8563采用了I2C总线接口,虽然总线时序关系复杂,但我们可以利用PHILIPS公司提供的软件包,使得编程极为简单,可靠性极强。
在设计中我们主要用到了PCF8563的计时功能和报警功能。
PCF8563内部共有16个寄存器。
其中00H,01H为控制方式寄存器,02H—08H为时间寄存器,09H—0CH为报警功能寄存器,0DH为时钟输出寄存器,0EH和0FH为定时器功能寄存器。
其中报警和时间寄存器的位描述如图5所示:
图5
可以看出芯片内部时间寄存器和报警寄存器在地址上是连在一起的,并且数据全部是以BCD码形式存放的,这样使得数据读写和处理变得相当简洁和便利。
在本设计中,PCF8563通过SCL、SDA、/INT与单片机相连,其中SCL为时钟输入端,数据随时钟信号同步输入器件或从器件输出;SDA为双向引脚,用于行数据的输入输出;/INT是中断信号输出端,可通过设置报警寄存器按指定时间在该脚产生报警信号,低电平有效;SDA、SCL、/INT均为漏极开路,必须接上拉电阻。
PCF8563共有四种报警方式,分别为小时报警(每小时的同一分钟时刻报警),日报警(每天的同一小时时刻报警),月报警(每月的同一天时刻报警)和星期报警(每星期的同一天时刻报警)。
发生报警时在/INT引脚产生一个中断,低电平有效,同时在PCF8563的内部产生中断标志AF。
软件清AF后就清除了/INT上的中断信号。
我们在设计中联合应用了PCF8563的小时报警、日报警和月报警的功能。
即可以设定每个月某日的某时某分为闹铃时刻。
报警时,/INT的低电平使单片机产生中断,在中断服务程序中,单片机控制蜂鸣器发出闹铃声。
(3)液晶显示器(LCD)
这里采用点阵式液晶显示器SMG12864代替数码管显示时间,不仅可以有更好的显示效果,同时还可以显示提示信息,将此多功能数字钟做成智能化人机界面。
另外,扩展功能也要求我们采用液晶显示。
接口电路如图6所示:
图6
SMG12864是一种128*64点阵的液晶显示器。
其控制器内部有两个64*64位(512字节)的RAM缓冲区,用户可以通过控制器内部设定的数据地址页指针和列指针来访问全部RAM字节。
这里将SMG12864的数据口和数据总线相连,片选信号、读写控制信号、使能信号、复位信号等控制线与P1口的部分口线相连,通过单片机的控制可以方便的实现对液晶的写入。
(4)键盘接口电路
在设计键盘接口电路时,我们使用HD7279键盘控制器来扫描8*2的16键键盘,单片机通过查询方式从HD7279读出键码,接口电路如图7所示:
图7
HD7279可以同时对多达8*8的键盘进行监视,并具有自动消抖和识别键码的功能;同时HD7279和单片机采用串行接口,占用口线较少,因此可以提高单片机的效率和节省系统资源。
这里用两条列线端口和八条行线端口,实现对16键键盘的自动监视和键码的识别。
单片机对HD7279的按键信号端进行查询,并以串行方式读入键码。
(5)非接触止闹电路
这里采用光电开关ES50。
此开关的特性是:
开关前一定范围内无障碍物时,
输出高电平;当有障碍物挡在开关前时,输出低电平。
对光电开关的输出信号经过信号调理电路,再接入单片机口线P3.5进行检测。
当单片机检测到该信号的下降沿时,就关闭闹铃。
4.2温度测量部分
(1)测温电路设计
对于温度传感器,我们选择了单片集成的温度传感器AD590。
常见的感温元件有热电偶、热电阻和半导体等传感器。
热电偶的价格便宜,但精度低,需要进行冷端补偿,电路的设计比较复杂;热电阻精度较高,但需要标准稳定电阻是陪才能使用;而半导体温度传感器线路设计简单,精度较高,线性度好,价格适中。
AD590为单片集成两端感温电流源,所产生的电流经过电阻网络和多级运算放大器,输出范围在0~0.6V的电压(温度范围为0℃~60℃)。
电路图如图8所示:
图8
AD590的特性为:
流过器件的电流(
)等于期间所处环境的热力学温度(开尔文)度数,即:
μA/K
式中:
—流过器件(AD590)的电流,单位为μA;
T—热力学温度,单位为K。
同时,AD590输出呈现高阻抗,其本身保证在0℃(即热力学温度273.2K)时,输出电流为273.2
。
所以当R1和R2的阻值之和为1K时,在AD590的2脚,可以得到273.2mV的电压,且输出电压随温度的变化为1mV/K。
在AD590之后连接由运算放大器OP07构成的跟随器,以提高输出负载能力。
要想得到输出电压在0℃~60℃时输出为0~0.6V,必须对信号进行降压和放大。
考虑到精度的要求,我们先对跟随器的输出信号经过一级反向放大,再经过一级反向求和降压,最后得到0~0.6V的电压,且在整个温度范围内保持良好的线性。
计算过程如下:
0℃~60℃时
调节电位器R7为10K
调节电位器R8,使
为2.732V
调节电位器
为10K
则:
故:
范围为0~0.6V,在ICL7135的量程范围内
但由于AD590的增益有偏差,同时电阻也有误差,因此必须对电路进行调整。
调整方法为:
1.为了获取准确的温度值,分别在0℃(冰水混合物)、100℃(沸水)和36.5℃
2.将AD590放入沸水中,调节电位器R11,使得U4输出为1V。
3.同理进行36.5℃使得定标。
(2)高精度AD芯片ICL7135设计
对于模数转换芯片,我们选择高精度AD芯片ICL7135。
此方案利用ICL7135的“BUSY”端,可以在只占用单片机的一个I/O口和一个内部定时器的情况下,得到准确的转换数据。
接口电路如图9所示:
图9
ICL7135具有正负20000个数的分辨率,而且有BCD码和STB信号输出。
通常利用这两个信号读入数据需要占用单片机5个I/O口。
出于对单片机资源的考虑,我们巧妙的利用了“BUSY”信号和芯片的输入时钟信号,就可以实现同样的功能,极大的节省了宝贵的系统资源。
ICL7135是以双积分形式进行AD转换的电路。
它的每个转换周期除了自动调零外,包括积分阶段和反积分阶段。
如图10所示:
图10
ICL7135内部规定积分时间固定为10001个时钟脉冲时间,反积分时间长度与被测电压的大小成比例,且最多为20000个时钟脉冲时间。
ICL7135“BUSY”端的高电平的宽度等于积分和反积分时间之和。
所以这里利用单片机内部的定时器对ICL7135的时钟脉冲计数,利用“BUSY”信号作为计数器的门控信号,控制计数器只在“BUSY”为高电平时计数。
由于芯片的满量程输入电压为2V,所以用“BUSY”高电平期间计数器的内容减去10001,其余数值便等于被测电压的数值,且为小数点后四位的高精度数据。
同时,本系统有温度和电压两种数据需要测量。
为了节省资源及减小硬件电路的复杂性,这里采用继电器在两路信号之间进行切换。
继电器的控制信号
CONTROL有单片机提供。
4.3交流电特性测量部分
(1)交流电电压测量
对于交流电的电压测量,我们采用单片集成的有效值变换器AD536,将经过变压器降压的交流电信号转换为精确的直流信号,送ICL7135进行模数转换后读入单片机并进行显示。
电路如图11所示:
图11
传统的有效值变换器大多为近似有效值计算,对于复杂信号和大动态范围的信号存在着转换精度不高的缺点。
AD536根据数学表达式
计算的是真有效值,得到了精度的保证。
将220V交流电经过变压器得到7.5V的交流电压Vin,经AD536后输出的7.5V的直流电压,在经过电阻网络分压后,再通过调节R17改变运放的增益,使得运放TL084输出为1V,同时增加了直流信号的驱动能力。
输出的信号Vout送入ICL7135进行转换,同时也作为过欠压报警模块的输入信号。
(2)交流电频率测量
对于交流电频率的测量,我们将经过降压的交流信号,通过比较器LM311实现波形转换。
将产生的方波信号与单片机口线相连,可以得到交流电的频率。
电路如图12所示:
图12
频率测量的原则是:
低频信号测周期,高频信号测频率。
因此我们的方案是:
将低压交流电信号Vin经过比较器LM311与0电平进行比较,可以得到峰值为11~12V的方波信号。
经过降压并通过运算放大器以提高驱动能力,信号被接至单片机的口线P3.0,作为内部定时器T0的门控信号。
通过T0的计数测得方波的周期,经过处理后即可得到交流电的频率。
(3)交流电过欠压报警
对于交流电压超出波动范围报警部分,这里采用了电压比较器LM311。
将前一级芯片AD536输出的直流信号,经过运放的处理后,与基准电压源LM336-5产生的电压+5V进行比较。
如果超出波动范围限制(±10%),将驱动发光管闪亮和蜂鸣器报警。
电路如图13所示:
图13
我们采用纯硬件电路实现过欠压报警的功能,不经过单片机的检测。
这种实现方法实时性很好,同时不占用单片机的系统资源。
利用高精度电压比较器,可以实现精确的报警功能。
在交流电压为220V时,AD536输出的电压经线性变换为1V。
按照±10%的波动范围,可见直流电压Vin的正常波动范围为0.9V~1.1V。
调整上一路的运放电位器R5,使得电压超出1.1V时,第一级运放输出高于5V的电压。
经电压比较器LM311与基准5V电压进行比较,驱动上一路发光二极管点亮,并驱动蜂鸣器报警。
同理调节下一路,使得输入电压低于0.9V时,驱动下一路报警。
5、系统软件工作流程图
5.1软件说明
软件系统在本设计中尤其重要,基本功能大部分是由软件完成的,发挥功能的关键控制部分同样需要软件的密切配合才能顺利实现。
鉴于软件设计的复杂性和规模性,我们采用KEIL编译器支持的C语言编程,放弃了效率高但可读性不强的汇编语言。
整个软件系统采用自顶向下模块化的程序设计方法,共分为上级的主程序模块和下级的时间设定、闹铃设定、温度测量和电压幅度和频率测量五个部分。
软件系统的主要特点是整个过程完全在键盘的控制之下,实现了完全的友好的人机交互功能。
主程序通过查询键盘的输入情况调用不同的子程序。
子程序的功能实现也是在键盘的配合之下完成的。
整个设计过程采用的主要算法有十六进制数转换为十进制数算法、浮点数转换为十进制数算法。
完成的主要功能有:
时间、日期设定与显示,闹铃设定与闹铃开关,室内温度实时监测与现实,交流电网幅度、频率实时监测与显示。
5.2系统软件流程图
6、系统性能测试与分析
6.1测试仪器
方正PC机伟福G6W型仿真器60MHz双踪示波器
型函数信号发生器直流稳压电源
数字万用表温度计调压变压器
6.2测试方法与数据
6.3时钟及闹钟功能测试
通过仿真器加载程序,可以在液晶屏上看到开机画面,之后为日期时间显示。
可以在液晶显示的提示信息下利用键盘对日期和时间进行修改,同时可以对闹钟时间进行设定,设定后按下“闹铃开”开关,液晶屏上显示出闹铃图标,表示设置完成。
如果按下“闹铃关”按键,闹铃图表消失。
待闹铃时间到后,蜂鸣器播放音乐。
这是如果用手接近光电开关,则蜂鸣器停止播放。
反复试验以上功能,均成功完成。
6.4温度测试
将系统功能切换至温度测量,由于温度传感器AD590的转换速度稍慢,同时缺乏恒温设备,我们测量了以下四组数据,如下表1所示:
表1温度测试数据
环境
系统测量值/℃
温度计显示值/℃
测量误差/℃
冰水混合物
0.5℃
0.2℃
0.3℃
沸水
99.8℃
100.0℃
0.2℃
室温
27.6℃
27.7℃
0.1℃
体温
36.3℃
36.5℃
0.2℃
可见,系统温度测量的误差低于0.5℃,精度比题目的要求更高。
同时,扩大了测量温度的范围。
6.5交流电电压测试及过欠压报警
将系统功能切换至电压测量,通过TDGC型调压变压器调节输入交流电的电压。
不断改变电压的数值,将显示的数据和交流电压表的的刻度值进行比较,同时观测过欠压报警部分,得到数据如下表2:
表2交流电电压测试数据
系统测量值
万用表测量值/V
测量误差/V
过压报警?
欠压报警?
189.9
190.0
0.1
否
是
195.3
195.0
0.3
否
是
199.7
200.0
0.3
否
否
205.4
205.0
0.4
否
否
210.0
210.0
0
否
否
214.9
215.0
0.1
否
否
220.0
220.0
0
否
否
224.9
225.0
0.1
否
否
229.7
230.0
0.3
否
否
234.6
235.0
0.4
否
否
239.7
240.0
0.3
否
否
244.6
245.0
0.4
是
否
250.1
250.0
0.1
是
否
可见,系统电压测量的误差低于0.5V,能满足精度方面的要求。
同时,过欠压的报警也正常。
在198V以下,欠压报警;在242V以上,过压报警。
6.6交流电频率测试
将系统功能切换至频率测量。
由于工频交流电的频率变化很小,我们通过EE1642B型函数信号发生器产生正弦信号,加至AD536的输入端,模拟交流电频率的变化。
调节信号频率的频率,将系统显示的数值和信号发生器的数值进行比较,得到数据如下表3:
表3交流电频率测试数据
系统测量值/Hz
频率计显示值/Hz
测量误差/Hz
40.25
40.27
0.02
43.96
43.98
0.02
46.98
46.95
0.03
49.26
49.31
0.05
50.34
50.35
0.02
53.44
53.46
0.02
57.28
57.22
0.06
58.32
58.37
0.05
60.53
60.57
0.04
频率测量的误差控制在0.1Hz以内。
之后测量交流电的频率,测得数值为50.09Hz,可见系统很好的完成了频率测量的功能。
7、误差分析
(1)通过以上的测试,本系统很好的完成了题目要求的基本及发挥功能,测量数据能满足题目的精度要求,并进行了进一步的功能扩展。
(2)由于时间及自身知识水平的不足,本设计出现了一定的误差,可以进行进一步的改进:
由于部分电路为手工焊接制版,抗环境干扰的能力不强。
如果时间充足,可以用Protel画出PCB版图,进行机器制版。
可以选用精度更高的硬件芯片,并对硬件布局进行合理的调整。
可以在编程中对测量数据进行进一步的软件处理,提高转换的精度。
结论
通过这次设计,我们在硬件设计、软件编程方面得到了极大的提高。
同时我们小组的两个成员团结一心,通力合作,体现了很好的团队合作精神。
为以后走向工作岗位从事科研或管理工作积累了不可多得的经验。
在设计中碰到了一个接一个的难题,我们经过不屈不挠的刻苦攻关,一一得到了化解,这种体验为我们走好今后的人生路增添了极大的信心。
致谢
本设计所使用的框架结构,得益于指导老师所提出的许多宝贵的意见和建议。
指导老师严谨的治学态度,广阔的知识视野,深邃的洞察能力以及以身作则的精神,对我们产生了巨大的影响。
我们由衷地感谢指导老师的精心指导和同学的帮助。
参考文献
1.《微型计算机控制技术》于海生编清华大学出版社1999.6
2.《MCS-51系列单片机原理及应用》孙涵芳等编北京航空航天大学出版社1996.4
3.《综合电子设计与实践》黄正谨等编东南大学出版社2002.3
4.《电子设计竞赛赛题解析》黄正谨等编东南大学出版社2003.5
5.《单片机课程设计实例指导》李光飞等编北京航空航天大学出版社2004.9.