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

📄 left_right.lst

📁 用单片机实现左右移动的KeilC程序,单片机初学入门的最佳选择
💻 LST
字号:
C51 COMPILER V7.50   LEFT_RIGHT                                                            10/28/2008 15:53:41 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE LEFT_RIGHT
OBJECT MODULE PLACED IN left_right.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE left_right.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //A,B,C,D,分别为P1.1 P1.2 P1.3 P1.4
   2          //STB为P1.7  EN为P1.0  CLK为P3.1 SDA为P3.0
   3          #include <reg52.h>
   4          sbit STB=P1^7;
   5          sbit EN=P1^0;
   6          #define uchar unsigned char
   7          #define uint unsigned int
   8          uchar yid,h;                       //YID为移动计数器,H为行段计数器。
   9          uint zimuo;                        //字模计数器
  10          void sbuf_out();                            //16段扫描
  11          void in_data(void);                     //调整数据
  12          void rxd_data(void);            //发送数据
  13          void Large_word(void);
  14          void Small_word(void);
  15          
  16          uchar choice,choice1,Flag;
  17          uchar BUFF[12];                    //缓存  定义为5*2+2,如果是显示3个字则为3*2+2;右移时缓存加大
  18          
  19          uchar code hanzi[]={
  20          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,        
  21          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  22          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,         
  23          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  24          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,        
  25          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  26          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,        
  27          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  28          
  29          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,        
  30          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  31          /*--  宽度x高度=16x16  --*/
  32          //图片
  33          0x00,0x00,0x38,0x3C,0x7E,0x7E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  34          0xFF,0xFF,0x7F,0xFE,0x3F,0xFC,0x1F,0xF8,0x0F,0xF0,0x07,0xE0,0x03,0xC0,0x00,0x00,
  35          
  36          /*欢   CBBB6 */
  37          0x01,0x00,0x01,0x00,0x01,0x3F,0x7F,0xA0,0x20,0xA1,0x12,0x52,0x02,0x14,0x02,0x08,
  38          0x02,0x18,0x06,0x18,0x05,0x24,0x09,0x24,0x18,0x82,0x70,0x61,0x20,0x1C,0x00,0x00,
  39          
  40          /*迎   CD3AD */
  41          0x00,0x02,0x01,0x84,0x3E,0x6C,0x22,0x24,0x22,0x20,0x22,0x20,0x22,0x27,0x22,0x24,
  42          0x22,0xA4,0x2A,0x64,0x12,0x24,0x02,0x04,0x02,0x04,0x00,0x0A,0x7F,0xF1,0x00,0x00,
  43          
  44          /*光   CB9E2 */
  45          0x00,0x80,0x08,0x84,0x18,0x98,0x08,0xB0,0x04,0x90,0x20,0x80,0x7F,0xFE,0x02,0x20,
  46          0x02,0x20,0x02,0x20,0x02,0x20,0x42,0x10,0x42,0x10,0x42,0x08,0x7C,0x04,0x00,0x02,
  47          
  48          /*临   CC1D9 */
  49          0x00,0x80,0x01,0x90,0x00,0x90,0x7F,0x92,0x04,0x52,0x08,0x52,0x08,0x32,0x20,0x92,
  50          0x7F,0x92,0x24,0x92,0x24,0x92,0x24,0x92,0x24,0x92,0x3F,0x90,0x20,0x90,0x00,0x00,
  51          
  52          /*中   CD6D0 */
  53          0x00,0x80,0x00,0x80,0x10,0x84,0x3F,0xFC,0x10,0x84,0x10,0x84,0x10,0x84,0x10,0x84,
  54          0x10,0x84,0x1F,0xFC,0x10,0x84,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,
  55          
C51 COMPILER V7.50   LEFT_RIGHT                                                            10/28/2008 15:53:41 PAGE 2   

  56          /*山   CC9BD */
  57          0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x20,0x84,0x20,0x84,0x20,0x84,
  58          0x20,0x84,0x20,0x84,0x20,0x84,0x20,0x84,0x20,0x84,0x3F,0xFE,0x20,0x04,0x00,0x00,
  59          
  60          /*焯   CECCC */
  61          0x04,0x08,0x04,0x08,0x7C,0x08,0x04,0x28,0x3F,0xA8,0x20,0x9A,0x3F,0x8A,0x20,0x89,
  62          0x20,0x88,0x3F,0x88,0x04,0x14,0x04,0x24,0x7F,0xC2,0x04,0x02,0x04,0x01,0x04,0x00,
  63          
  64          /*科   CBFC6 */
  65          0x10,0x60,0x11,0x1E,0x12,0x10,0x12,0x10,0x10,0x7F,0x11,0x18,0x12,0x38,0x12,0x54,
  66          0x70,0x14,0x1E,0x12,0x11,0xD1,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
  67          
  68          /*电   CB5E7 */
  69          0x00,0x80,0x00,0x80,0x00,0x80,0x1F,0xFC,0x10,0x84,0x10,0x84,0x1F,0xFC,0x10,0x84,
  70          0x10,0x84,0x10,0x84,0x1F,0xFC,0x10,0x84,0x40,0x80,0x40,0x80,0x7F,0x00,0x00,0x00,
  71          
  72          /*子   CD7D3 */
  73          0x00,0x00,0x0F,0xFC,0x04,0x00,0x02,0x00,0x01,0x00,0x00,0x80,0x00,0x80,0x20,0x80,
  74          0x7F,0xFF,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xA0,0x00,0x40,
  75          
  76          /*有   CD3D0 */
  77          0x00,0x80,0x00,0x80,0x7F,0xFE,0x00,0x40,0x00,0x20,0x0F,0xF0,0x08,0x18,0x08,0x14,
  78          0x0F,0xF2,0x08,0x11,0x08,0x10,0x0F,0xF0,0x08,0x10,0x09,0x10,0x0E,0x10,0x04,0x10,
  79          
  80          /*限   CCFDE */
  81          0x00,0x00,0x1F,0xDF,0x10,0x49,0x1F,0xC9,0x10,0x45,0x10,0x45,0x1F,0xC9,0x01,0x51,
  82          0x12,0x51,0x0A,0x55,0x04,0x49,0x04,0x41,0x08,0x41,0x71,0x41,0x20,0xC1,0x00,0x41,
  83          
  84          /*公   CB9AB */
  85          0x00,0x00,0x02,0x20,0x02,0x60,0x02,0x20,0x04,0x10,0x08,0x10,0x18,0x08,0x70,0x44,
  86          0x20,0xC2,0x00,0x40,0x04,0x20,0x08,0x10,0x1F,0x88,0x18,0xFC,0x08,0x08,0x00,0x00,
  87          
  88          /*司   CCBBE */
  89          0x00,0x00,0x3F,0xFC,0x20,0x00,0x20,0x00,0x27,0xFE,0x20,0x00,0x20,0x00,0x23,0xFC,
  90          0x22,0x04,0x22,0x04,0x23,0xFC,0x22,0x04,0x20,0x04,0x28,0x00,0x10,0x00,0x00,0x00,
  91          
  92          
  93          
  94          
  95          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,        
  96          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  97          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,         
  98          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  99          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,        
 100          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 101          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,        
 102          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 103          
 104                  
 105          
 106          };
 107          //关行段码的时候要把EN信号关掉,让74HC138不工作;
 108          unsigned  code sw[16]={
 109          0x61,0x63,0x65,0x67,0x69,0x6b,0x6d,0x6f,
 110          0x71,0x73,0x75,0x77,0x79,0x7b,0x7d,0x7f,
 111          }; /*16行段码*/
 112          
 113          
 114          void  Small_word(void) //右移
 115          {
 116   1        
 117   1              uint  j;
C51 COMPILER V7.50   LEFT_RIGHT                                                            10/28/2008 15:53:41 PAGE 3   

 118   1              yid=0;
 119   1              zimuo=0;
 120   1              for(j=0;j<672;j++)               //显示21个字          
 121   1                    {
 122   2                                while(yid<16)                                //数据移位。
 123   2                                 {
 124   3                               
 125   3                                sbuf_out();
 126   3                                
 127   3                                yid++;                                //移动一步
 128   3                                 }
 129   2                          yid=0;
 130   2                          zimuo=zimuo+32;                         //后移一个字,
 131   2                          if(zimuo>=672)                  //21个字3072个字节;         
 132   2                          zimuo=0; 
 133   2                     choice++;
 134   2                    if(choice==20) {Flag=1;choice=0;break;}
 135   2                   }
 136   1      }
 137          
 138          
 139          void Large_word(void) //左移
 140          {
 141   1             uint  j;
 142   1              yid=0;
 143   1              zimuo=0;
 144   1              for(j=0;j<672;j++)               //显示21个字          
 145   1                    {
 146   2                                while(yid<16)                                //数据移位。
 147   2                                 {
 148   3                               
 149   3                                sbuf_out();
 150   3                                
 151   3                                yid++;                                //移动一步
 152   3                                 }
 153   2                          yid=0;
 154   2                          zimuo=zimuo+32;                         //后移一个字,
 155   2                          if(zimuo>=672)                  //21个字3072个字节;         
 156   2                          zimuo=0; 
 157   2                     choice1++;
 158   2                    if(choice1==20) {Flag=0;choice1=0;break;}
 159   2                   }
 160   1      }
 161          
 162          
 163          
 164          //扫描一行子程序
 165          void hang(uchar i)
 166          {
 167   1              EN=1;
 168   1              STB=0;
 169   1              P1=i;
 170   1              STB=1;
 171   1              EN=0;
 172   1      }
 173          
 174          
 175          /********************************/
 176          void sbuf_out()
 177          {
 178   1              for(h=0;h<16;h++)         //16行扫描
 179   1                {
C51 COMPILER V7.50   LEFT_RIGHT                                                            10/28/2008 15:53:41 PAGE 4   

 180   2              
 181   2                      in_data();                                //调整数据
 182   2                      rxd_data();                               //串口发送数据
 183   2              P1=0xff;                          //关闭显示。
 184   2             hang(sw[h]);                          //送段码
 185   2                }
 186   1      }
 187          
 188          /******************************************************/
 189          void in_data(void)
 190          {
 191   1                char s;
 192   1                if(Flag==0)
 193   1                {
 194   2                    for(s=5;s>=0;s--)     //h为向后先择字节计数器,zimuoo为向后先字计数器
 195   2                        {  
 196   3                       BUFF[2*s]=hanzi[zimuo+32*s+2*h];//把第一个字模的第一个字节放入BUFF0中,第二个字模的第一个

⌨️ 快捷键说明

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