⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 t0中断方式定时-每秒钟使p10输出状态发生一次反转.c

📁 北航新c51单片机实验源代码
💻 C
字号:
#include <reg51.h>
#define Tick   10000     // 10000 x 100μs = 1s
#define T100us (256-50)  // 100us时间常数(6M)

unsigned int C100us;     // 100μs计数单元
bit LEDBuf;
sbit LED = P1^0;

void T0Int() interrupt 1 {  // T0中断服务程序
  C100us--;
  if (C100us == 0) {
    C100us = Tick;     // 100us计数器为0, 重置计数器
    LEDBuf = !LEDBuf;  // 取反LED
  }
}

void main() {
  TMOD = 0x02;   // 设置T0为工作方式2, 定时器
  TH0  = T100us;
  TL0  = T100us;
  IE   = 0x82;   // EA=1, IT0 = 1
  LEDBuf = 0;
  LED    = 0;
  C100us = Tick;
  TR0  = 1;      // 开始定时
  while (1) {
    LED = LEDBuf;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -