#include <REGX52.H>
sbit led=P2^0;
unsigned int t;
void main()
{
void Timer0_Init() ;
while(1)
{
if(t==1000)
{
led=!led;
t=0;
}
}
}
void Timer0_Init() //1毫秒@12.000MHz
{
TMOD &= 0xF0; //设置定时器模式
TMOD |= 0x01; //设置定时器模式
TL0 = 0x18; //设置定时初始值
TH0 = 0xFC; //设置定时初始值
TR0 = 1; //定时器0开始计时
ET0 = 1; //使能定时器0中断
}
void Timer0_Isr() interrupt 1
{
TL0 = 0x18; //设置定时初始值
TH0 = 0xFC; //设置定时初始值
t++;
}
基于定时器中断实现LED的闪烁,但LED没有反应
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- ☞黑心萝卜三条杠☜ 2023-02-17 18:20关注
兄弟,定时器中断没有开,定时器函数需要这样改
void Timer0_Init() //1毫秒@12.000MHz { TMOD &= 0xF0; //设置定时器模式 TMOD |= 0x01; //设置定时器模式 TL0 = 0x18; //设置定时初始值 TH0 = 0xFC; //设置定时初始值 TR0 = 1; //定时器0开始计时 ET0 = 1; //使能定时器0中断 EA = 1; ET1 = 1; }
EA等于1表示允许中断,也就是中断的总开关;ET1是一个分开关,等于1也表示允许中断;二者关系相当于学校大门与学校的教学楼大门,要进入教学楼,你要先进学校大门,在经过教学楼大门,如果学校或者是教学楼大门没开,你怎么也进不去,只有同时打开才能进入。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 smptlib使用465端口发送邮件失败
- ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
- ¥15 对于squad数据集的基于bert模型的微调
- ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
- ¥20 steam下载游戏占用内存
- ¥15 CST保存项目时失败
- ¥15 树莓派5怎么用camera module 3啊
- ¥20 java在应用程序里获取不到扬声器设备
- ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
- ¥15 Attention is all you need 的代码运行