c_modul.c

来自「这是《Keil Cx51 V7.0单片机高级语言编程与uVision2应用实践》」· C语言 代码 · 共 40 行

C
40
字号

#include <stdio.h>
#include <reg51.h>
unsigned long msec;                   /* 毫秒计数器变量 */
unsigned char intcycle;               /* 中断次数计数器变量 */

/**********************************************/
/*             T0 中断服务函数                */
/*       采用12MHz晶振时每250微秒执行一次     */
/**********************************************/
timer0() interrupt 1 using 1   {       
  if (++intcycle == 4)  {             /* 1 msec = 4* 250 usec  */
    intcycle = 0;
    msec++;
  }
}

/***************************/
/*      T0 初始化函数      */
/***************************/
tinit ()  {
  TH0 = -250;                        
  TL0 = -250;
  TMOD = TMOD | 0x02;                
  TR0 = 1;                           
  ET0 = 1;                           
  EA  = 1;                           
}

void main(void) {
  SCON = 0x52;    /* 串行口初始化为: 2400 BAUD @12MHz */
  TMOD = 0x20;    
  TCON = 0x69;    
  TH1 =  0xf3;    
  tinit ();       /* 调用 T0 初始化函数 */
  while(1)  {
    printf ("MSEC=%lu\r", msec);
  }
}

⌨️ 快捷键说明

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