|
《定时器中断实现秒闪》
🕰️ 定时器初始化 [backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]c
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
TMOD = 0x01; // 定时器0模式1TH0 = 0x3C; // 50ms初值(12MHz晶振)TL0 = 0xB0; ET0 = 1; // 允许定时器0中断EA = 1; // 总中断允许TR0 = 1; // 启动定时器
🔢 中断服务程序 [backcolor=var(--ds-md-code-block-banner-wrap-background-color)][color=var(--dsr-text-2)]c
[color=var(--dsr-icon-fg-1)][color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
复制
[color=var(--button-text-color)][backcolor=var(--ds-button-color)][color=var(--button-icon-color)]
下载
void timer0() interrupt 1 { static unsigned char count = 0; TH0 = 0x3C; // 重装初值 TL0 = 0xB0; if(++count >= 20) { // 20*50ms=1s count = 0; LED = !LED; // 每秒翻转 }}
⚠️ 避坑提醒
|
|