当前位置:首页 > 单片机 > 单片机
[导读]/***************************中断方式 是主程序专注于其他的事情,待定时器中断时才执行中断子程序。*****************************/#include#define LED P1#define count 50000 // 50000 * 1us = 0.05s 机器周期1u

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

中断方式 是主程序专注于其他的事情,

待定时器中断时才执行中断子程序。

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


#include


#define LED P1

#define count 50000 // 50000 * 1us = 0.05s 机器周期1us 12MH晶振

#define TH_M1 (65536-count)/256 //TMOD 寄存器 方式 1 , 2^8 = 256 THX跟TLX都是8位 除以256取商赋值高4位

#define TL_M1 (65536-count)%256 //将余数赋值低4位

int Count=0; //计算TO中断次数

main()

{

IE = 0x82; // EA=1, 1000 0010 1000开启总中断 0010 T0中断

TMOD = 0x01; // 方式1

TH0 = TH_M1; // 设置T0计数值高8位,

TL0 = TL_M1; // 低8位

TR0 = 1; // 启动 T0

LED = 0xf0; // 1111 ,0000 右边亮 共阳极

while(1); // 无穷循环

}

void timer0(void)interrupt 1 //定时器Timer0 中断 1

{

TH0 = TH_M1; //设置TO 高4位

TL0 = TH_M1; //低4位

if(++ Count==5) //已经中断5次

{

Count=0; //中断次数归0

LED^=0xff; // LED = LED ^ 0XFF ^ 异或 1111 0000 ^ 1111 1111 = 0000 1111 LED取反

}

}



IE寄存器


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭