一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 2389|回复: 4

编程高手帮个忙

[复制链接]
发表于 2011-12-5 14:16 | 显示全部楼层 |阅读模式
谁帮忙简化一下这段程序?
#include<reg52.h>
#define uchar unsigned char
uchar hang[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0xfc,0x0d,0xfe,0x0f};
sbit R=P1^3;
sbit OE=P2^0;
sbit CLK=P1^6;
sbit STB=P1^5;
char code HZ[];
char HC[8];
uchar zhuwei[8]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
void delay(int z) //延时函数
{
int x,y;
for(x=0;x<z;x++)
for(y=0;y<110;y++);
}
void WriteByte(char dat)//写一个字节数据
{
char i;
for(i=0;i<8;i++)
{
dat=dat>>1;
R=CY;
CLK=0;
CLK=1;
}
}

void main()//主函数
{
  
  int num;
   uchar a,b,c,d;
    while(1)
      {
        uchar zi;
        int xh;

   for(zi=0;zi<3;zi++)
         {
     for (c=0;c<8;c++)
     {
            for(xh=0;xh<10;xh++)
            {
              for(num=0;num<16;num++)
               {
                 
     for(b=0;b<4;b++)
      {
       HC[2*b]=(HZ[2*num+128*zi+32*b]);
       HC[2*b+1]=(HZ[2*num+1+128*zi+32*b]);
      }
        WriteByte(HC[0]|zhuwei[c]);
     WriteByte(0xff);
     WriteByte(0xff);
     WriteByte(0xff);
     WriteByte(0xff);
     WriteByte(0xff);
     WriteByte(0xff);
     WriteByte(0xff);
   
                 P0=hang[num];
                 STB=1;
     STB=0;
     
               }
             }
  
   
               for (c=0;c<8;c++)
     {
            for(xh=0;xh<10;xh++)
            {
              for(num=0;num<16;num++)
               {
                 
     for(b=0;b<4;b++)
      {
       HC[2*b]=(HZ[2*num+128*zi+32*b]);
       HC[2*b+1]=(HZ[2*num+1+128*zi+32*b]);
      }
      WriteByte(HC[0]);
        WriteByte(HC[1]|zhuwei[c]);
     
     WriteByte(0xff);
     WriteByte(0xff);
     WriteByte(0xff);
     WriteByte(0xff);
     WriteByte(0xff);
     WriteByte(0xff);
   
                 P0=hang[num];
                 STB=1;
     STB=0;
     
               }
             }
   }  
            for (c=0;c<8;c++)
     {
            for(xh=0;xh<10;xh++)
            {
              for(num=0;num<16;num++)
               {
                 
     for(b=0;b<4;b++)
      {
       HC[2*b]=(HZ[2*num+128*zi+32*b]);
       HC[2*b+1]=(HZ[2*num+1+128*zi+32*b]);
      }
      WriteByte(HC[0]);
      WriteByte(HC[1]);
        WriteByte(HC[2]|zhuwei[c]);
     
     WriteByte(0xff);
     WriteByte(0xff);
     WriteByte(0xff);
     WriteByte(0xff);
     WriteByte(0xff);
     
   
                 P0=hang[num];
                 STB=1;
     STB=0;
     
               }
             }
   }
   
            for (c=0;c<8;c++)
     {
            for(xh=0;xh<10;xh++)
            {
              for(num=0;num<16;num++)
               {
                 
     for(b=0;b<4;b++)
      {
       HC[2*b]=(HZ[2*num+128*zi+32*b]);
       HC[2*b+1]=(HZ[2*num+1+128*zi+32*b]);
      }
      WriteByte(HC[0]);
      WriteByte(HC[1]);
      WriteByte(HC[2]);
        WriteByte(HC[3]|zhuwei[c]);
     
   
     
     WriteByte(0xff);
     WriteByte(0xff);
     WriteByte(0xff);
     WriteByte(0xff);
   
                 P0=hang[num];
                 STB=1;
     STB=0;
     
               }
             }
   }
   
            for (c=0;c<8;c++)
     {
            for(xh=0;xh<10;xh++)
            {
              for(num=0;num<16;num++)
               {
                 
     for(b=0;b<4;b++)
      {
       HC[2*b]=(HZ[2*num+128*zi+32*b]);
       HC[2*b+1]=(HZ[2*num+1+128*zi+32*b]);
      }
      WriteByte(HC[0]);
      WriteByte(HC[1]);
      WriteByte(HC[2]);
      WriteByte(HC[3]);
      
        WriteByte(HC[4]|zhuwei[c]);
     
     WriteByte(0xff);
     WriteByte(0xff);
     WriteByte(0xff);
   
                 P0=hang[num];
                 STB=1;
     STB=0;
     
               }
             }
   }
   
            for (c=0;c<8;c++)
     {
            for(xh=0;xh<10;xh++)
            {
              for(num=0;num<16;num++)
               {
                 
     for(b=0;b<4;b++)
      {
       HC[2*b]=(HZ[2*num+128*zi+32*b]);
       HC[2*b+1]=(HZ[2*num+1+128*zi+32*b]);
      }
      WriteByte(HC[0]);
      WriteByte(HC[1]);
      WriteByte(HC[2]);
      WriteByte(HC[3]);
      WriteByte(HC[4]);
        WriteByte(HC[5]|zhuwei[c]);
     
     WriteByte(0xff);
     WriteByte(0xff);
     
   
                 P0=hang[num];
                 STB=1;
     STB=0;
     
               }
             }
   }
   
            for (c=0;c<8;c++)
     {
            for(xh=0;xh<10;xh++)
            {
              for(num=0;num<16;num++)
               {
                 
     for(b=0;b<4;b++)
      {
       HC[2*b]=(HZ[2*num+128*zi+32*b]);
       HC[2*b+1]=(HZ[2*num+1+128*zi+32*b]);
      }
      WriteByte(HC[0]);
      WriteByte(HC[1]);
      WriteByte(HC[2]);
      WriteByte(HC[3]);
      WriteByte(HC[4]);
      WriteByte(HC[5]);
        WriteByte(HC[6]|zhuwei[c]);
     
     WriteByte(0xff);
   
   
   
                 P0=hang[num];
                 STB=1;
     STB=0;
     
               }
             }
   }
   
            for (c=0;c<8;c++)
     {
            for(xh=0;xh<10;xh++)
            {
              for(num=0;num<16;num++)
               {
                 
     for(b=0;b<4;b++)
      {
       HC[2*b]=(HZ[2*num+128*zi+32*b]);
       HC[2*b+1]=(HZ[2*num+1+128*zi+32*b]);
      }
      WriteByte(HC[0]);
                  for (c=0;c<8;c++)
     {
            for(xh=0;xh<10;xh++)
            {
              for(num=0;num<16;num++)
               {
                 
     for(b=0;b<4;b++)
      {
       HC[2*b]=(HZ[2*num+128*zi+32*b]);
       HC[2*b+1]=(HZ[2*num+1+128*zi+32*b]);
      }
      WriteByte(HC[0]);
       WriteByte(HC[1]);
        WriteByte(HC[2]);
      WriteByte(HC[3]);
       WriteByte(HC[4]);
        WriteByte(HC[5]);
         WriteByte(HC[6]);
        WriteByte(HC[7]|zhuwei[c]);
   
                 P0=hang[num];
                 STB=1;
     STB=0;
     
               }
             }
   }
   
     
   
                 P0=hang[num];
                 STB=1;
     STB=0;
     
               }
             }
   }
   
     }
    }

     }
}
char code HZ[]=
{
0x7F,0xFF,0x7F,0xE0,0x7F,0xFF,0x03,0xC0,0x7B,0xDF,0x7B,0xF9,0x0B,0xEE,0x7B,0xEF,
0xFB,0xE0,0xFB,0xFF,0x3B,0xF8,0xBB,0xFB,0xBB,0xFB,0xDD,0xDB,0xED,0xDB,0xF6,0xC7,/*"虎",0*/
0xF7,0xFF,0x7B,0x80,0x41,0xFF,0x5D,0xDF,0x41,0xDD,0x5D,0xEB,0x41,0xEB,0x5D,0xF7,
0x5D,0xF7,0x40,0xEB,0x4F,0xEB,0x57,0xDD,0x5B,0xDE,0x5D,0xFF,0x56,0x80,0xEF,0xFF,/*"躯",1*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x80,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*"一",2*/
0x03,0xE0,0x7F,0xFF,0x01,0x80,0x7D,0xBF,0x46,0xD1,0x7F,0xFF,0x47,0xF1,0xFF,0xFF,
0x03,0xC0,0xFB,0xFF,0x0B,0xE0,0xFB,0xFF,0x03,0xC0,0xDB,0xED,0xDD,0xF3,0x9E,0x8F,/*"震",3*/
0xFF,0xFF,0x01,0xC0,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x03,0xE0,
0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x00,0x80,0xFF,0xFF,/*"王",4*/
0x03,0xE0,0x7F,0xFF,0x01,0x80,0x7D,0xBF,0x46,0xD1,0xBB,0xFF,0x01,0xC1,0xBB,0xDD,
0x83,0xDD,0xEF,0xC1,0x01,0xDD,0x6D,0xDD,0x01,0xC1,0xEF,0xDD,0x00,0xD5,0xEF,0xEE,/*"霸",5*/
0xBF,0xFF,0x7F,0xFF,0x7F,0xFF,0xFF,0xFF,0x01,0xE0,0xFF,0xF7,0xFF,0xFB,0xFF,0xFD,
0xFF,0xFE,0x7F,0xFF,0xBF,0xFF,0xDF,0xFF,0xE7,0xFF,0xDB,0xFF,0x3D,0x80,0xFF,0xFF,/*"之",6*/
0xF7,0xFF,0xF7,0xFF,0x03,0xC0,0xFB,0xFF,0x0D,0xF0,0xFE,0xFF,0x03,0xF0,0xFF,0xF7,
0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xAF,0xFF,0xAF,0xFF,0x9F,0xFF,0xBF,/*"气",7*/
0xFF,0xFF,0x07,0xE0,0xF7,0xEF,0xF7,0xEF,0xF7,0xEF,0x07,0xE0,0xF7,0xED,0xF7,0xFD,
0xF7,0xFB,0x3B,0xF7,0xFB,0xEE,0xFD,0x9F,0xCE,0xFF,0x3F,0xFF,0xFF,0xFE,0xFF,0xFD,/*"尽",8*/
0xFF,0xFF,0x07,0xF0,0xF7,0xF7,0xF7,0xF7,0x07,0xF0,0xF7,0xF7,0xF7,0xF7,0x07,0xF0,
0xDF,0xFD,0xDD,0xDD,0xDB,0xDD,0xD7,0xED,0xD7,0xF5,0xDF,0xFD,0x00,0x80,0xFF,0xFF,/*"显",9*/
0xFF,0xFF,0x03,0xF0,0xBF,0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0xFF,0x01,0xC0,0xDF,0xFE,
0xDF,0xFE,0xDF,0xFE,0xEF,0xFE,0xEF,0xFE,0xF7,0xDE,0xFB,0xDE,0xFD,0xC1,0xFE,0xFF,/*"无",10*/
0xFF,0xFD,0x3B,0xE0,0xB7,0xED,0x37,0xE0,0xFF,0xFD,0x0F,0x80,0xF0,0xFF,0x37,0xE0,
0xB7,0xEF,0xB7,0xED,0xB7,0xED,0xF7,0xFA,0x77,0xF7,0xAB,0xEF,0x1D,0x80,0xFF,0xFF,/*"遗",11*/
};
发表于 2011-12-5 15:16 | 显示全部楼层
本帖最后由 shqi2003 于 2011-12-5 15:20 编辑

程序不会优化,不过试验后效果不错,另外这里需要改一改。
uchar hang[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0xfc,0x0d,0xfe,0x0f};红色部分表示在13行和15行会不显示。


图.jpg

图1.jpg
回复

使用道具 举报

 楼主| 发表于 2011-12-5 15:40 | 显示全部楼层
我的能显示啊
回复

使用道具 举报

发表于 2011-12-9 09:24 | 显示全部楼层
是很正常啊,就是显示太慢.
回复

使用道具 举报

 楼主| 发表于 2011-12-9 10:37 | 显示全部楼层
回复 4# sanmaoshi

显示慢,你把那个xh=10全部改成 xh=3  速度就差不多了 我用的是89S52+24M晶振
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2026-3-13 17:04 , Processed in 0.033605 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表