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

📄 51xx.c

📁 Keil正式中文版.rar
💻 C
字号:
#include <ldy.h>
#define rs p34
#define r_w p35
#define e p33
#define T 0x54
#define E 0x45
#define S 0x53
#define equal 0x3d
#define Y 0x59
#define J 0x4a
#define I 0x49
#define N 0x4e
#define G 0x47
#define O 0x4f
#define K 0x4b
#define D 0x44
#define V 0x56
#define L 0x4c
#define M 0x4d
#define R 0x52
#define zero 0x30
#define two 0x32
#define three 0x33
#define four 0x34
#define nine 0x39
#define P 0x50
#define A 0x41
#define B 0x42
#define D 0x44
#define space 0x20

#define uchar unsigned char
#define uint unsigned int 
#define ulong unsigned long

uchar  number[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
uchar  led[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90,0x88,0x8c};
void delay(unsigned long v)
 {
  while(v!=0)v--;
 }
void dlms()
 {
 uchar i;
    for(i=200;i>0;i--){}
 }
uchar bf_and_ac() //read busy and adrss counter
 {
  uchar x;
  r_w=0;
   rs=0;
    e=0;
        delay(100);
  r_w=1;
    e=1;
        delay(100);
    x=p1;
    e=0;
  r_w=0;
        return(0);
 }
void w_code(uchar order)
 {
  uchar x;
    x=bf_and_ac();
  while((x&0x80)==0x80)
     {
      x=bf_and_ac();
     }
    r_w=0;
      e=1;
     p1=order;
      e=0;
    r_w=0;
 }
void w_data(uchar su)
 {
   uchar x;
   x=bf_and_ac();
   while((x&0x80)==0x80)
    {
     x=bf_and_ac();
    }
   r_w=0;
    rs=1;
     e=1;
    p1=su;
     e=0;
   r_w=0;
 }
uchar r_data()
 {
   uchar x;
    x=bf_and_ac();
    while((x&0x80)==0x80)
     {
       x=bf_and_ac();
     }
    r_w=0;
     rs=1;
      e=1;
      x=p1;
      e=0;
    r_w=0;
     return(x);
 }
void w_ram(uchar adrss,uchar su,uchar length)
 {
    uchar i;
    w_code(adrss);
    for(i=0;i<length;i++)
    w_data(su);
 }
void init()
 {
   w_code(0x38);
   delay(1000);
   w_code(0x01);
   delay(1000);
   w_code(0x06);
   delay(1000);
   w_code(0x0e);
 }
void display_good(unsigned long num_good)
 {
   uchar y=0;
   unsigned long y1=0;
     p31=0;
   w_ram(0x85,space,0x01);
   w_ram(0x86,O,0x01);
   w_ram(0x87,K,0x01);
      y=num_good/10000;
     y1=num_good%10000;
   w_ram(0xc3,number[y],0x01);
      y=y1/1000;
     y1=y1%1000;
   w_ram(0xc4,number[y],0x01);
      y=y1/100;
     y1=y1%100;
   w_ram(0xc5,number[y],0x01);
      y=y1/10;
   w_ram(0xc6,number[y],0x01);
      y=y1%10;
   w_ram(0xc7,number[y],0x01);
 }
void display_bad(unsigned int num_bad)
 {
   uchar y=0;
   unsigned long y1=0;
       p31=1;
   w_ram(0x85,B,0x01);
   w_ram(0x86,A,0x01);
   w_ram(0x87,D,0x01);
         y=num_bad/100;
        y1=num_bad%100;
   w_ram(0xcd,number[y],0x01);
         y=y1/10;
   w_ram(0xce,number[y],0x01);
         y=y1%10;
   w_ram(0xcf,number[y],0x01);
 }
uchar kbscan()
 {
    uchar lie4=0;
    uchar hang2=0;
             p3=0xf0;
    if((p3&0xf0)!=0xf0)
      {
        dlms();
        if((p3&0xf0)!=0xf0)
         {
           lie4=~(p3|0x0f);
             p3=0xfe;
                      if((p3&0xf0)!=0xf0)hang2=0x01;
             p3=0xfd;
                      if((p3&0xf0)!=0xf0)hang2=0x02;
             p3=0xfb;
                      if((p3&0xf0)!=0xf0)hang2=0x04;
             p3=0xf7;
                      if((p3&0xf0)!=0xf0)hang2=0x08;
                      if(hang2!=0)return(lie4+hang2);
        else return(0);
          }
       }
     else return(0);
 } 
void main()
 {
    uchar l0,l1,l2;
    bit flag;
    uint led_number=0;
    uchar lcd_value=0;
    uint number_replace=0;
    unsigned long good=0;
    unsigned int error=0;
    init();
   while(1)
     {
       l1=kbscan();
       if(l1==0x21){led_number=1;lcd_value=1;p3=p2=p1=led[0];p0=led[1];delay(10000);}
       else if(l1==0x41){led_number=2;lcd_value=2;p3=p2=p1=led[0];p0=led[2];delay(10000);}
       else if(l1==0x81){led_number=3;lcd_value=3;p3=p2=p1=led[0];p0=led[3];delay(10000);}
       else if(l1==0x22){led_number=4;lcd_value=4;p3=p2=p1=led[0];p0=led[4];delay(10000);}
       else if(l1==0x42){led_number=5;lcd_value=5;p3=p2=p1=led[0];p0=led[5];delay(10000);}
       else if(l1==0x82){led_number=6;lcd_value=6;p3=p2=p1=led[0];p0=led[6];delay(10000);}
       else if(l1==0x24){led_number=7;lcd_value=7;p3=p2=p1=led[0];p0=led[7];delay(10000);}
       else if(l1==0x44){led_number=8;lcd_value=8;p3=p2=p1=led[0];p0=led[8];delay(10000);}
       else if(l1==0x84){led_number=9;lcd_value=9;p3=p2=p1=led[0];p0=led[9];delay(10000);}
       else if(l1==0x28){led_number=0x0a;lcd_value=0x2a;p3=p2=p1=led[0];p0=led[10];delay(10000);}
       else if(l1==0x48){led_number=0;lcd_value=0;p3=p2=p1=led[0];p0=led[0];delay(10000);}
       else if(l1==0x88){led_number=0x0b;lcd_value=0x23;p3=p2=p1=led[0];p0=led[11];delay(10000);}
       else dlms();
                   l0=led_number/1000;
                     number_replace=led_number%1000;
       p3=led[l0];
                   l0=number_replace/100;
                     number_replace=number_replace%100;
       p2=led[l0];
                   l0=number_replace/10;
       p1=led[l0];
                   l0=number_replace%10;
       p0=led[l0];
                   if(led_number>9999)led_number=0;
                   else led_number=led_number+1;
            delay(3000);
}





}

⌨️ 快捷键说明

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