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

📄 text1.lst

📁 单片机驱动32X64点阵资料
💻 LST
字号:
C51 COMPILER V8.08   TEXT1                                                                 11/02/2012 16:36:42 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: D:\Program Files\keil_51\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*
   2          点阵屏管脚定义
   3          SHCP   GND
   4          STCP   GND
   5          R1     R2
   6          G1     G2
   7          VCC  GND
   8          A      GND
   9          B      GND
  10          C      D
  11          */
  12          /*
  13           控制卡
  14           P0~P3   A B C D
  15           P16 SCK
  16           P17 STR
  17           R1 P04
  18           G1 P05
  19           R2 P06
  20           G2 P07
  21          */
  22          #include<stc89c51rc.h>
  23          #define uchar unsigned char
  24          #define uint unsigned int
  25          #define light 3 
  26          extern uint uiAllData;                       //定义亮度
  27          uchar code hanzi[];                                         //汉字字模
  28          uchar code hanzi1[];                                        //汉字字模
  29                                           //0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
  30          uchar code sw[16]={0X00,0X08,0x04,0x0C,0X02,0X0A,0X06,0X0E,0X01,0X09,0X05,0X0D,0X03,0X0B,0X07,0X0F};/*16行
             -段码*///138驱动数据
  31                                             
  32          sbit IA  =P4^0;  //行控制线A
  33          sbit IB  =P2^0;  //行控制线B
  34          sbit IC  =P2^1;  //行控制线C
  35          sbit ID  =P2^2;  //行控制线D
  36          
  37          #define  scan0    {IA=0;IB=0;IC=0;ID=0;}
  38          #define  scan1    {IA=1;IB=0;IC=0;ID=0;}
  39          #define  scan2    {IA=0;IB=1;IC=0;ID=0;}
  40          #define  scan3    {IA=1;IB=1;IC=0;ID=0;}
  41          #define  scan4    {IA=0;IB=0;IC=1;ID=0;}
  42          #define  scan5    {IA=1;IB=0;IC=1;ID=0;}
  43          #define  scan6    {IA=0;IB=1;IC=1;ID=0;}
  44          #define  scan7    {IA=1;IB=1;IC=1;ID=0;}
  45          #define  scan8    {IA=0;IB=0;IC=0;ID=1;}
  46          #define  scan9    {IA=1;IB=0;IC=0;ID=1;}
  47          #define scan10    {IA=0;IB=1;IC=0;ID=1;}
  48          #define scan11    {IA=1;IB=1;IC=0;ID=1;}
  49          #define scan12    {IA=0;IB=0;IC=1;ID=1;}
  50          #define scan13    {IA=1;IB=0;IC=1;ID=1;}
  51          #define scan14    {IA=0;IB=1;IC=1;ID=1;}
  52          #define scan15    {IA=1;IB=1;IC=1;ID=1;}
  53          
  54          
C51 COMPILER V8.08   TEXT1                                                                 11/02/2012 16:36:42 PAGE 2   

  55          sbit STR=P4^1;              //锁存       
  56          sbit SCK=P2^7;              //时钟       
  57          sbit SERr1= P2^4;            //数据
  58          sbit SERg1= P2^6;
  59          
  60          
  61          
  62          sbit SERr= P2^5;
  63          sbit SERg= P2^3;
  64                  
  65          uchar Move,Speed,line;  //时间温度变量
  66          uint zimuo;                                //字模计数器
  67          uchar BUFF[20];                            //缓存
  68          uchar BUFF1[20];                                   //缓存
  69          
  70          void   DelayMs(void);              // 延时
  71          void   in_data();                                  // 调整移动数据
  72          void   rxd_data();                                 // 串口发送移动数据
  73          /******************************************************/
  74          /*****不影响其他端口的扫描*************************/
  75          void scan(unsigned char Value)
  76          {switch(Value)
  77   1              {case  15: scan0;break;
  78   2                        case  0: scan1;break;
  79   2                         case  1: scan2;break;
  80   2                          case  2: scan3;break;
  81   2                   case  3: scan4;break;
  82   2                            case  4: scan5;break;
  83   2                             case  5: scan6;break;
  84   2                              case  6: scan7;break;
  85   2                       case  7: scan8;break;
  86   2                             case  8: scan9;break;
  87   2                            case 9:scan10;break;
  88   2                           case 10:scan11;break;
  89   2                  case 11:scan12;break;
  90   2                        case 12:scan13;break;
  91   2                       case 13:scan14;break;
  92   2                  case 14:scan15;break;
  93   2                 default:break;
  94   2              }
  95   1      }
  96          /**************************延时***********************/
  97          
  98          void DelayMs(void)
  99           {
 100   1        uchar TempCyc;
 101   1        for(TempCyc=250;TempCyc>1;TempCyc--)
 102   1           {;}
 103   1       }
 104          /********************************************/
 105          
 106          /*主函数*/
 107          void main()
 108          {  
 109   1         Move=0;
 110   1         zimuo=0;
 111   1         P0M0=0XFF;
 112   1         P0M1=0X00;
 113   1         P1M0=0X0C;
 114   1         P1M0=0X00;
 115   1         while(1)  
 116   1         {
C51 COMPILER V8.08   TEXT1                                                                 11/02/2012 16:36:42 PAGE 3   

 117   2         while(zimuo<2048)
 118   2          { 
 119   3               while(Move<16)                                      //数据移位。
 120   3             {
 121   4                   for(Speed=0;Speed<3;Speed++)       //移动速度
 122   4                    { 
 123   5                          for(line=0;line<16;line++)
 124   5                                {
 125   6                               in_data();                                  //调整移动数据
 126   6                           rxd_data();
 127   6                       //P0=sw[line];       
 128   6                               scan(line);                                                             
 129   6                                      STR=1;//锁存
 130   6                                      STR=0;
 131   6                                  STR=1;
 132   6                                  DelayMs();   //延时,等待一段时间,让这列显示的内容在人眼内产生“视觉暂留”现象。
 133   6                                      DelayMs();
 134   6                                      DelayMs();
 135   6                                      DelayMs();
 136   6                                       
 137   6                        }
 138   5                       }
 139   4             Move++;                                           //移动一步
 140   4                }
 141   3           Move=0;
 142   3               //zimuo=zimuo+32;
 143   3          }   
 144   2         zimuo=0;
 145   2         }
 146   1      }         
 147          /**********************************************************/
 148          
 149          void in_data(void)                                     //调整数据
 150          {
 151   1       char s;
 152   1              for(s=4;s>=0;s--)                                           //i为向后先择字节计数器,zimuoo为向后先字计数器
 153   1              {
 154   2               BUFF[2*s+1]=hanzi[zimuo+1+32*s+2*line];            //把第一个字模的第一个字节放入BUFF0中,第二个字模和第

⌨️ 快捷键说明

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