📄 main.c
字号:
#include<reg52.h>
#define T0_INTERRUPT 1 //T0中断向量号
//共阳极数码管7段码
unsigned char seg[] = {0x3F,0x06}; //简化只显示0和1
unsigned char SegScan[] = {0xFE,0xFD,0xFB,0xF7,0xEF,0xDF};//6个数码管控制
void Init_T0()
{
TMOD &= 0xF0;
TMOD |= 0x01; //16位定时器模式
TH0 = 0xFC;
TL0 = 0x18;
EA = 1; //开全局中断
ET0 = 1; //允许T0中断
TR0 = 1; //启动定时器
}
void Display() //扫描显示
{
static unsigned char i = 0;
P2 = SegScan[i];
P1 = 0xFF - seg[i%2]; //转换成共阴极数码管,seg[i%2]可以在其他函数进行更新
i++;
if(i>5) i = 0;
}
void main(void)
{
Init_T0();
while(1)
{
PCON |= 0x01;
}
}
void T0_Interrupt() interrupt T0_INTERRUPT
{
static unsigned char i = 0;
TH0 = 0xFC;
TL0 = 0x18;
i++;
TF0 = 0;
if(i == 3) //3毫秒扫描一次
{
Display();
i = 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -