毕业设计论文用单片机内部定时器实现的数字钟智能测控仪器设计.docx
- 文档编号:6452917
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:17
- 大小:226.17KB
毕业设计论文用单片机内部定时器实现的数字钟智能测控仪器设计.docx
《毕业设计论文用单片机内部定时器实现的数字钟智能测控仪器设计.docx》由会员分享,可在线阅读,更多相关《毕业设计论文用单片机内部定时器实现的数字钟智能测控仪器设计.docx(17页珍藏版)》请在冰豆网上搜索。
毕业设计论文用单片机内部定时器实现的数字钟智能测控仪器设计
“智能测控仪器设计”课程
项目设计总结报告
项目名称:
用单片机内部定时器实现的数字钟
指导老师:
学号:
专业年级:
完成时间:
2013年7月
用单片机内部定时器实现的数字钟
摘要:
近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
本文介绍了基于单片机AT89C51的数字钟的设计,详细讨论了它从软件上实现的过程,重点在时钟调整的方式:
查询和中断的比较,然后,对数字钟的稳定性和精确性作了相关的讨论。
在文章的最后,给出了采用中断方式实现的数字钟的源程序。
本次设计通过对一个时钟显示、手动校时等功能的时间系统的设计,其中结合了LCD1602显示、单片机定时中断等技术。
关键词:
单片机的应用,AT89C51,LCD
Abstrct:
Inrecentyearsalongwithcomputerpenetrationinthesocialsphereandthelargescaleintegratedcircuitdevelopment,MCUapplicationsareconstantlydeepening,becauseithasstrongfunction,smallvolume,lowpowerconsumption,lowprice,reliablework,sothattheuseisconvenientwaitforacharacteristic,thusitisespeciallysuitableforandcontrolofrelevantsystem,moreandmorewidelyanditsapplicationinautomaticcontrol,intelligentinstruments,instrumentation,dataacquisition,militaryproductsandhouseholdappliancesandotherfields,themicrocontrollerisoftenusedasacorecomponenttouse,inaccordancewiththespecifichardwarestructure,andthespecificcharacteristicsofthetargetapplicationsoftwarenode,tomakeperfect.Thisarticleintroducedbasedonthesingle-chipdigitalclockdesign,discussedindetailfromthesoftwareimplementationprocess,heavyintheclockadjustmentway:
queriesanddisruptionofcomparison,andthen,onthedigitalclockmadeofthestabilityandaccuracyofclosedthediscussion.Attheendofthearticle,givestheinterruptmodetoachievedigitalclocksource.Thisdesignthroughtoaclockdisplay,manualschoolfunctionswhenthetimesystemdesign,whichcombinestheLCD1602display,dynamicscanning,SCMtimerinterrupttechnology.
Keywords:
TheapplicationofMCU,AT89C51,LCD
1.项目研究意义与研究现状
数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,与机械式时钟相比具有更高的准确性和直观性,装置,具有更长的使用寿命,已得到广泛的使用。
数字钟的设计方法有许多种,例如,可用中小规模集成电路组成电子钟;也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟;还可以利用单片机来实现电子钟等等。
这些方法都各有其特点,其中利用单片机实现的电子钟具有编程灵活,并便于功能的扩展。
数字钟广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
本课题研究的基于51单片机数字钟采用专用实时时钟芯片,走时准确,且具有掉电保持功能,采用新颖简单的图像点阵液晶显示,开机有启动画面,具有良好的人机界面;是很好的时间指示工具。
2.研究的内容与预期目标
2.1研究内容
单片机经过1、2、3、3代的发展,正朝着多功能、高性能、低电压、低功耗、低价格、大存储容量、强I/O功能及较好的结构兼容性方向发展。
其发展趋势不外乎以下几个方面:
1、多功能
单片机中尽可能地把所需要的存储器和I/O口都集成在一块芯片上,使得单片机可以实现更多的功能。
比如A/D、PWM、PCA(可编程计数器阵列)、WDT(监视定时器---看家狗)、高速I/O口及计数器的捕获/比较逻辑等。
有的单片机针对某一个应用领域,集成了相关的控制设备,以减少应用系统的芯片数量。
例如,有的芯片以51内核为核心,集成了USB控制器、SMARTCARD接口、MP3解码器、CAN或者I*I*C总线控制器等,LED、LCD或VFD显示驱动器也开始集成在8位单片机中。
2、高效率和高性能
为了提高执行速度和执行效率,单片机开始使用RISC、流水线和DSP的设计技术,使单片机的性能有了明显的提高,表现为:
单片机的时钟频率得到提高;同样频率的单片机运行效率也有了很大的提升;由于集成度的提高,单片机的寻址能力、片内ROM(FLASH)和RAM的容量都突破了以往的数量和限制。
由于系统资源和系统复杂程度的增加,开始使用高级语言(如C语言)来开发单片机的程序。
使用高级语言可以降低开发难度,缩短开发周期,增强软件的可读性和可移植性,便于改进和扩充功能。
3、低电压和低功耗
单片机的嵌入式应用决定了低电压和低功耗的特性十分重要。
由于CMOS等工艺的大量采用,很多单片机可以在更低的电压下工作(1.2V或0.9V),功耗已经降低到uA级。
这些特性使得单片机系统可以在更小电源的支持下工作更长的时间。
2.2预期目标
该多功能数字钟的设计,总体上大致可分为以下几个部分组成:
1.时钟电路部分;2.复位电路部分;3.LCD显示电路部分;4.按键选择电路部分;5.蜂鸣器电路部分。
系统原理框图如图1所示。
整个电路的工作原理是由晶振芯片提供准确的时钟电路,由键盘调整数字钟的功能,并通过软件编程把时间数字通过LCD显示出来。
3.总体结构设计
1.系统的基本原理及设计思想
本设计采用AT89C51单片机模块、晶振电路模块、复位电路模块、独立键盘模块和显示电路模块。
晶振电路用于产生AT89C51单片机工作时所必需的控制信号。
AT89C51单片机的内部电路正是在时钟信号的控制下,严格地按时序执行指令进行工作。
在执行指令时,CPU首先到程序存储器中取出需要执行的指令操作码,然后译码,并由时序电路产生一系列控制信号完成指令所规定的操作。
复位是单片机的初始化操作,只需给AT89C51的复位引脚RESET加上大于2个机器周期的高电平就可使AT89C51复位。
当AT89C51进行复位时,PC初始化为0000H,使AT89C51单片机从程序存储器的0000H单元开始执行程序。
除了进入系统的正常初始化之外,当程序运行出错(如程序“跑飞”)或操作错误使系统处于“死锁”状态时,也需要按复位键即RESET为高电平,使AT89C51摆脱“跑飞”或“死锁”状态而重新启动程序。
键盘的任务有三项:
(1)首先判别是否有键按下。
若有,进入下一步工作。
(2)识别哪一个键被按下,并求出相应的键值。
(3)根据键值,找到相应键值的处理程序入口。
在本设计中,键盘具有向单片机输入数据、命令等功能,是人与单片机对话的主要手段。
2.计时方案
电脑数字钟的秒信号是利用AT89C51单片机内部定时器TO产生的。
由于振荡器的晶振频率为12MHz,使得TO的最大定时时间远远小于1秒,因此,在设计时采用了硬件计数与软件计数相结合的方式,即通过TO产生0.1S的时基信号,然后再利用软件进行计数,从而产生1秒钟的时间信号。
在设计中,定时器TO采用了中断方式。
当定时时间到时,定时器向CPU申请一次中断,CPU响应中断后转入中断服务程序,在TO的中断服务程序中实现时、分、秒的累加,即每产生一次中断,0.1S时基单元的内容加1,当0.1S时基单元的内容等于10时,便产生1S信号,使秒计数单元的内容加1,并将0.1S时基单元的内容清0;当秒计数单元计满60后,向分计数单元进位,使分计数单元的内容加1,并将秒计数单元的内容清0;当分计数单元计满60后,向时计数单元进位,使时计数单元的内容加1,并将分计数单元的内容清0;时计数单元计满24后清O。
4.硬件设计
4.1单片机的选择
本课程选用AT89C51型号的单片机。
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
主要性能参数:
1、与MCS-51产指令系统完全兼容
2、4k字节可重擦写Flash闪速存储器
3、1000次擦写周期
4、全静态操作:
0Hz-24MHz
5、三级加密程序存储器
6、128×8字节内部RAM
7、32个可编程I/O口线
8、2个16位定时/计数器
4.2定时/计数器
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,高于此频率将计数出错。
4.3显示电路
1602字符型LCD简介
1602LCD主要技术参数:
显示容量:
16×2个字符
芯片工作电压:
4.5—5.5V
工作电流:
2.0mA(5.0V)
模块最佳工作电压:
5.0V
引脚功能说明
表1:
引脚接口说明表
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
数据
3
VL
液晶显示偏压
11
D4
数据
4
RS
数据/命令选择
12
D5
数据
5
R/W
读/写选择
13
D6
数据
6
E
使能信号
14
D7
数据
7
D0
数据
15
BLA
背光源正极
8
D1
数据
16
BLK
背光源负极
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
4.3.1液晶显示器各种图形的显示原理
字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。
下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。
一般1602字符型液晶显示器实物如图5,仿真图6:
1.线段的显示
点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。
例如屏的第一行的亮暗由RAM区的000H——00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。
这就是LCD显示的基本原理。
2.字符的显示
用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。
这样一来就组成某个字符。
但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。
4.3.2时钟电路
时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。
因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。
常用的时钟电路有两种方式:
一种是内部时钟方式,另一种为外部时钟方式。
本文用的是内部时钟方式。
电路图如图7:
MCS-51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反向放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。
这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。
4.3.3按键电路
独立式按键是各按键相互独立,每个按键占用一根I/O端线,每根I/O端线上的按键工作状态不会影响其他I/O端线上按键的工作状态。
如图9所示:
独立式按键电路配置灵活,软件结构简单,但每个按键必须适用于按键数量较少的场合。
本设计中用到4个按键数量较少,所以采用的是独立式按键。
5.软件设计
系统的软件设计也是工具系统功能的设计。
单片机软件的设计主要包括执行软件(完成各种实质性功能)的设计和监控软件的设计。
单片机的软件设计通常要考虑以下几个方面的问题:
(1)根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计出合理的总体结构,使软件开发清晰、简洁和流程合理;
(2)培养良好的编程风格,如考虑结构化程序设计、实行模块化、子程序化。
既便于调试、链接,又便于移植和修改;
(3)建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数;
(4)绘制程序流程图;
(5)合理分配系统资源;
(6)为程序加入注释,提高可读性,实施软件工程;
(7)注意软件的抗干扰设计,提高系统的可靠性。
5.1主控模块设计
开始工作时,先把一切都初始化,然后单片机里的定时器开始工作,主程序开始运行,同时对按键进行检测,检测完就可以开始计时。
以下是本实验程序:
#include
#include
#include
sbitRS=P2^0;
sbitRW=P2^1;
sbitE=P2^2;
sbitBF=P0^7;
sbitK1=P3^0;
sbitK2=P3^2;
sbitK3=P3^4;
sbitK4=P3^6;
unsignedchart;
unsignedchars,m,h;
unsignedcharcodestring[]={"BeijingTime"};
unsignedcharcodedigit[]={"0123456789"};
voiddelay(unsignedchari)
{
unsignedcharj;
while(i--)
for(j=0;j<115;j++)
;
}
unsignedcharBusyTest()
{
bitresult;
RS=0;
RW=1;
E=1;
_nop_();
_nop_();
_nop_();
_nop_();
result=BF;
E=0;
returnresult;
}
voidWrite_com(unsignedchardicate)
{
while(BusyTest()==1);
RS=0;
RW=0;
E=0;
_nop_();
_nop_();
P0=dicate;
_nop_();
_nop_();
_nop_();
_nop_();
E=1;
_nop_();
_nop_();
_nop_();
_nop_();
E=0;
}
voidWriteAddress(unsignedcharx)
{
Write_com(x|0x80);
}
voidWriteData(unsignedchary)
{
while(BusyTest()==1);
RS=1;
RW=0;
E=0;
_nop_();
_nop_();
P0=y;
_nop_();
_nop_();
_nop_();
_nop_();
E=1;
_nop_();
_nop_();
_nop_();
_nop_();
E=0;
}
voidLcdint()
{
delay(15);
Write_com(0x38);
delay(5);
Write_com(0x38);
delay(5);
Write_com(0x38);
delay(5);
Write_com(0x0c);
delay(5);
Write_com(0x06);
delay(5);
Write_com(0x01);
delay(5);
}
voidDisplayhour()
{
unsignedchari,j;
i=h/10;
j=h%10;
WriteAddress(0x44);
WriteData(digit[i]);
WriteData(digit[j]);
}
voidDisplayminute()
{
unsignedchari,j;
i=m/10;
j=m%10;
WriteAddress(0x47);
WriteData(digit[i]);
WriteData(digit[j]);
}
voidDisplaysecond()
{
unsignedchari,j;
i=s/10;
j=s%10;
WriteAddress(0x4a);
WriteData(digit[i]);
WriteData(digit[j]);
}
voidmain()
{
unsignedchari;
Lcdint();
TMOD=0x01;
EA=1;
ET0=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
t=0;
s=0;
m=0;
h=0;
WriteAddress(0x02);
i=0;
while(string[i]!
='\0')
{
WriteData(string[i]);
i++;
}
WriteAddress(0x46);
WriteData(':
');
WriteAddress(0x49);
WriteData(':
');
while
(1)
{
Displayhour();
delay(5);
Displayminute();
delay(5);
Displaysecond();
delay(5);
if(K1==0)
{
delay(15);
if(K1==0)
{
h++;
if(h==24)
{
h=0;
}
}
while(K1==0);
delay(15);
}
if(K2==0)
{
delay(15);
if(K2==0)
{
m++;
if(m==60)
{
m=0;
}
}
while(K2==0);
delay(15);
}
if(K3==0)
{
delay(15);
if(K3==0)
{
m--;
if(m==0)
{
m=59;
}
}
while(K3==0);
delay(15);
}
if(K4==0)
{
delay(15);
if(K4==0)
{
h--;
if(h==0)
{
h=23;
}
}
while(K4=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 单片机 内部 定时器 实现 数字 智能 测控 仪器 设计