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

📄 hanzi.lst

📁 51单片机开发与应用技术详解(珍藏版)PPT及源码
💻 LST
字号:
C51 COMPILER V8.08   HANZI                                                                 04/04/2008 10:06:06 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE HANZI
OBJECT MODULE PLACED IN Hanzi.OBJ
COMPILER INVOKED BY: C:\Program Files\keil\C51\BIN\C51.EXE Hanzi.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg52.h>
   2          #include<stdio.h>
   3          
   4          unsigned data i;
   5          unsigned char q;
   6          unsigned char *p;                                //建立数组指针
   7          unsigned char wbyte;
   8          
   9          sbit E=P3^2;                                    //读写使能信号,1有效
  10          sbit R_W=P3^1;                          //读写选择信号;1为读选通,0为写选通
  11          sbit RS=P3^0;
  12          sbit D_I=P3^0;                                  //数据指令选择信号;1为数据操作,0为写指令或读状态
  13          char code Hanzi[32]=                    //汉字数组
  14          {
  15           0x02,0x03,                                     //笑脸,心
  16           0xd6,0xd0,                                     //中
  17           0xbf,0xc6,                                     //科
  18           0xd4,0xba,                                     //院
  19           0xce,0xef,                                     //物
  20           0xc0,0xed,                                     //理
  21           0xcb,0xf9,                                     //所
  22           0x03,0x02,                                     //心,笑脸
  23           0x54,0x45,                                     //T,R
  24           0x4c,0x3a,                                     //L,:
  25           0x30,0x31,                                     //0,1
  26           0x30,0x2d,                                     //0,-
  27           0x38,0x32,                                     //8,2
  28           0x36,0x34,                                     //6,4
  29           0x39,0x35,                                     //9,5
  30           0x39,0x33                                      //9,3
  31          };
  32          char code Hanzi1[28]=                   //汉字数组
  33          {
  34           0xbb,0xb6,                                     //欢
  35           0xd3,0xad,                                     //迎
  36           0xc4,0xfa,                                     //您
  37           0xa3,0xa1,                                     //!
  38           0x20,0x20,                                     //空格
  39           0x20,0x20,
  40           0x46,0x41,                                     //F,A
  41           0x58,0x3a,                                     //X,:
  42           0x30,0x31,                                     //0,1
  43           0x30,0x2d,                                     //0,-
  44           0x38,0x32,                                     //8,2
  45           0x36,0x34,                                     //6,4
  46           0x39,0x34,                                     //9,4
  47           0x37,0x38                                      //7,8
  48          };
  49          
  50          unsigned char data j;
  51          unsigned char data k;           
  52          
  53          void WCOM(unsigned char d)                      //写指令程序
  54          {
  55   1       R_W=1;
C51 COMPILER V8.08   HANZI                                                                 04/04/2008 10:06:06 PAGE 2   

  56   1       D_I=0;                                         //设置状态
  57   1      Loop:
  58   1       P1=0xFF;
  59   1       E=1;                                           //使能有效
  60   1       q=P1;                                          //将p1口状态读入
  61   1       E=0;                                           //关闭使能信号
  62   1       if(q&0x80)                                     //判断屏幕是否忙
  63   1       {
  64   2       goto Loop;                                     //若忙,循环等待
  65   2       }
  66   1       R_W=0;
  67   1       D_I=0;                                         //写数据指令
  68   1       P1=d;                                          //将数据送入p1口
  69   1       E=1;                                           //使能信号开
  70   1       E=0;                                           //使能信号关
  71   1      }
  72          
  73          void Dat(unsigned char d)
  74          {
  75   1       R_W=1;
  76   1       D_I=0;                                         //读状态指令
  77   1      Loop:
  78   1       P1=0xFF;
  79   1       E=1;                                           //使能
  80   1       q=P1;
  81   1       E=0;
  82   1       if(q&0x80)
  83   1       {
  84   2       goto Loop;
  85   2       }                                                      //判忙
  86   1       D_I=1;                                         //送数据指令
  87   1       R_W=0;
  88   1       P1=d;
  89   1       E=1;                                           //使能信号开
  90   1       E=0;                                           //使能信号关
  91   1      }
  92          
  93          void Clearlcd()
  94          {
  95   1       D_I=0;
  96   1       R_W=0;
  97   1       P1=0x01;
  98   1       WCOM(0x01);                                    //清除显示
  99   1      }
 100          
 101          void Imim()
 102          {
 103   1       P0=0xff;
 104   1       P1=0xff;
 105   1       P2=0xff;
 106   1       P3=0xff;
 107   1       E=0;
 108   1      WCOM(0x38);                                     //功能设定
 109   1       WCOM(0x08);                                    //关显示指令
 110   1       WCOM(0x06);                                    //游标右移
 111   1       Clearlcd();                                    //清屏
 112   1       WCOM(0x0c);                                    //开显示指令
 113   1      }
 114          
 115          void Hanz()
 116          {
 117   1       WCOM(k);                                       //设置起始点
C51 COMPILER V8.08   HANZI                                                                 04/04/2008 10:06:06 PAGE 3   

 118   1       for(i=0;i<j;i++,p++)
 119   1       {
 120   2        wbyte=*p;
 121   2        Dat(wbyte);                                   //将汉字数组数据送入
 122   2       }
 123   1      }
 124          
 125          
 126          
 127          
 128          /********************主程序********************/
 129          void main()
 130          {
 131   1       Imim();                                                //初始化
 132   1       Clearlcd();
 133   1      
 134   1       p=Hanzi;                                               //指针指向数组的首地址*/
 135   1       j=32;                                          //所建立的第一个汉字数组中元素的个数
 136   1      k=0x80;                                         //起始点:80h-8fh为在第一行显示
 137   1       Hanz();                                                //在1、3行写汉字程序
 138   1      
 139   1      p=Hanzi1;
 140   1      j=28;                                           //所建立的第二个汉字数组中元素的个数
 141   1      k=0x92;                                         //起始点:90h-9fh为在第二行显示
 142   1       Hanz();                                                //在2、4行写汉字程序
 143   1       while(1)
 144   1      {
 145   2      }
 146   1      }
 147          
 148          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    211    ----
   CONSTANT SIZE    =     60    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      9    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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