counter.c

来自「C51单片机数码管显示通用接口显示模块源码奉献」· C语言 代码 · 共 58 行

C
58
字号
#include <reg51.h>
#include <absacc.h>
#include <p51.h>
#define uchar unsigned char
#define uint unsigned int
#define HI  238 // mode1 5ms
#define LO   0  // mode1 5ms 
char count;  // 外部输入计数值
char DATA_7SEG[10]={0x3f,0x06,0x5b,0x4f,0x66,
                   0x6d,0x7d,0x07,0x7f,0x6f};
char disp[4]; //四位数码管数据缓冲区

conv() //计数值为7段数码管数据
{
 disp[0]=DATA_7SEG[count/1000];
 disp[1]=DATA_7SEG[count/100%10];
 disp[2]=DATA_7SEG[count/10%10];
 disp[3]=DATA_7SEG[count%10];
}

void main()
{
  count=0;
  init_timer();
  while(1)
   {
     conv();
     output();
   }
}


void init_timer()
{
//计数器1模式1,计数器0模式1 
TMOD=0X51;
TH0=HI; //load conter initail value
IE=0x82;
TL0=LO;
TR0=1;
TR1=1;
}

interrupt(_TF0_)T0SER()
{
  TH0=HI;
  TL0=LO;
  deda++;
  if(deda==DEDA)
   { cplbit(P1.7);
     deda=0;
     count=TH1*256+TL1;
     TH1=TL1=0;
   }
// 由TO	输出方波测试信号
 cplbit(P3.4); 
}

⌨️ 快捷键说明

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