📄 ex4-9.c
字号:
#include <reg51.h>
#define TIMER0_COUNT 0xEE11 /* 10000h - ((12,000,000/(12*200))*/
code seven_seg[16] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
code scan[4] = {0X0E,0X0D,0X0B,0X07};
unsigned char counter[4] = {0, 0, 0, 0};
unsigned char timer0_tick, k = 0;
unsigned char gotkey();
unsigned char TOMD;
static void timer0_isr (void) interrupt 1
{
TR0 = 0;
TL0 = (TIMER0_COUNT & 0x00FF);
TH0 = (TIMER0_COUNT >> 8);
TR0 = 1;
P1 = seven_seg[counter[k]];
P3 = scan[k];
k++;
if (k == 4) k = 0;
timer0_tick++;
if (timer0_tick == 200) timer0_tick = 0;
}
static void timer0_initialize(void)
{
EA = 0;
timer0_tick = 0;
TR0 = 0;
TOMD &= 0XF0;
TOMD |= 0X01;
TL0 = (TIMER0_COUNT & 0x00FF);
TH0 = (TIMER0_COUNT >> 8);
PT0 = 0;
ET0 = 1;
TR0 = 1;
EA = 1;
}
void main(void)
{
unsigned char c=0;
char ch;
timer0_initialize();
do{
ch = gotkey();
for (c=3;c>0;c-- )
counter[c] = counter[c-1];
counter[0] = ch;
} while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -