主函数中没有调用led可是怎么能实现led灯亮灭呢?我看不懂中断什么的,#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义sbit LED=P1^2; //定义LED端口/*------------------------
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 17:34:46
主函数中没有调用led可是怎么能实现led灯亮灭呢?我看不懂中断什么的,#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义sbit LED=P1^2; //定义LED端口/*------------------------
主函数中没有调用led可是怎么能实现led灯亮灭呢?我看不懂中断什么的,
#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
sbit LED=P1^2; //定义LED端口
/*------------------------------------------------
定时器初始化子程序
------------------------------------------------*/
void Init_Timer0(void)
{
TMOD |= 0x01;\x05 //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响\x05\x05
TH0=0x00;\x05 //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出
TL0=0x00;
EA=1; //总中断打开
ET0=1; //定时器中断打开
TR0=1; //定时器开关打开
}
/*------------------------------------------------
主程序
------------------------------------------------*/
main()
{
Init_Timer0();
while(1);
}
/*------------------------------------------------
定时器中断子程序
------------------------------------------------*/
void Timer0_isr(void) interrupt 1 using 1
{
TH0=0x00;\x05\x05 //重新赋值
TL0=0x00;
LED=~LED; //指示灯反相,可以看到闪烁
}
主函数中没有调用led可是怎么能实现led灯亮灭呢?我看不懂中断什么的,#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义sbit LED=P1^2; //定义LED端口/*------------------------
就是说
main函数里面Init_timer0()对定时器初始化了
就是每计数65535时
会进入中断函数
中断函数里面
对led灯进行控制
所以之后只要用while(1)使程序一直运行
定时器就会按照自身的规则
计数——中断——计数——中断运行下去了