您现在的位置: 主页 > MCU > 单片机技术应用 > 定时器的应用---中断方式---让8个LED灯,左右各4个来回亮 -
本文所属标签:
为本文创立个标签吧:

定时器的应用---中断方式---让8个LED灯,左右各4个来回亮 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-09 

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

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

本文引用地址: http://www.21ic.com/app/mcu/201808/784132.htm

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

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

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


#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寄存器




              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > 定时器的应用---中断方式---让8个LED灯,左右各4个来回亮 -
 

"定时器的应用---中断方式---让8个LED灯,左右各4个来回亮 -"的相关文章

网站地图

围观()