📄 ex4-4.c
字号:
/*
标题:范例4-4
版本:1.0
Target:89S51
程序描述:这个程序利用89S51控制一颗共阳七段显示器
,然后通过Timer 0的控制不停地显示0到9 */
/* ***************************************************** */
#include <REGX51.H>
#define TIMER0_COUNT 0xEE11 /*10000h-(12,000,000/(12*200))*/
const seven_seg[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,
0X80,0X90};
unsigned char timer0_tick,i=0;
static void timer0_isr(void) interrupt TF0_VECTOR using 1
{
TR0=0;
TL0=(TIMER0_COUNT & 0x00FF);
TH0=(TIMER0_COUNT >> 8);
TR0=1;
timer0_tick++;
if (timer0_tick==200) {
i++;
if(i==10) i=0;
timer0_tick=0;
P1=seven_seg[i];
}
}
static void timer0_initialize(void)
{
EA=0; /* 设定系统不接受所有的中断 */
timer0_tick=0;
TR0=0; /* 关闭Timer0 */
TMOD =0x01; /* 设定计时器0为16位的工作模式 */
TL0=(TIMER0_COUNT & 0x00FF); /* 设定TL0的数值 */
TH0=(TIMER0_COUNT >> 8); /* 设定TH0的数值 */
PT0=0; /* 设定计时器0有比较高的优先级 */
ET0=1; /* 设定接受Timer0的中断 */
TR0=1; /* 启动Timer0 */
EA=1; /* 设定系统接受中断 */
}
void main (void) {
timer0_initialize();
while (1); /* 无穷循环*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -