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

📄 led5322.c

📁 一个用于停车场收费系统中独立的LED显示屏的单片机代码
💻 C
📖 第 1 页 / 共 5 页
字号:
0x00,0x00,0x0C,0x18,0xFD,0x98,0xF8,0xD8,0x18,0x58,0xFE,0x18,0xFE,0x98,0x18,0xD8,
0x3C,0x58,0x7E,0x1E,0xDB,0xFE,0x9B,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,

/*--  文字:  技  --*/
/*--  黑体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x60,0x30,0x60,0x33,0xFC,0x33,0xFC,0xFC,0x60,0xFC,0x60,0x33,0xFC,0x3F,0xFC,
0xFD,0x88,0xF1,0x98,0x30,0xF0,0x30,0x60,0x30,0xF0,0x77,0x9E,0x66,0x06,0x00,0x00,
};
unsigned char code blkj[]={
/*--  文字:  百  --*/
/*--  华文彩云12;  此字体下对应的点阵为:宽x高=16x17   --*/
0x00,0x00,0x7F,0xFE,0x40,0x02,0x40,0x02,0x40,0x02,0x7C,0x7E,0x40,0x02,0x40,0x02,
0x47,0xE2,0x40,0x02,0x40,0x02,0x47,0xE2,0x40,0x02,0x40,0x02,0x7F,0xFE,0x00,0x00,

/*--  文字:  灵  --*/
/*--  华文彩云12;  此字体下对应的点阵为:宽x高=16x17   --*/
0x00,0x00,0x7F,0xFE,0x40,0x02,0x7F,0xE2,0x20,0x02,0x20,0x02,0x7F,0xE2,0x49,0xCE,
0x56,0x52,0x62,0x62,0x44,0x26,0x38,0x3C,0x40,0x82,0x81,0x81,0x86,0x61,0x78,0x1E,

/*--  文字:  科  --*/
/*--  华文彩云12;  此字体下对应的点阵为:宽x高=16x17   --*/
0x00,0x00,0x7F,0xDE,0x41,0x22,0x42,0x12,0x62,0x12,0x41,0xF2,0x41,0x22,0x46,0x12,
0x29,0x12,0x49,0xE1,0x49,0x01,0x46,0x01,0x63,0xE2,0x22,0x22,0x22,0x22,0x1C,0x3E,

/*--  文字:  技  --*/
/*--  华文彩云12;  此字体下对应的点阵为:宽x高=16x17   --*/
0x00,0x00,0x3C,0xF0,0x27,0x8E,0x66,0x02,0x86,0x02,0x82,0x02,0x67,0x8E,0x22,0x02,
0xC2,0x02,0x82,0x22,0x47,0x04,0x65,0x04,0x46,0x02,0x84,0x01,0xC4,0x72,0x7B,0x8E,
};


void timer0(void) interrupt 1 {
TH0=0x0a;
TL0=0x6e;             //一天可能慢上60秒;已改20030213
trupt=trupt+1;
if (trupt==53) {trupt=0;
                second++;
                if (second>59) {minute++;
                                second=0;
                                if (minute>59) {minute=0;
                                                hour++;
                                                if (hour>23) hour=0;
                                                }
                               }
               }
}


void receve23(void) interrupt 4{
unsigned char data sbufbak;
sbufbak=SBUF;
RI=0;
if (sbufcount) {send[sendno++]=sbufbak;
                sbufcount--;
                if (sbufcount!=0) {}
                   else {come=1;
                         if (send[0]==0xb3) {come=0;second=send[1]; minute=send[2]; hour=send[3];}
                        }
               }
    else if ((0xf0<sbufbak)&&(sbufbak<0xf6)) {               /*打开盒子*/
                                              sbufcount=sbufbak&0x0f;
                                              sendno=0;
                                              come=0;
                                              }
}

void bdelay(void)
{unsigned int i;
_nop_;
_nop_;
_nop_;
_nop_;
dog=!dog;
for (i=0;i<30000;i++) {}
dog=!dog;
for (i=0;i<30000;i++) {}
dog=!dog;
_nop_;
_nop_;
}
void up(spi,x)
unsigned char spi[],x;
{
unsigned char ram,zi,pp,lie,count,lieram;
for (lie=0;lie<16;lie++) {
       if (lie<x+2) { for (count=11;count>0;count--) {
                                                     clk=0;
                                                     sda=1;
                                                     clk=1;
                                                      }
                      for (zi=0;zi<0xff;zi++) {}
                    }
          else {
       for (zi=3;zi!=0xff;zi--) {
                          for (count=3;count>0;count--) {
                                                          clk=0;
                                                          sda=1;
                                                          clk=1;
                                                          }
                                 pp=zi*32+lie*2+1;
                                 ram=spi[pp];
                                 for (count=8;count>0;count--) {
                                                                clk=0;
                                                                ram>>=1;
                                                                sda=!CY;
                                                                clk=1;
                                                                }
                                 ram=spi[pp-1];
                                 for (count=8;count>0;count--) {
                                                                clk=0;
                                                                ram>>=1;
                                                                sda=!CY;
                                                                clk=1;
                                                                }
                                 }

                          for (count=4;count>0;count--) {
                                                          clk=0;
                                                          sda=1;
                                                          clk=1;
                                                          }
              }   //if (lie<x+2) {
       clk=0;
       if (lie<x+2) gg=1;
          else gg=0;
       enable=1;
       enable=1;
       enable=0;
       lieram=lie-x;
       lieram|=0xf0;
       P1&=lieram;
       lieram=lie-x;
       P1|=lieram;
                    }
for (count=80;count>0;count--) {
                                 clk=0;
                                 sda=1;
                                  clk=1;
                                }
       enable=1;
       enable=0;
gg=0;
}



void disslowly(spi,y)
unsigned char spi[],y;
{
unsigned char ram,zi,lie,pp,count,lieram,yram;
bit b;
for (lie=0;lie<16;lie++) {
       yram=0;
       for (zi=3;zi!=0xff;zi--) {
                          for (count=3;count>0;count--) {
                                                          clk=0;
                                                          sda=1;
                                                          clk=1;
                                                          }
                                 pp=zi*32+lie*2+1;
                                 ram=spi[pp];
                                 for (count=8;count;count--) {
                                                                clk=0;
                                                                ram>>=1;
                                                                b=!CY;
                                                                if (yram++>y) sda=b;
                                                                   else sda=1;
                                                                clk=1;
                                                                }
                                 ram=spi[pp-1];
                                 for (count=8;count>0;count--) {
                                                                clk=0;
                                                                ram>>=1;
                                                                b=!CY;
                                                                if (yram++>y) sda=b;
                                                                   else sda=1;
                                                                clk=1;
                                                                }
                                 }

                          for (count=4;count>0;count--) {
                                                          clk=0;
                                                          sda=1;
                                                          clk=1;
                                                          }
       clk=0;
       gg=1;
       gg=1;
       gg=1;
       gg=1;
       gg=1;
       enable=1;
       enable=1;
       enable=0;
       lieram=lie;
       lieram|=0xf0;
       P1&=lieram;
       lieram=lie;
       P1|=lieram;
       gg=0;
                     }

}



void disdh(spi,ll)
unsigned char spi[];
signed char ll;
{
bit ok,zf;
unsigned char rrambak,rram;
unsigned char ram,zi,lie,pp,count,lieram;
if (ll>=0) {rrambak=ll;zf=1;}
    else {rrambak=-ll;zf=0;}
for (lie=0;lie<16;lie++) {
       ok=0;rram=0;
       if (!zf) for (count=rrambak;count>0;count--) {
                                        clk=0;
                                        sda=1;
                                        clk=1;
                                        _nop_();
                                        }
       if (!zf) for (zi=11;(zi!=0xff)&&!ok;zi--) {
                                         ram=spi[zi*16+lie];
                                         for (count=8;(count>0)&&!ok;count--) {
                                                                               if (rram++>=(12*8-1-rrambak)) ok=1;
                                                                               clk=0;
                                                                               ram>>=1;
                                                                               sda=!CY;
                                                                               clk=1;
                                                                               _nop_();
                                                                               }
                                        }
       if (zf) for (zi=11;(zi!=0xff)&&!ok;zi--) {
                                         pp=zi*16+lie;
                                         ram=spi[pp];
                                         for (count=8;(count>0)&&!ok;count--) {
                                                                               if (rram++>=(11*8-80+rrambak)) {
                                                                                                               clk=0;
                                                                                                               ram>>=1;
                                                                                                               sda=!CY;
                                                                                                               clk=1;
                                                                                                               _nop_();
                                                                                                               _nop_();
                                                                                                                }
                                                                               }
                                        }
        if (zf) for (count=rrambak;count>0;count--) {
                                        clk=0;
                                        sda=1;
                                        clk=1;
                                        _nop_();
                                        }
       clk=0;
       gg=1;
       gg=1;
       gg=1;
       enable=1;
       enable=1;
       enable=0;
       lieram=lie;
       lieram|=0xf0;
       P1&=lieram;
       lieram=lie;
       P1|=lieram;
       gg=0;
                     }

⌨️ 快捷键说明

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