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

📄 text1.lst

📁 单片机驱动32X64点阵资料
💻 LST
字号:
C51 COMPILER V8.08   TEXT1                                                                 11/02/2012 16:31:52 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          #include<STC12C5A60S2.H>
  24          #define uchar unsigned char
  25          #define uint unsigned int
  26                                           //0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
  27          uchar code sw[16]={0X00,0X08,0x04,0x0C,0X02,0X0A,0X06,0X0E,0X01,0X09,0X05,0X0D,0X03,0X0B,0X07,0X0F};/*16行
             -段码*///138驱动数据
  28                                             
  29          
  30          sbit IA  =P4^0;  //行控制线A
  31          sbit IB  =P2^0;  //行控制线B
  32          sbit IC  =P2^1;  //行控制线C
  33          sbit ID  =P2^2;  //行控制线D
  34          
  35          #define  scan0    {IA=0;IB=0;IC=0;ID=0;}
  36          #define  scan1    {IA=1;IB=0;IC=0;ID=0;}
  37          #define  scan2    {IA=0;IB=1;IC=0;ID=0;}
  38          #define  scan3    {IA=1;IB=1;IC=0;ID=0;}
  39          #define  scan4    {IA=0;IB=0;IC=1;ID=0;}
  40          #define  scan5    {IA=1;IB=0;IC=1;ID=0;}
  41          #define  scan6    {IA=0;IB=1;IC=1;ID=0;}
  42          #define  scan7    {IA=1;IB=1;IC=1;ID=0;}
  43          #define  scan8    {IA=0;IB=0;IC=0;ID=1;}
  44          #define  scan9    {IA=1;IB=0;IC=0;ID=1;}
  45          #define scan10    {IA=0;IB=1;IC=0;ID=1;}
  46          #define scan11    {IA=1;IB=1;IC=0;ID=1;}
  47          #define scan12    {IA=0;IB=0;IC=1;ID=1;}
  48          #define scan13    {IA=1;IB=0;IC=1;ID=1;}
  49          #define scan14    {IA=0;IB=1;IC=1;ID=1;}
  50          #define scan15    {IA=1;IB=1;IC=1;ID=1;}
  51          sbit STR=P4^1;              //锁存       
  52          sbit SCK=P2^7;              //时钟       
  53          sbit SERr1= P2^4;            //数据
  54          sbit SERg1= P2^6;
C51 COMPILER V8.08   TEXT1                                                                 11/02/2012 16:31:52 PAGE 2   

  55          
  56          
  57          
  58          sbit SERr= P2^3;
  59          sbit SERg= P2^5;
  60          uchar line=0;
  61          void   rxd_data();                                 // 串口发送移动数据
  62          uchar time_count=0;
  63          bit reg=1;
  64          /*****不影响其他端口的扫描*************************/
  65          void scan(unsigned char Value)
  66          {switch(Value)
  67   1              {case  15: scan0;break;
  68   2                        case  0: scan1;break;
  69   2                         case  1: scan2;break;
  70   2                          case  2: scan3;break;
  71   2                   case  3: scan4;break;
  72   2                            case  4: scan5;break;
  73   2                             case  5: scan6;break;
  74   2                              case  6: scan7;break;
  75   2                       case  7: scan8;break;
  76   2                             case  8: scan9;break;
  77   2                            case 9:scan10;break;
  78   2                           case 10:scan11;break;
  79   2                  case 11:scan12;break;
  80   2                        case 12:scan13;break;
  81   2                       case 13:scan14;break;
  82   2                  case 14:scan15;break;
  83   2                 default:break;
  84   2              }
  85   1      }
  86          /**************************************/
  87          void Timer0Interrupt(void) interrupt 1 //定时器中断
  88          {
  89   1           TH0 = 0x0D8;//定时10MS
  90   1           TL0 = 0x0F0;
  91   1               
  92   1         time_count++;
  93   1         if(time_count>100)//2S发送一次数据
  94   1         {      
  95   2             time_count=0;
  96   2                 line++;
  97   2                 if(line>15)
  98   2                 {
  99   3                       line=0;
 100   3                       reg=~reg;      
 101   3                 }
 102   2                  rxd_data();
 103   2             // P0 = sw[line];
 104   2                   scan(line);                                                                                 
 105   2                  STR=1;//锁存
 106   2              STR=0;
 107   2              STR=1;
 108   2      
 109   2         }
 110   1      
 111   1              
 112   1      }
 113          /********************************************/
 114          
 115          /*主函数*/
 116          void main()
C51 COMPILER V8.08   TEXT1                                                                 11/02/2012 16:31:52 PAGE 3   

 117          {  
 118   1        TMOD=0x01; //定时器0 16位定时定时器1方式2
 119   1        TH0=0x4c;  //50ms
 120   1        TL0=0x00;
 121   1        
 122   1        TR0=1;
 123   1        ET0=1;
 124   1        EA=1;
 125   1         while(1)  
 126   1         {
 127   2         }
 128   1      }         
 129          /***********************发送移动的数据****************************/
 130          void rxd_data(void)                         //串行发送数据
 131          {
 132   1        uchar s;
 133   1        uchar k;
 134   1        
 135   1        for(s=0;s<8;s++)                 //发送16字节数据
 136   1              {
 137   2           for(k=0;k<8;k++)
 138   2             {
 139   3                     SCK=0;
 140   3                        if(reg==1)               
 141   3                        { 
 142   4                          SERr=0;//这里SERr定义成普通IO口就得了              
 143   4                          SERr1=0;
 144   4                              SERg=1;
 145   4                          SERg1=1;            
 146   4                         }
 147   3                         else
 148   3                         {
 149   4                         SERg=0;
 150   4                         SERg1=0;
 151   4                         SERr=1;//这里SERr定义成普通IO口就得了               
 152   4                         SERr1=1;
 153   4                         }                       
 154   3                 SCK=1;
 155   3                       
 156   3             }
 157   2                
 158   2      
 159   2         }
 160   1      
 161   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    321    ----
   CONSTANT SIZE    =     16    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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