51单片机的定时器中断毕业论文

1.基于单片机多用途定时器的论文

基于单片机的多用途定时器的设计与实现摘要】 设计了一种以AT89 C51为核心、结构紧凑和功能齐全的多用途定时器。

它可通过小键盘输入任意定时时间,最大可定时10h,能满足各种层次答辩、各种赛事以及某些特殊定时需要。文章对其结构作了介绍。

关键词:AT89 C51,定时器,Intel 8279,Intel82531 引 言“定时器”总的来说有两种类型。其一是基于模拟技术的传统产品,这种定时器功能简单,尽管曾被广泛应用过,但已进入淘汰之列。

另一种就是基于数字技术的新一代产品,这种产品功能强,是前者的换代之物。然而,此类产品大多是较大型的设备,真正实用、携带方便、功能齐全的“大路”商品则就不多见了。

随着单片机性能价格比的不断提高,新一代产品的应用越来越广泛,大可构成复杂的工业过程控制系统,完成复杂的控制功能,小则可以用于家电控制,甚至能够用来做儿童电子玩具。它功能强大,体积小,重量轻,灵活好用,配以适当的接口芯片,可以构造各种各样、功能各异的微电子产品。

鉴此,我们设计开发了一种基于单片机的多用途定时器。这种定时器除了AT89 C51芯片以外,只采用Intel8253、Intel 8279为主要芯片,是典型的“三片系统”。

它造价低,功能全,整体功能价格比高,配以小键盘和LED显示器,可适应各种场合的定时预警之用。 2 硬件结构AT系列单片机是美国ATMEL公司在IntelMCS-51单片机技术基础上开发出的一种新产品,片内带有4k E2ROM,编程/擦除全部采用电实现(有5V和12V两种模式),既能进行在线编程擦写, 亦可采用电话线进行远程编程擦写。

可重复性强,使用寿命长,可重复擦写1000次以上,并且擦写速度快,4k编程大约需3s,擦除仅需10ms。程序保存时间长,可达100年,与Intel MCS-51系列单片机完全兼容,且有超强的加密功能,能完全替代IntelMCS - 8751/Intel MCS - 8752和Intel MCS -87C51/Intel MCS-87C52,低电压,低电流,低功耗,除了有DIP、PLCC、QFP等多种封装形式,还有商用级、工业级、汽车用级、军用级等多种规格。

因此,目前它在微计算机产品开发中的应用越来越“火”。我们的系统不需要复杂的计算,程序代码量不大,4k ROM已足够,无须外扩ROM和RAM。

由于AT89 C51的内部计数器是16位的,即便采用2MHz的时钟,计满一次为32767.5μs,因此通过Intel 8253外扩了计数器,并且用AT89 C51的ALE输出作为8253的时钟脉冲,这样就大大地扩展了量程范围。通过Intel 8279外扩了键盘/显示器,由于Intel8279内部自带按键消抖电路和键值自动扫描电路,故无须再进行编程,这样既提高了可靠性,同时也减少了整个程序的代码量。

键盘为4*4物理键阵(部分键是复用的),除了0~9数字键外,还有计时键、修改键、确认键、设置键/复位、↑、↓等功能键,键位排布情况见图1。因为选用了塑膜按键(定做的),所以既防尘又美观。

显示器选用5位高红LED管,分别表示时、分、秒。之所以没有选用液晶,主要是从广泛的实用环境来考虑的,比如球赛,大多是在户外进行的,LCD就显得亮度不够了。

另外用了4个发光二极管作为时与分、分与秒之间的分界符,如图2所示。达到预定时间,声光同时报警,采用高亮度LED和所需语音(时间到,请停止)。

CPU对8279的监视采用了查询方式,故8279的中断请求信号IRQ悬空未用。系统有直流(4节1号干电池)和交流(220V市电)两种供电方式。

整流电源是与系统配装在一起3 软件结构8253的工作时钟是ALE,输出为1MHz。它有三个计数器,为了能够最大限度地扩大计时量程,三个计数器采用了“套用”方式,即计数器0的输出作为计数器1的输入脉冲,计数器1的输出作为计数器2的输入脉冲,最后计数器2的输出才输入到的。

整个系统的结构如图3所示。 AT89 C51的T0进行计数,一个“硬件计时周期”就能定时71min1.41s,这已能满足一般的赛事定时需要。

从更广的范围考虑,编制了不同“软定时”延迟程序,可用嵌套的形式启动“硬件计时周期”,以达到更长的定时需要,但是显示器的位数已定,最长能够定时10h,这已足够长了。系统软件分为三大模块,即初始化模块,键盘扫描/显示模块,时间延迟(脉冲计数)模块。

关键技术为延迟时间的计算和对8279编程,工作期间要动态地显示倒计时时间,结构框图如图4所示。4 结束语本文所介绍的多用途定时器设计巧妙,体积小,造价低,功能强,计时范围大,用途广泛,操作携带方便,是一种较理想的定时工具,经多次试用改进后已基本定型。

该系统市场前景广阔,具有较明显的经济效益。参 考 文 献1 张友德等.单片微型机原理、应用与实践.上海:复旦大学出版社,19922 李华. MCS-51系列单片机实用接口技术.北京:北京航空航天大学出版社,19933 李秉操等.单片机接口技术及其在工业控制中的应用.陕西:陕西电子编辑部,19914 陈键铎.8098单片机原理及应用技术.北京:电子工业出版社,1995。

2.单片机定时中断

跟你理清一下思路,你的问题就解决了。首先,你的程序很简单,就是让发光二极管1秒亮1秒灭。因此,你前提是要定时1秒,但51单片机无法定时1秒,因此,你的程序就要定时50毫秒,每到了50毫秒,你就让num自加1,当num加到20时,换句话说,已经定时50毫秒20次了,那就是1秒咯,所以此有led1=~led1; //让发光管状态取反,达到程序目的。另外,定时50毫秒你要给TH0和TL0赋给初值,因此 TH0=(65536-45872)/256; //重新装载初值TL0=(65536-45872)%256;才会有这两句,但定时50毫秒后,你的初值也会随之消失,因此才会在void T0_time()这个函数中重新赋初值。的确像你所说的初值是装满了开始执行中断,其实从你TMOD=0x01; //设置定时器0位工作模式1(M1,M0位0,1)这句已经开始定时了,而赋初值是为了准确的定时50毫秒罢了。明白了没有?

(其实你可以这样理解,定时计数器就好比一个空的瓶子,当你给TMOD=0x01时,水就开始一滴一滴的往瓶子你滴,当瓶子满了的时候,中断就发生了。假如从一个空的瓶子滴到满的瓶子定时是80毫秒的话,可你只需要定时50毫秒就够了,所以就要一开始往瓶子里倒水,使滴水的起点不是空瓶子,这就是赋初值的作用。当瓶子满了后,瓶子就会自动清空,重新从零开始。而第二次你再想定时50毫秒,你就必须从新再往瓶子里倒水,这就是第二次赋初值的作用)

3.关于51单片机的中断

、中断的概念 CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生); CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务); 待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断 二、中断源 在51单片机中有5个中断源 中断号 优先级 中断源 中断入口地址 0 1(最高) 外部中断0 0003H 1 2 定时器0 000BH 2 3 外部中断1 0013H 3 4 定时器1 0018H 4 5 串口总段 0023H 三、中断寄存器 单片机有10个寄存器主要与中断程序的书写控制有关 1.中断允许控制寄存器IE 2.定时器控制寄存器TCON 3.串口控制寄存器SCON 4.中断优先控制寄存器IP 5.定时器工作方式控制寄存器TMOD 6.定时器初值赋予寄存器(TH0/TH1,TL0/TL1) 寄存器详细说明: 四、寄存器功能与赋值说明 注:在用到中断时,必须要开总中断EA,即EA=1。

//开总中断 1.中断允许控制寄存器IE EX0(EX1):外部中断允许控制位 EX0=1 外部中断0开关闭合 //开外部0中断 EX0=0 外部中断0开关断开 ET0(ET1):定时中断允许控制位 ET0=1 定时器中断0开关闭合 //开内部中断0 ET0=0 定时器中断0开关断开 ES: 串口中断允许控制位 ES=1 串口中断开关闭合 //开串口中断 ES=0 串口中断开关断开 2.定时器控制寄存器 TCON //控制外部中断和定时器中断 外部中断: IE0(IE1):外部中断请求标志位 当INT0(INT1)引脚出现有效的请求信号,此位由单片机自动置1,cpu开始响应,处理终端,而当入 中断程序后由单片机自动置0. //外部中断,即外部中断相应的引脚接入低电平或下降沿信号时,中断开始响应。 IT0(IT1):外部中断触发方式控制位 //选择有效信号 IT0(IT1)=1:脉冲触发方式,下降沿有效。

IT0(IT1)=0:电平触发方式,低电平有效。 内部中断: TF0(TF1):内部定时器/计数器溢出中断标志位 当定时器、计数器计数溢出的时候,此位由单片机自动置1,cup开始响应,处理中断,而当进入中 断程序后由单片机自动置0. //内部中断实际上就是利用内部的计数器,只不过提供计数的脉冲来自单片机自身。

TRO(TR1):定时器/计数器启动位 //启动定时器 TRO(TR1)=1; 启动定时器/计数器0 TR0(TR1)=0; 关闭定时器/计数器0 3.串口控制寄存器SCON TI:串行口发送中断标志位 当单片机串口发送完一帧数据后,此位由单片机自动置1,而当进入中断服务程序后是不会自动清0的, 必须由用户在中断服务中用软件清0. RI:串行口接收中断标志位 当单片机串口接收完一帧数据后,此位由单片机自动置1,而当进入中断服务程序后是不会自动清0的, 必须由用户在中断服务软件中用软件清0. (IP以后补上,TMOD,TL0/TH0 在定时器/计数器中讲) 五、中断结构图:六、定时器/计数器 1.计数的定义: 计数是指对外部事件进行计数,外部事件的发生以输入脉冲的形式表示,因此计数功能的实质就是对外来 的脉冲进行计数,在单片机中对应引脚T0和T1,两个脉冲输入端。 外部输入的脉冲在负跳变时有效(即外部脉冲由1变化到0),计数器加1. 2.定时器: 定时器是通过计数器的计数来实现的,不过此时的计数脉冲来自单片机的内部,因此定时器的实质是对内 部脉冲的计数,在单片机中,每个机器周期产生一次计数脉冲,计数器加1. 3.工作方式控制寄存器TMOD: TMOD的低半字节(D0,D1,D2,D3)用来控制定时器/计数器0 TMOD的高半字节(D4,D5,D6,D7)用来控制定时器/计数器1 对TMOD中的内容说明: GATE——门控制。

GATE=1时,由外部中断引脚INT0、INT1来启动定时器T0、T1。 当INT0引脚为高电平时TR0置位,启动定时器T0; 当INT1引脚为高电平时TR1置位,启动定时器T1。

GATE=0时,仅由TR0,TR1置位分别启动定时器T0、T1。 C/T——功能选择位 C/T=0时为定时功能,C/T=1时为计数功能。

M0、M1——方式选择功能 由于有2位,因此有4种工作方式 4.根据单片机晶振,所选TMOD的的工作方式,所要定的时间,来确定THO和TLO所要赋予的初值 (以12M晶振,工作方式1,16位计数器为例,设所定时间为Xus(16为计数器最大数65536,即65536us,若所 定时间大于65535,则要用if语句控制,现假设X 1.时钟周期的时间t=1/12M=1/12 us 2.机器周期的时间T=12*1/12=1 us 3.因为每经过一个机器周期计数器+1,所以,计数器+1,经过的时间为 1 us。 若所定时间为X,则要求经过Xus,中断响应,又因为16为计数器要全部置1(即达到65535)+1后,中断才会 响应,所以,初值=(65536-X) 4.将初值转化为16进制码,分别付给THO和TLO eg:所定时间5ms 初值=(65536-5000)=60536=EC78 TH0=0XEC; TL0=0X78; (当工作方式不同时,TH0/TL0的赋值也不同,个人觉得有了16位计数器了,其余的没什么用,不介绍了) 5.写程序时另一种THO/TLO赋值方法 TH0=(65536-20000)/256; TL0=(65536-20000)%6; 这样设置,每经过20ms,发生一次中断,中断时间一般以秒为单位,所以经过n次中断即可。

4.51单片机定时器中断程序

我来帮你写一个,程序太简单了,下面是我帮你写的程序我测试过能满足你的要求,希望我的回答对你有帮助!

/*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*

**/

#include "REG52.H"

/*

*

*/

sbit LED_A = P1^0;

sbit LED_B = P1^1;

sbit LED_C = P1^2;

unsigned char TIME_BASE;

unsigned char MACT_ENDB;

unsigned char Rece_Errp;

/*

* 定时器初始化

*/

void SystemInit(void)

{

TMOD = 0x01;

TH0 = (65536 - 45872) / 256; // 定时50ms //晶振:11.0592MHZ

TL0 = (65536 - 45872) % 256;

ET0 = 1;

TR0 = 1;

EA = 1;

}

int main(void)

{

SystemInit();

while(1)

{

/* 程序一开始上电Rece_Errp = 0 定时器5秒加一次 */

if(Rece_Errp == 0)

{

LED_A = 0; // A亮5秒

LED_B = 1; // B是灭

LED_C = 1; // C是灭

}

/* 判断是否5秒时间到 */

else if(Rece_Errp ==1)

{

LED_A = 1; // A是灭

LED_B = 0; // B亮5秒

LED_C = 1; // C是灭

}

else if(Rece_Errp == 2)

{

LED_A = 1; // A是灭

LED_B = 1; // B是灭

LED_C = 0; // C亮5秒

}

else

{

LED_A = 1; // A是灭

LED_B = 1; // B是灭

LED_C = 1; // C是灭

while(1); // 程序运行到这里停止

}

}

}

void Timer0_IRQ(void) interrupt 1

{

TH0 = (655365 - 45872) / 256;

TL0 = (655365 - 45872) % 256;

/* 进入中断50ms +1次 */

TIME_BASE++;

if(TIME_BASE == 20) // 20ms * 50ms = 刚好等于1000ms 也就是1秒

{

TIME_BASE = 0;

MACT_ENDB++; // 一秒加一次

if(MACT_ENDB == 5) // 等于刚好5秒时间到

{

MACT_ENDB = 0;

Rece_Errp++; // 用来切换LED A、B、C5秒灭

}

}

}

51单片机的定时器中断毕业论文

转载请注明出处众文网 » 51单片机的定时器中断毕业论文

资讯

毕业论文引用统计网站数据

阅读(76)

本文主要为您介绍毕业论文引用统计网站数据,内容包括引用了官方网站的统计数据,参考文献怎么写例如FAO的数据爱问,毕业论文中引用别人的调查数据应该怎样标明,写论文时,如果要引用一些网站上的文章,在参考文献里应该怎么写呢。参考文献标准

资讯

windows服务器管理器毕业论文

阅读(73)

本文主要为您介绍windows服务器管理器毕业论文,内容包括计算机软件工程毕业论文利用Windows2000server的终端服务实现服,求一份《Windows服务器优化》的一篇论文,服务器管理与维护的毕业论文要写点什么方面的。作为网络管理员,经常要从网络

资讯

中央电大计算机本科毕业论文

阅读(83)

本文主要为您介绍中央电大计算机本科毕业论文,内容包括计算机论文范文3000字,求一篇计算机毕业论文10000字左右,麻烦帮我找一篇计算机比较基础的毕业论文4000字左右,谢谢了。学术堂整理了一篇3000字的计算机论文范文,供大家参考: 范文题目:关

资讯

本科毕业论文还能发表么

阅读(72)

本文主要为您介绍本科毕业论文还能发表么,内容包括本科毕业论文可以发表吗,本科生能发表文章吗,本科生毕业论文通过后可不可以在刊物上发表。本科生的论文不一定会被知网收录。知网会收录本科优秀毕业论文。本科论文版权在学校手里。有的学

资讯

毕业论文走关系

阅读(73)

本文主要为您介绍毕业论文走关系,内容包括毕业论文与工作有联系吗,毕业论文和以后工作有关系吗,毕业论文跟毕业设计什么关系。给!大学里的人际关系很重要,直接关系到日后的工作啊,都是既然是和你一个大学的,成绩要相差也不会太远,想必更不是傻子

资讯

智能鱼缸毕业论文

阅读(74)

本文主要为您介绍智能鱼缸毕业论文,内容包括智能鱼缸方案怎么做,体验·创新·成长,这个是科技小论文的主题,这次科技小论文的主题,单片机毕设能做吗。鱼会说话吗? 您相信鱼会说话吗?这是一个耐人寻味的事,我想知道鱼是否会说话? 我家买了两条小

资讯

电子技术毕业论文6000字

阅读(76)

本文主要为您介绍电子技术毕业论文6000字,内容包括机电一体化毕业论文6000字,求一篇关于应用电子技术的毕业论文,求一篇关于“电子商务技术在现在物流中的应用”的毕业论文6000字。机电一体化毕业论文 绪论 现代科学技术的不断发展,极大地推

资讯

顺丰快递配送毕业论文

阅读(80)

本文主要为您介绍顺丰快递配送毕业论文,内容包括怎么用顺丰快递邮寄毕业论文啊有知道的亲吗帮帮忙啊谢啦,物流毕业论文一篇,求一篇关于快递物流方面的论文,要求3000字以上。1.我国物流业发展与布局的特点及对策2.物流配送中心规划设计、知

资讯

管壳式换热器毕业论文

阅读(88)

本文主要为您介绍管壳式换热器毕业论文,内容包括换热器毕业设计,换热器毕业设计的绪论怎么写,管壳式换热器原理与设计。这只是个模板,你还要自己修改数据,其中有些公式显示不出来。一.设计任务和设计条件某生产过程的流程如图所示,反应器的混

资讯

短片拍摄毕业论文

阅读(94)

本文主要为您介绍短片拍摄毕业论文,内容包括跪求一篇名为动画短片创作的毕业论文,求一篇摄影摄像专业的毕业论文和毕业设计,毕业设计要求拍一部短片,题材不限。动画短片创作中的情感设计 在世界动画艺术史上,涌现出了许许多多集思想性、艺术

资讯

2014秋电大行政管理毕业论文

阅读(88)

本文主要为您介绍2014秋电大行政管理毕业论文,内容包括2014秋电大行政管理专业毕业论文提纲,求助,急需一篇2014年的中央电大行政管理专科毕业论文,求篇电大行政管理毕业论文4000字左右的。的中央电大行政管理专科毕业论文。 [学习帮助]行政

资讯

二学历毕业论文怎么写

阅读(102)

本文主要为您介绍二学历毕业论文怎么写,内容包括谁能告诉我一下二学历的论文格式和字号,第二学历写毕业论文吗,本科生毕业论文要怎么写。论文题目:要求准确、简练、醒目、新颖。2、目录:目录是论文中主要段落的简表。(短篇论文不必列目录)3、提

资讯

效果图设计毕业论文

阅读(98)

本文主要为您介绍效果图设计毕业论文,内容包括建筑效果图的论文,环艺设计的毕业设计,关于PS的毕业论文怎么写啊、、谢谢啊。建筑3D效果图设计制作心得 由于工作原因经常看到一些业余3D设计者的作品,感觉到有一些设计者的软件运用技术虽然已

资讯

文献综述和毕业论文的区别

阅读(102)

本文主要为您介绍文献综述和毕业论文的区别,内容包括文献综述和论文有什么区别啊,文献综述和论文有什么区别,《文献综述和论文的区别》。性质不同论文:进行各个学术领域的研究和描述学术研究成果的文章。2、文献综述:对某一领域,某一专业或某

资讯

毕业论文引用统计网站数据

阅读(76)

本文主要为您介绍毕业论文引用统计网站数据,内容包括引用了官方网站的统计数据,参考文献怎么写例如FAO的数据爱问,毕业论文中引用别人的调查数据应该怎样标明,写论文时,如果要引用一些网站上的文章,在参考文献里应该怎么写呢。参考文献标准

资讯

windows服务器管理器毕业论文

阅读(73)

本文主要为您介绍windows服务器管理器毕业论文,内容包括计算机软件工程毕业论文利用Windows2000server的终端服务实现服,求一份《Windows服务器优化》的一篇论文,服务器管理与维护的毕业论文要写点什么方面的。作为网络管理员,经常要从网络

资讯

中央电大计算机本科毕业论文

阅读(83)

本文主要为您介绍中央电大计算机本科毕业论文,内容包括计算机论文范文3000字,求一篇计算机毕业论文10000字左右,麻烦帮我找一篇计算机比较基础的毕业论文4000字左右,谢谢了。学术堂整理了一篇3000字的计算机论文范文,供大家参考: 范文题目:关

资讯

本科毕业论文还能发表么

阅读(72)

本文主要为您介绍本科毕业论文还能发表么,内容包括本科毕业论文可以发表吗,本科生能发表文章吗,本科生毕业论文通过后可不可以在刊物上发表。本科生的论文不一定会被知网收录。知网会收录本科优秀毕业论文。本科论文版权在学校手里。有的学

资讯

毕业论文走关系

阅读(73)

本文主要为您介绍毕业论文走关系,内容包括毕业论文与工作有联系吗,毕业论文和以后工作有关系吗,毕业论文跟毕业设计什么关系。给!大学里的人际关系很重要,直接关系到日后的工作啊,都是既然是和你一个大学的,成绩要相差也不会太远,想必更不是傻子

资讯

智能鱼缸毕业论文

阅读(74)

本文主要为您介绍智能鱼缸毕业论文,内容包括智能鱼缸方案怎么做,体验·创新·成长,这个是科技小论文的主题,这次科技小论文的主题,单片机毕设能做吗。鱼会说话吗? 您相信鱼会说话吗?这是一个耐人寻味的事,我想知道鱼是否会说话? 我家买了两条小

资讯

电子技术毕业论文6000字

阅读(76)

本文主要为您介绍电子技术毕业论文6000字,内容包括机电一体化毕业论文6000字,求一篇关于应用电子技术的毕业论文,求一篇关于“电子商务技术在现在物流中的应用”的毕业论文6000字。机电一体化毕业论文 绪论 现代科学技术的不断发展,极大地推

资讯

毕业论文导师指导工作联系手册

阅读(68)

本文主要为您介绍毕业论文导师指导工作联系手册,内容包括第一次和毕业论文指导老师联系该怎么说,私下联系意向毕业论文指导老师怎么说,本科毕业论文指导教师工作记录怎么写。联系技巧:首先礼貌问好:老师,您好,我是您毕业论文带的学生。2、简单