serko2.c

来自「串口通信小程序」· C语言 代码 · 共 120 行

C
120
字号
//仍有疑问
#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
uint temp,flag;
uchar temph,templ;
uchar code table[]={
        0x3f,0x06,0x5b,0x4f,0x66,
        0x6d,0x7d,0x07,0x7f,0x6f,
        0x77,0x7c,0x39,0x5e,0x79,
        0x71};
void delay()
{
   uchar a,b;
   for(a=50;a>0;a--)
      for(b=10;b>0;b--);

}
void display(uint q,uint b,uint s,uint g)
{
   P0=table[q];
   dula=1;
   dula=0;
   P0=0xfe;
   wela=1;
   wela=0;
   delay();
   P0=0xff;
   wela=1;
   wela=0;

   P0=table[b];
   dula=1;
   dula=0;
   P0=0xfd;
   wela=1;
   wela=0;
   delay();
   P0=0xff;
   wela=1;
   wela=0;

   P0=table[s];
   dula=1;
   dula=0;
   P0=0xfb;
   wela=1;
   wela=0;
   delay();
   P0=0xff;
   wela=1;
   wela=0;

   P0=table[g];
   dula=1;
   dula=0;
   P0=0xf7;
   wela=1;
   wela=0;
   delay();
   P0=0xff;
   wela=1;
   wela=0;
   
}
void main()
{
   TMOD=0X20;
   TH1=0XFD;
   TL1=0XFD;
   TR1=1;
   ES=1;
   SM0=0;
   SM1=1;
   REN=1;
   EA=1;
   while(1)
   {
     while(flag==1)
     {
       
      display(temp/4096,temp%4096/256,temp%256/16,temp%16);
     }
   }
   
}

void seri() interrupt 4
{
   uchar count;

      temph=SBUF;
      if(RI==1)count=1;
      RI=0;
   if(count==1)
    {
      templ=SBUF;
      RI=0;
      count=0;
    
      temp=temph*256+templ;
      flag=1;
     }
   else
     {
       temp=0x0000;
       flag=1;
     }
}
     
   
   
   
   
   
   

⌨️ 快捷键说明

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