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

📄 hanzi.lst

📁 零基础单片机C语言设计全套教程
💻 LST
字号:
C51 COMPILER V8.08   HANZI                                                                 08/27/2008 17:24:59 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 *p;                                //建立数组指针
   6          unsigned char wbyte;
   7          
   8          sbit E=P3^2;                                    //读写使能信号,1有效
   9          sbit R_W=P3^1;                          //读写选择信号;1为读选通,0为写选通
  10          sbit RS=P3^0;
  11          sbit D_I=P3^0;                                  //数据指令选择信号;1为数据操作,0为写指令或读状态
  12          
  13          char code Hanzi[32]=                    //汉字和字符数组
  14          {
  15           0x02,0x03,                                     //笑脸,心
  16           0x03,                                          //心
  17           0xb1,0xb1,                                     //汉字"北"
  18           0xbe,0xa9,                                     //汉字"京"
  19           0xb0,0xc2,                                     //汉字"奥"
  20           0xd4,0xcb,                                     //汉字"运"
  21           0xbb,0xe1,                                     //汉字"会"
  22          0x03,                                           //心
  23           0x03,0x02,                                     //心,笑脸
  24           0x30,0x31,                                     //0,1
  25           0x32,0x33,                                     //2,3
  26           0x34,0x35,                                     //4,5
  27           0x36,0x37,                                     //6,7
  28           0x38,0x39,                                     //8,9
  29           0x41,0x42,                                     //A,B
  30           0x43,0x44,                                     //C,D
  31           0x45,0x46                                      //E,F
  32          };
  33          char code Hanzi1[28]=                   //汉字和字符数组
  34          {
  35           0xbb,0xb6,                                     //汉字"欢"
  36           0xd3,0xad,                                     //汉字"迎"
  37           0xc4,0xfa,                                     //汉字"您"
  38           0xa3,0xa1,                                     //!
  39           0x20,0x20,                                     //空格
  40           0x20,0x20,
  41          0x20,0x20,
  42          0x20,
  43           0x32,0x30,                                     //2,0
  44           0x30,0x38,                                     //0,8
  45           0x2d,0x30,                                     //-,0
  46           0x38,0x2d,                                     //8,-
  47           0x30,0x38,                                     //0,8
  48          0x20,0x20,                                      //空格
  49          0x20,
  50          };
  51          
  52          unsigned char data j;
  53          unsigned char data k;
  54          
  55          void WCOM(unsigned char dcode);         //指令操作子函数
C51 COMPILER V8.08   HANZI                                                                 08/27/2008 17:24:59 PAGE 2   

  56          void Dat(unsigned char ddata);                  //数据操作子函数
  57          void Imim();                                            //初始化子函数
  58          void Clearlcd();                                                //基本指令集清屏子函数
  59          void Hanz();                                            //汉字显示子函数
  60          
  61          
  62          void main()
  63          {
  64   1       Imim();                                                //初始化
  65   1       Clearlcd();
  66   1      
  67   1       p=Hanzi;                                               //指针指向数组的首地址*/
  68   1       j=32;                                          //所建立的第一个汉字数组中元素的个数
  69   1      k=0x80;                                         //起始点:80h-8fh为在第一行显示
  70   1       Hanz();                                                //在1、3行写汉字程序
  71   1      
  72   1      p=Hanzi1;
  73   1      j=28;                                           //所建立的第二个汉字数组中元素的个数
  74   1      k=0x92;                                         //起始点:90h-9fh为在第二行显示
  75   1       Hanz();                                                //在2、4行写汉字程序
  76   1       while(1)
  77   1      {
  78   2      }
  79   1      }
  80          
  81          
  82          void WCOM(unsigned char dcode)          //写指令程序
  83          {
  84   1      unsigned char q;
  85   1       R_W=1;
  86   1       D_I=0;                                         //设置状态
  87   1      Loop:
  88   1       P1=0xFF;
  89   1       E=1;                                           //使能有效
  90   1       q=P1;                                          //将P1口状态读入
  91   1       E=0;                                           //关闭使能信号
  92   1       if(q&0x80)                                     //判断屏幕是否忙
  93   1       {
  94   2       goto Loop;                                     //若忙,循环等待
  95   2       }
  96   1       R_W=0;
  97   1       D_I=0;                                         //写数据指令
  98   1       P1= dcode;                                     //将数据送入P1口
  99   1       E=1;                                           //使能信号开
 100   1       E=0;                                           //使能信号关
 101   1      }
 102          
 103          
 104          void Dat(unsigned char ddata)
 105          {
 106   1      unsigned char q;
 107   1       R_W=1;
 108   1       D_I=0;                                         //读状态指令
 109   1      Loop:
 110   1       P1=0xFF;
 111   1       E=1;                                           //使能
 112   1       q=P1;
 113   1       E=0;
 114   1       if(q&0x80)                                     //判忙
 115   1       {
 116   2       goto Loop;
 117   2       }
C51 COMPILER V8.08   HANZI                                                                 08/27/2008 17:24:59 PAGE 3   

 118   1       D_I=1;                                         //送数据指令
 119   1       R_W=0;
 120   1       P1= ddata;                                     //写入数据
 121   1       E=1;                                           //使能信号开
 122   1       E=0;                                           //使能信号关
 123   1      }
 124          
 125          
 126          void Clearlcd()
 127          {
 128   1       D_I=0;
 129   1       R_W=0;
 130   1       P1=0x01;
 131   1       WCOM(0x01);                                    //清除显示
 132   1      }
 133          
 134          void Imim()
 135          {
 136   1       P0=0xFF;                                       //初始化单片机端口
 137   1       P1=0xFF;
 138   1       P2=0xFF;
 139   1       P3=0xFF;
 140   1       E=0;
 141   1      WCOM(0x38);                                     //功能设定
 142   1       WCOM(0x08);                                    //关显示指令
 143   1       WCOM(0x06);                                    //游标右移
 144   1       Clearlcd();                                    //清屏
 145   1       WCOM(0x0c);                                    //开显示指令
 146   1      }
 147          
 148          
 149          void Hanz()
 150          {
 151   1       int i;
 152   1       WCOM(k);                                       //设置起始点
 153   1       for(i=0;i<j;i++,p++)
 154   1       {
 155   2        wbyte=*p;
 156   2        Dat(wbyte);                                   //将汉字数组数据送入
 157   2       }
 158   1      }
 159          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    202    ----
   CONSTANT SIZE    =     60    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      8    ----
   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 + -