您好,欢迎来到汇意旅游网。
搜索
您的当前位置:首页定时器_中断方式_1s连续闪烁

定时器_中断方式_1s连续闪烁

来源:汇意旅游网


/**********************************************************************

name:发光二极管以1秒钟的间隔,连续闪烁

延时方式:定时器0,工作方式0(13位计数) 程序控制方式:中断方式

连线:P2口—>发光二极管JP14

计数初值计算过程分析:1s=200*0.005s

每秒计数机器周期个数=11.0592M/12=921600

0.005s计数个数N=921600*0.005=4608

定时0.005s计数初值X=8192-4608=3584

低5位(TL0):X%32 高8位(TH0):X/32

**********************************************************************/

#include

#define uint unsigned int

#define uchar unsigned char

#define LED P2 //重新定义P2口为LED

void init_T0(void);

void isr_T0(void);

uchar count = 0;

main()

{

init_T0();

while(1)

{

//方式二:将定时时间到的处理程序写在主函数中处理!较好!!

if(count == 200)

{

count = 0; //清0,重新计数

//P2 = ~P2;

LED = ~LED;

}

}

}

void isr_T0(void) interrupt 1

{

++count;

//方式一:将定时时间到的处理程序写在中断服务函数里,不好! 提到主函数中处理!!

/*if(count == 200)

{

count = 0; //清0,重新计数

P2 = ~P2;

} */

TL0 = 38%32; //重新写入计数初值低8位

TH0 = 38/32; //重新写入计数初值高8位

//清除溢出标志位:中断方式硬件自动清0

}

void init_T0(void)

{

TMOD = 0x0; //设定定时计数器0:工作方式0

TL0 = 38%32; //设置计数初值低8位

TH0 = 38/32; //设置计数初值高8位

EA = 1; //开总中断

ET0 = 1; //开定时计数器0中断

TR0 = 1; //TCON=0x10,启动定时计数器0

}

/*******************************************************************

name:发光二极管以1秒钟的间隔,连续闪烁

延时方式:定时器0,工作方式2(8位计数,自动重装载)

程序控制方式:中断方式

连线:P2口—>发光二极管JP14

计数初值计算过程分析:

每秒计数机器周期个数=11.0592M/12=921600

0.00015625s计数个数N=921600*0.00015625=144 1s = 0.00015625*00

定时0.00015625s计数初值X=256-144=112 高8位(TH0)=低8位(TL0):X

*******************************************************************/

#include

#define uint unsigned int

#define uchar unsigned char

#define LED P2 //重新定义P2口为LED

void init_T0(void);

void isr_T0(void);

uint count = 0;

main()

{

init_T0();

while(1)

{

//方式二:将定时时间到的处理程序写在主函数中处理!较好!!

if(count == 00)

{

count = 0;//清0,重新计数

LED = ~LED;

}

}

}

void isr_T0(void) interrupt 1

{

++count;

//计数初值自动重装载

//清除溢出标志位:中断方式硬件自动清0

}

void init_T0(void)

{

TMOD = 0x02; //设定定时计数器0:工作方式2

TH0 =TL0 = 112; //设置计数初值高8位=低8位

EA = 1; ET0 = 1; TR0 = 1; }

//开总中断

//开定时计数器0中断

//TCON=0x10,启动定时计数器0

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- hids.cn 版权所有 赣ICP备2024042780号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务