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

📄 ex4-4.c

📁 < 嵌入式C语言程序设计>>一书的源代码
💻 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 + -