单片机定时器中断原理和C语言代码详解
4页1、单片机定时器中断原理和C语言代码详解我之前都是用ARM7,单片机基本不会。但一个项目要用到51,所以克了一下51还是有点模糊,今天调了这个代码之后,对51定时器中断有些心得,拿来和大家共享。废话不说了,上代码。#define _1231_C_#include reg51.h#include 1231.h/sbit OE=P23;unsigned int SystemTime;void timer0(void) interrupt 1 using 3 /中断部分代码,见下文的释疑 TH0 = 0xdb; TL0 = 0xff;/ TF0 = 0; SystemTime+;void main() TMOD &= 0xF0; TMOD |= 0x01; /TMOD的值表示定时器工作方式选择 TH0 = 0xdb; /写入初始值,初始值可以决定定时多久 TL0 = 0xff;/根据下文的木桶比喻的话,如果TH0 = 0x00;TL0 = 0x00;则表示从桶底开始装水。/TH0 = 0xdb;TL0 = 0xff;可以这样子理解相当于木桶里已经有部分液铅在里面,/TH0和TL0这个两个值表示木
2、桶里液铅的高度,即此时桶里只能从液铅的高度以上开始装水,/TH0 = 0xff;TL0 = 0xff;即表示桶的最高位置. TF0 = 0; /计数到时TF0为1,即当TH0 = 0xff;TL0 = 0xff;再运行一步TF0 = 1; TR0 = 1; /开始计数,从这时起,每运行一步TH0和TL0都会增加,直到TH0 = 0xff;TL0 = 0xff; /相当于开水龙头,如TR0=0则TH0和TL0不变 ET0 = 1; /允许定时器0中断 EA=1; /开总中断/下面是个死循环,程序里每运行一步TH0和TL0都会增加,当增加到TH0 = 0xff;TL0 = 0xff;/单片机会从死循环里退出,去执行中断部分的代码,即开始运行void timer0(void) interrupt 1 using 3/运行完中断部分的代码后,接着继续执行死循环里的代码。/注意:当TH0 = 0xff;TL0 = 0xff;再运行,TF0并没有从0变为1,个人猜测TF0=1;时触发了中断,并重新被置零。/如把ET0 = 1;和EA=1;注释掉,当TH0 = 0xff;TL0 = 0xff;再运行
3、,TF0会变为1,此时不会再执行中断部分代码。 while(1) if (SystemTime%100)释疑:void Timer0() interrupt 1 using 1Timer0 是函数名,随便取的 interrupt xx using y 跟在interrupt 后面的xx 值得是中断号,就是说这个函数对应第几个中断端口,一般在51中 0 外部中断0 1 定时器0 2 外部中断1 3 定时器1 4 串行中断 实际上编译的时候就是把你这个函数的入口地址方到这个对应中断的跳转地址 using y 这个y是说这个中断函数使用的那个寄存器组,51里面一般有4组 r0 - r7寄存器,一共有32个,如果你的终端函数和别的程序用的不是同一个寄存器组则进入中断的时候就不会将寄存器组压入堆栈返回时也不会谈出来节省代码和时间初始值算法:定时器是当总数达到FFFFH后产生中断吧!那你要让它计数10000,是不是用FFFF(16进制)减去10000(十进制)的数当计数初值 啊?TH0=-(10000/256); TL0=-(10000%256)跟FFFF(16进制)减去10000(十进制)的数是
《单片机定时器中断原理和C语言代码详解》由会员夏**分享,可在线阅读,更多相关《单片机定时器中断原理和C语言代码详解》请在金锄头文库上搜索。
初一美术第四单元第一课时教案
18安全风险抵押管理办法
《企业知识产权管理规范》贯标模板
[有关比很好的英文笑话阅读]英文笑话
孝心作文600字初二
校园安全培训心得体会
生产车间工作总结(通用19篇)
人民医院医疗质量转院制度及流程
薪资制度及薪资标准
淀粉磷酸酯的性质和用途
白酒销售员月度工作总结_1
发言稿工作安排汇总九篇
房屋租赁管理系统源代码
步进炉招标技术要求-副本329--修改版-鞍钢集团电子招标
汽车行业管理评审报告参考模板
联合摄制电视剧赞助合同书
梦想点亮人生读后感中学生文档2022
主题班会我是节约小能手
锦州关于成立表面活性剂公司可行性研究报告(DOC 85页)
商场客服试用期工作总结范文(4篇).doc
2023-07-05 9页
2022-09-12 36页
2023-03-18 7页
2023-06-12 9页
2023-02-23 7页
2023-11-21 14页
2023-07-22 2页
2023-06-20 2页
2022-10-12 5页
2022-12-10 2页