首 页 用户登录 | ![]() |
|||
|
|||
按字母检索 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
按声母检索 | A | B | C | D | E | F | G | H | J | K | L | M | N | O | P | Q | R | S | T | W | X | Y | Z | 数字 | 符号 |
|
![]() |
您的位置: 5VAR论文频道 → 论文中心 → 理工论文 → 信息技术 |
|
|||||
基于AT89S51单片机的数字电子钟系统的开发 | |||||
收集整理:佚名 来源:本站整理 时间:2012-06-29 22:00:41 点击数:[] ![]() |
|||||
[本篇论文由5var5VAR论文频道为您收集整理,5VAR论文频道http://paper.5var.com将为您整理更多优秀的免费论文,谢谢您的支持] |
第1章 绪 论
1.1 课题背景
单片机自1976年由Intel公司推出MCS-48开始,迄今已有二十多年了。由于单片机集成度高、功能强、可靠性高、体积小、功耗地、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不为”。单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。
单片机有两种基本结构形式:一种是在通用微型计算机中广泛采用的,将程序存储器和数据存储器合用一个存储器空间的结构,称为普林斯顿结构。另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,一般需要较大的程序存储器,目前的单片机以采用程序存储器和数据存储器截然分开的结构为多。
本文讨论的单片机多功能定时器的核心是目前应用极为广泛的51系列单片机,配置了外围设备,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能强等特点。不仅能满足所需要求,而且还有很多功能可供开发,有着广泛的应用领域。
20世纪80年代中期以后,Intel公司以专利转让的形式把8051内核技术转让给许多半导体芯片生产厂家,如ATMEL、PHILIPS、ANALOG、DEVICES、DALLAS等。这些厂家生产的芯片是MCS-51系列的兼容产品,准确地说是与MCS-51指令系统兼容的单片机。这些兼容机与8051的系统结构(主要是指令系统)相同,采用CMOS工艺,因而,常用80C51系列来称呼所有具有8051指令系统的单片机,它们对8051单片机一般都作了一些扩充,更有特点。其功能和市场竞争力更强,不该把它们直接称呼为MCS-51系列单片机,因为MCS只是Intel公司专用的单片机系列型号。MCS-51系列及80C51单片机有多种品种。它们的引脚及指令系统相互兼容,主要在内部结构上有些区别。目前使用的MCS-51系列单片机及其兼容产品通常分成以下几类:基本型、增强型、低功耗型、专用型、超8位型、片内闪烁存储器型。
1.2 课题意义
在日常生活和工作中,我们常常用到定时控制,如扩印过程中的曝光定时等。早期常用的一些时间控制单元都使用模拟电路设计制作的,其定时准确性和重复精度都不是很理想,现在基本上都是基于数字技术的新一代产品,随着单片机性能价格比的不断提高,新一代产品的应用也越来越广泛,大可构成复杂的工业过程控制系统,完成复杂的控制功能。小则可以用于家电控制,甚至可以用于儿童电子玩具。它功能强大,体积小,质量轻,灵活好用,配以适当的接口芯片,可以构造各种各样、功能各异的微电子产品。
随着电子技术的飞速发展,家用电器和办公电子设备逐渐增多,不同的设备都有自己的控制器,使用起来很不方便。根据这种实际情况,设计了一个单片机多功能定时系统,它可以避免多种控制器的混淆,利用一个控制器对多路电器进行控制,同时又可以进行时钟校准和定点打铃。它可以执行不同的时间表(考试时间和日常作息时间)的打铃,可以任意设置时间。这种具有人们所需要的智能化特性的产品减轻了人的劳动,扩大了数字化的范围,为家庭数字化提供了可能。
1.3 数字钟的应用
数字电子钟具有走时准确,一钟多用等特点,在生活中已经得到广泛的应用。虽然现在市场上已有现成的电子钟集成电路芯片出售,价格便宜、使用也方便,但是人们对电子产品的应用要求越来越高,数字钟不但可以显示当前的时间,而且可以显示日期、农历 、以及星期等,给人们的生活带来了方便。另外数字钟还具备秒表和闹钟的功能,且闹钟铃声可自选,使一款电子钟具备了多媒体的色彩。
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。电子钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使电子钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
1.4 本章小结
本章主要介绍了单片机的历史发展过程,单片机的产生与发展给人们带来了来那些影响。以及数字钟在日常生活中的具体应用给日常生活带来的方便。
第2章 整体设计方案
由于本系统要求具有语音播报功能,所以需采用十六位可处理语音信号的单片机。其主要设计思想是:整个系统用单片机为中央控制器,由单片机执行采集时钟芯片的时间信号并通过显示模块来输出信号及相关的控制功能。时钟芯片产生时钟信号,利用单片机的I/O口传给单片机;并通过I/O口实现LCD的显示。系统设有4个按键可以对时间星期年月日进行调整,还可以设置闹钟。整体框架如图2-1所示。
图2-1 系统整体框图
2.1 单片机的选择
AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
主要功能特性为:
兼容MCS-51指令系统;
4k可反复擦写(>1000次)ISP Flash ROM;
32个双向I/O口;
4.5-5.5V工作电压;
2个16位可编程定时/计数器;
时钟频率0-33MHz;
全双工UART串行中断口线;
128x8bit内部RAM;
2个外部中断源;
低功耗空闲和省电模式;
中断唤醒省电模式;
看门狗(WDT)电路;
灵活的ISP字节和分页编程;
双数据寄存器指针。
AT89S51单片机与其他品牌单片机相比有着性价比高,性能稳定的特点。
(1) 51单片机的优点
如果是作低成本的智能产品,51构架单片机的成本优势,还是
第3章 数字钟的硬件设计
3.1 最小系统设计
单片机要正常运行,必须具备一定的硬件条件,其中最主要的就是三个基本条件:(1)电源正常;(2)时钟正常;(3)复位正常。AT89S51的引脚如图3-1所示。在AT89S51单片机的40个引脚中,电源引脚2根,晶振引脚2根,控制引脚4根,可编程输入输出引脚32根。
图3-1 AT89S51的最小系统
(1) 工作电源
电源是单片机工作的动力源泉,对应的接线方法为;40脚(VCC)电源引脚,工作时接+5电源,20脚(GND)为接地线。
(2) 时钟电路
时钟电路为单片机产生时序脉冲,单片机所有运算与控制过程都是在统一的时序脉冲的驱动下进行的,时钟电路就好比人的心脏一样重要。当采用内部时钟时,连接方法如图2-1所示,在晶振引脚XTAL1(19脚)和XTAL2(18脚)引脚之间接入一个晶振,两个引脚对地分别再接入一个电容即可产生所需的时钟信号,电容的容量一般在几十皮法,如30PF。
(3) 复位电路
在复位引脚(9脚)持续出现24个振荡器脉冲周期(即2个机器周期)的高电平信号将使单片机复位。如图2-1所示电容C和电阻R构成了单片机上电自动复位电路。复位后,单片机从0000H单元开始执行程序,并初始化一些专用寄存器为复位状态值,受影响的专用寄存器如表3-1所示。
表3-1 复位寄存器状态表
寄存器 状态 寄存器 状态
PC 000H TC0N 00H
ACC 00H TL0 00H
PSW 00H TH0 00H
SP 07H TL1 00H
DPTR 0000H TH1 00H
P0—P3 FFH SCON 00H
IP XXX00000H SBUF 不确定
IE OXX00
3.2 数字钟的外围电路设计
3.2.1 时钟电路
(1) 单片机时钟
时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式:一种是内部时钟方式,另一种为外部时钟方式。本文用的是内部时钟方式。电路设计如图3-2所示。
图3-2 单片机时钟
AT89S51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反向放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。
(2) 时钟芯片
采用带 RAM的时钟芯片DS1302。该芯片可以进行时分秒的计数,具有100年日历,可编程接口,还具有报警功能和掉电保存功能,并且可以对其方便的进行程序控制
DS1302它通过串行方式与单片机进行数据传送,向单片机提供包括秒、分、时、日、月、年等在内的实时时间信息,并可对月末日期、闰年天数自动进行调整;还拥有用于主电源和备份电源的双电源引脚,在主电源关闭的情况下,也能保持时钟的连续运行。另外,它还能提供31字节的用于高速数据暂存的RAM。有了这些特点,DS1302已在许多单片机系统中得到应用。
图3-3 DS1302引脚排列图
DS1302的引脚排列如图3-3所示,各引脚的功能见表3-2。
表3-2 DS1302功能表
引脚 功能
X1,X2 32768HZ晶振引脚端
RST 复位端
I/O 数据输入/输出端
SCLK 串行时终端
GND 地
VCC2,VCC1 主电源与后备电源引脚端
DS1302时钟芯片内主要包括移位寄存器、控制逻辑电路、振荡器、实时时钟电路以及用于高速暂存的31字节RAM。DS1302与单片机系统的数据传送依靠RST,I/O,SCLK三根端线即可完成。其工作过程可概括为:首先系统RST引脚驱动至高电平,然后在作用于SCLK时钟脉冲的作用下,通过I/O引脚向DS1302输入地址/命令字节,随后再在SCLK时钟脉冲的配合下,从I/O引脚写入或读出相应的数据字节。因此,其与单片机之间的数据传送是十分容易实现的。DS1302与单片机电路相连如图3-4所示。
图3-4 DS1302与单片机接口图
3.2.2 LCD显示电路
液晶显示模块具有体积小、功耗低、显示内容丰富等特点,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件了。
1602B可以显示2行16个字符,有8位数据总线D0-D7,和RS、R/W、EN三个控制端口,工作电压为5V,并且带有字符对比度调节和背光。
该模块也可以只用D4-D7作为四位数据分两次传送。这样的话可以节省MCU的I/O口资源。各引脚的功能见表3-3。
表3-3 LCD引脚功能图
编号 符号 引脚说明 编号 符号 引脚说明
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 BLK 背光源地
8 D1 双向数据口 16 BLA 背光源正极
从该模块的正面看,引脚排列从右向左为:15脚、16脚,然后才是1-14脚。
VDD:电源正极,4.5-5.5V,通常使用5V电压;
VL:LCD对比度调节端,电压调节范围为0-5V。接正电源时对比度最弱,接地电源时对比度最高,但对比度过高时会产生“鬼影”,因此通常使用一个10K的电位器来调整对比度,或者直接串接一个电阻到地;
RS:MCU写入数据或者指令选择端。MCU要写入指令时,使RS为低电平;MCU要写入数据时,使RS为高电平;
R/W:读写控制端。R/W为高电平时,读取数据;R/W为低电平时,写入数据;
E:LCD模块使能信号控制端。写数据时,需要下降沿触发模块。
D0-D7:8位数据总线,三态双向。如果MCU的I/O口资源紧张的话,该模块也可以只使用4位数据线D4-D7接口传送数据。本充电器就是采用4位数据传送方式;
BLA: LED背光正极。需要背光时,BLA串接一个限流电阻接VDD,BLK接地,实测该模块的背光电流为50mA左右;
BLK: LED背光地端。
它与单片机的连接如图3-5所示。
图3-5 LCD与单片机接口
3.2.3 语音录放电路
系统要求能够有闹钟、语音播报、按键报时等功能。由单片语音录放芯片来做比较方便简单。ISD2500芯片,可以录放时间60秒。可以满足本设计的要求,性能良好所以选用。
ISD2500和1400语音电路一样,具有抗断电、音质好,使用方便等优点。它的最大特点在于片内E2PROM容量为480K(1400系列为128K),所以录放时间长;有10个地址输入端(1400系列仅为8个),寻址能力可达1024位;最多能分600段;设有OVF(溢出)端,便于多个器件级联。其封装如图3-6所示。
图3-7 系统电源电路
在系统中要用到2个电源:单片机电源与DS1302时钟芯片电源所以有2路电源VCC和VCC1。
3.2.5 相关控制电路
(1) 按键电路
按键电路如图3-8所示,按键的开关状态通过一定的电路转换为高、低电平状态。按键闭合过程在相应的I/O端口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。抖动持续时间的常长短与开关的机械特性有关,一般在5-10ms之间。为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。本文采用的是独立式按键,直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生互相影响。
图3-8 按键电路图
P1.0口:表示功能移位键,按键选择要调整的时十位、时个位、分十位或分个位。
P1.1口:表示数字“+”键,按一下则对应的数字加1。
P1.2口:表示数字“-”键,按一下则对应的数字减1。
P1.3口:表示时间表的切换,程序默认为日常时间表,当按下该开关,使输入为低电平时,表示当前执行的是考试时间表。再按键,使按键抬起,输入维高电平时,表示当前执行的是日常作息时间表。
(2) 复位电路
AT89S51单片机的复位是由外部的复位电路来实现的。复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。
上电复位:上电复位电路是—种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。
图 3-9 复位电路
如图 3-9所示,上电自动复位是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。
3.3 本章小结
本章介绍了多功能数字钟系统的硬件模块组成。详细介绍了各个模块的组成及功能。MCU的组成和特点、专门的时钟芯片和单片机时钟、显示模块的构建与运用、语音芯片的选择、2路电源的设计制作。基本上是完成了作为单片机所需的硬件结构。同时也显示了对软件支持的强烈要求
第4章 数字钟的软件设计
4.1 系统软件设计内容
本设计的软件程序包括主程序、中断子程序、闹钟设定子程序、时钟显示子程序以及延时子程序等。
在整个系统中,在单片机的30H、31H和32H中存储当前时间的小时、分钟和秒。用LCD显示当前的时间,必须用到分字和合字,因此在33H、34H、35H、36H、37H和38H中存储当前时间的时十位、时个位、分十位、分个位、秒十位和秒个位,方便显示。
本设计有由四个轻触按键组成的小键盘,这些按键可以任意改变当前的状态。按功能移位键一次,表示当前要校对小时的十位;按第二次,表示当前校对的是小时的个位;按第三次,则表示校对的是分钟的十位;第四次,表示的校对的是分钟的个位。按下数字“+” 键和数字“-”键可在当前校对的数字上相应加上1或者减去1。
系统软件采用C语言编写。时钟的最小计时单位是秒,但使用定时器的方式1,最大的定时时间也只能达到131ms。我们可把定时器的定时时间定为50ms。这样,计数溢出20次即可得到时钟的最小计时单位:秒。而计数20次可以用软件实现。秒计时是采用中断方式进行溢出次数的累积,计满20次,即得到秒计时。从秒到分,从分到时是通过软件累加并进行比较的方法来实现的。要求每满1秒,则“秒”单元中的内容加1;“秒”单元满60,则“分”单元中的内容加1;“分”单元满60,则“时”单元中的内容加1;“时”单元满24,则将时、分、秒的内容全部清零。实时时钟程序设计步骤:
(1)选择工作方式,计算初值;
(2)采用中断方式进行溢出次数累计;
(3)从秒——分——时的计时是通过累加和数值比较实现的;
(4)时钟显示缓冲区:时钟时间在方位数码管上进行显示,为此在内部
RAM中要设置显示缓冲区,共6个地址单元。显示缓冲区从左到右依次存放时、分、秒数值;
(5)主程序:主要进行定时器/计数器的初始化编程,然后反复调用显示子程序的方法等待中断的到来,流程如图4-1所示;
(6)中断服务程序:进行计时操作;
(7)加1子程序:用于完成对时、分、秒的加操作,中断服务程序在秒、
分、时加1时共三次调用加1子程序,包括:合字、加1并进行进制调整、分字。
4.2 主程序
主程序主要由main()组成通过对相关子程序的调用,实现了对时间的设置与修改、闹钟的设置与修改、LCD显示等主要功能。相关的调整是靠对功能键的判断来实现的。如对set键的判断,对up键的判断。主程序流程框图如图4-1所示。主要程序段如下:
void main(void)
{ //d_to_b();
//ds1302_write_time(); //对DS1302写数据
initTimer();
TR0=1;
ET0=1;
EA=1;
LCD_init();
LCD_write_string(0,0,"Wellcome to xnkd");
LCD_write_string(0,1,"123456789-mysy");
while(1)
{if((sethour
图4-1 主程序MAIN流程框图
4.3 时钟设置子程序
时钟的修改首先要按功能键并停止时间的输出显示,否则系统继续刷新时间则无法修改,所以时间是不输出到LCD的。修改的部分以修改的为准,没有修改的通过中断保护起来。等修改成功后继续显示。主要流程图如图4-2所示,小时设置程序段如下:
if(keycou==5) //设置小时
{LCD_write_string(0,0,"Hour:"); //将现在时间保存
LCD_set_xy(5,0); //对小时重新设置
LCD_write_char(0,timereg/10+0x30); //设置完成后显示修改后的小时部分
LCD_write_char(0,timereg%10+0x30);
}
在时间修改功能中要用到1个数字加减的问题,把它做成1个子程序,流程如图4-3所示。通过判断功能键的状态也就是记录值来确定。主功能键SET是采用循环的方式来实现的,。当标识为相应的值时执行相应的操作。
if(keycou==5)
{//小时加一
if(timereg<23) timereg++;
else timereg=23;
LCD_set_xy(5,0);
LCD_write_char(0,timereg/10+0x30);
LCD_write_char(0,timereg%10+0x30)
4-2 时钟设置功能子程序流程框
图4-3 加1键修改子程序流程框图
图4-4 时钟修改中断服务子程序流程框图
4.4 中断子程序
MCS-51系列单片机有5个中断源,中断分为2个中断优先级,即高优先级和低优先级,每个中断源的优先级都可以由软件来设定。中断地址如表4-1所示。程序中的中断流程框图如图4-4所示。
表4-1 中断地址表
五个中断源 入口地址
外部中断0(/INT0) 0003H
T0溢出中断 000BH
外部中断1(/INT1) 0013H
T1溢出中断 001BH
串口中断 0023H
/*************************************************************/
*Function: 外部中断1中断服务子程序
*parameter:
*Return:
*Modify:
/*************************************************************/
void Interrupt1 (void) interrupt 2
{
Int1Flag = 1;
}
/************************************************************/
*Function: 定时器0中断服务子程序
*parameter:
*Return:
*Modify:
/*************************************************************/
void InterruptTime0(void) interrupt 1
{
TH0 = 0x06; //8ms
TL0 = 0xed;
Time0Count++;
}
/************************************************************/
*Function: 定时器1中断服务子程序
*parameter:
*Return:
*Modify:
4.5 LCD显示子程序
LCD显示子程序可对DS1302的时间进行设置和读取DS1302内部的时间、连续的读写操作、RAM的应用、充电部分的应用、写保护、抗干扰等可以实现上述功能。
在编写中应注意的是进制的转换,下面是BCD码到十进制数的转换函数。
/**************************************************************/
/* 函数名:BCD_to_INT();
/* 参 数:无
/* 功 能:用于将时间BCD码转换为十进制码
/******************************************************************/
void BCD_to_INT()
{ uchar i;
for(i=0;i<7;i++)
bcd_int(timercur[i]);
}
4.3 本章小结
本章介绍了本设计的软件设计,所有的功能在流程图里清晰的表现了出来,包括主程序流程图、时钟及闹钟修改流程图、中断流程图等,并附有相关程序的主要部分。在软件的设计中模块化设计很重要,显示很直观不会发生混乱现象,容易上手。
第5章 调试与功能说明
5.1 硬件调试
在实际使用中,我们发现DS1302的工作情况不够稳定,主要表现在实时时间的传送有时会出
图5-2 辅助电容连接图
对于晶体振荡器来说,其振荡频率与负载电容之间的关系是确定的。以本文讨论的DS1302使用的32768Hz晶振为例:当它工作于所要求的负载电容时,能较准确地产生 32768Hz的频率;当它的负载电容小于6pF时,其振荡频率会正向偏移;当它的负载电容大于6pF时,其振荡频率就会负向偏移。因此,对于未知负载电容的晶体应首先采用实验的方法,在其两端加入辅助电容使晶体起振,然后用频率计测出振荡频率。若测得频率大于32768Hz,说明负载电容偏小;若测得频率小于32768Hz,说明负载电容偏大。对辅助电容逐步调整,最终使振荡频率尽可能接近32768Hz,则此时晶体端所接负载电容的总和就是适合该晶体的负载电容。
以上方法经多次使用,证明确实有效。它放宽了DS1302在使用中对晶振的条件要求,增强了DS1302在工作中的稳定性,对DS1302更广泛地应用具有积极的意义。
5.2 系统性能测试与功能说明
5.2.1 系统时钟误差分析
设系统中所选用的晶振的频率为fosc,则机器周期t0由式(5-1)所得。
(5-1)
设定时器要求的中断频率为k,计数器位数为n,则定时计数器的初值X设置如下: (5-2)
于是 而实验测得的数据显示,这个公式所得的结果并不可靠:(下表中的所有数据都是在计数器初始值严格按照原始公式给出的条件下测得,以个人计算机机系统时钟为标准)。从表 5-1 中的数据可知,严格按照原始公式得出的计数初值是存在极大误差的,这个误差总使系统时间变慢,而且,系统时间的误差值随着每秒中断次数的增多而增大,随计时总长的增长而增大,并且总是成比例(在误差允许的范围内)。这就是说,系统的误差跟每秒中断次数和个人计算机标准时长的乘积(即中断总次数)成正比。也就是说,每次中断计时的时间误差是一个常数。
误差来源分析:不考虑晶振等固件的误差,则系统机器周期可以由公式 1 准确给出,因而系统误差不可能来自于硬件,而应该主要来自于软件方面。系统每次调用定时中断程序的过程中,硬件并没有自动进入下一个定时周期,而是在调用中断程序以后由软件置数来实现的。
表5-1 系统时间校正测试数据
每秒定时中断次数K PC标准时长/min △X 系统时间 误差△T/S 备注
160 60 20 00:59:59 -1 显示器无闪烁
160 120 20 01:59:58 -2 显示器无闪烁
160 180 20 02:59:57 -3 显示器无闪烁
160 240 20 03:59:56 -4 显示器无闪烁
160 300 20 04:59:54 -6 显示器无闪烁
160 300 21 04:59:59 -1 显示器无闪烁
160 600 21 09:59:58 -2 显示器无闪烁
而在程序调用过程中,堆栈建立,参数传递等都是需要耗时的,而这些时间都被无形中加到了定时长度中去。所以,使得每次定时长度都大于理论推导值,在宏观上表现出来就是系统比理论计算出来的结果变慢了(这于表格 1 所得的结论恰好一致)。另外,由于系统每次调用中断处理程序所执行的操作都是相同的,也就是说,系统每次定时的时间误差应该是一个常数(这也恰好跟实验数据相吻合)。由上面的数据和分析可知,原始公式应该修改为:
&nb
参考文献
张专成 赵怀勋.单片机测控系统中的监视定时器[M].武警技术学院.Mar1997:286-354.
张景元.基于单片机的多用途定时器的设计与实现[J].电子工程师2000年第8期.
李洪涛.一种单片机控制的定时打铃器[J].电子世界.1990年第2期.
何业军 李超.基于单片机控制的高精度定时打铃器的设计[J].电子技术.2001年第7期.
关宗安 仲丛久.基于单片机实现的多路定时控制器的设计[J].沈阳航空工业学院学报.2004年6月.第21卷第3期.
ATMEL.Microcontroller Data book[M].2002:108-243.
Mark1.Montrose.PRINTED Circuit Board Design Techniques for EMC Compliance[M].IEE Press series.2000:348-492.
范立南.单片微机接口与控制技术[M].沈阳:辽宁大学出版社.1996:78-206.
[9] 张友德.单片微型机原理、应用与实践[M].上海:复旦大学出版社.1992:347-468.
[10]李华.MCS-51系列单片机实用接口技术[M],北京:北京航空航天大学出版社.1993:138-248.
[11]何希庆,高伟.MCS-51单片机原理、实验、实例[M].山东:山东大学出版社.1989:242-298.
[12]张毅刚,彭喜源,潭晓昀.MCS-51单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社.1997:442-648.
[13]胡汉才.单片机原理及接口技术[M].北京:清华大学出版社.1996;546-643.
[14]余永权.单片机与家用电器智能化设计[M].北京:电子工业出版社.1995:347-502.
[15]房小翠,王金凤.单片微型计算机与机电接口技术[M].北京国防工业出版社.2002:278-422.
[16]皮红梅,李英顺.单片机开发中的定时方法[J].沈阳石油化工高等专科学校学报.2002年12月.
[17]Maxim公司.Newreleases Data Book 1996[J].
提供人:佚名 | |
【返回上一页】【打 印】【关闭窗口】 |
![]() |
5VAR论文频道 |
![]() |
5VAR论文频道 |
![]() |
关于本站 -
网站帮助 -
广告合作 -
下载声明 -
网站地图
Copyright © 2006-2033 5Var.Com. All Rights Reserved . |