当前位置:首页 > 单片机 > 单片机
[导读]中断方式比较特殊,需要使用单片机内部的中断处理机制,同时指定中断函数。#include sbit LED = P0^2;unsigned int vT = 0;void main(){ LED = 0; TMOD = 0x01; TH0 = 0x3C; // 计数初值3CB0H = 15536 (65536-15

中断方式比较特殊,需要使用单片机内部的中断处理机制,同时指定中断函数。


#include


sbit LED = P0^2;

unsigned int vT = 0;


void main()

{

LED = 0;

TMOD = 0x01;

TH0 = 0x3C; // 计数初值3CB0H = 15536 (65536-15536=50000 * 1us = 50ms)

TL0 = 0xB0;

ET0 = 1; // EA即IE^1 等于1时申请中断定时器0中断打开

EA = 1; // 总中断打开

TR0 = 1; // 启动定时器0

while(1);

}


void MyInterrupt(void) interrupt 1 // 中断服务程序

{

vT++;

if (vT == 20) // 20 * 50ms = 1000ms = 1s

{

LED = !LED;

vT = 0;

TH0 = 0x3C; // 恢复计数初值

TL0 = 0xB0;

}

}


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