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

📄 cm160128c.lst

📁 完整的LCD CM160128 液晶程序
💻 LST
字号:
C51 COMPILER V7.06   CM160128C                                                             11/02/2007 20:16:44 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE CM160128C
OBJECT MODULE PLACED IN CM160128C.OBJ
COMPILER INVOKED BY: C:\Program Files\keilc\C51\BIN\C51.EXE CM160128C.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /********************************
   2          名称:CM160128液晶显示程序
   3          设计:河南科技大学 创达科技 陈仲库
   4          设计日期:2007年5月13日晚
   5          技术交流:kuzi00@163.com         QQ:86828048
   6          
   7          接口说明
   8          LCD_CD=P3^5;LCD_WR=P3^6;LCD_RD=P3^7;
   9          CE取低电平 直接接GND 
  10          P2口为数据口 间接方式 控制T6963C
  11          *********************************/
  12          #include <reg51.h>
  13          #include <LCD_ziku.c>  //LCD_ziku.c  含有字模
  14          
  15          
  16          sbit LCD_CE=P3^4;
  17          sbit LCD_CD=P3^5;
  18          sbit LCD_WR=P3^6;
  19          sbit LCD_RD=P3^7;
  20          
  21          #define unint  unsigned int
  22          void LCD_Busy()
  23          {
  24   1        unint dat;
  25   1            do{
  26   2              P2=0xff;
  27   2                      LCD_CD=1;
  28   2                      LCD_RD=0;
  29   2              dat=P2;
  30   2                      LCD_RD=1;
  31   2              dat=0x03&dat;
  32   2              }while(dat!=0x03);
  33   1      }
  34          
  35          void LCD_Data(dat)
  36          {
  37   1              LCD_Busy();
  38   1              LCD_CD=0;
  39   1              P2=dat;
  40   1              LCD_WR=0;
  41   1              LCD_WR=1;
  42   1      }
  43          
  44          void LCD_Com1(command)//写有 1 个参数命令
  45          {
  46   1              LCD_Busy();
  47   1              LCD_CD=1;
  48   1              P2=command;
  49   1              LCD_WR=0;
  50   1              LCD_WR=1;
  51   1      }
  52          
  53          void LCD_Com2(dat, command)//写有 2 个参数命令
  54          {
  55   1              LCD_Data(dat);
C51 COMPILER V7.06   CM160128C                                                             11/02/2007 20:16:44 PAGE 2   

  56   1              LCD_Com1(command);
  57   1      }
  58          
  59          void LCD_Com3(data1, data2, command)//写有 3 个参数命令
  60          {
  61   1              LCD_Data(data1); 
  62   1              LCD_Data(data2);
  63   1              LCD_Com1(command);
  64   1      }
  65          
  66          void LCD_Clear()//清屏
  67          {
  68   1              long i;
  69   1              LCD_Com3(0x00,0x00,0x24); 
  70   1              LCD_Com1(0xb0);
  71   1              for(i=0;i<20500;i++) LCD_Data(0x00);//160*128
  72   1              LCD_Com1(0xb2); 
  73   1      }
  74          
  75          
  76          void LCD_Init()//初始化LCD
  77          {
  78   1              LCD_CD=1;
  79   1              LCD_WR=1;
  80   1              LCD_RD=1;
  81   1              LCD_Com1(0x90); 
  82   1              LCD_Com3( 0x00,0x00,0x42 ); 
  83   1              LCD_Com3( 0x14,0x00,0x43);
  84   1              LCD_Com1(0x80); 
  85   1              LCD_Com1(0x98); 
  86   1              LCD_Clear();
  87   1      }
  88          
  89          //汉字显示 参数说明LCD_HZ(行点阵数,列点阵,第几个字)行0~127  列 0~159
  90          void LCD_HZ(unint x,unint y,unint n)
  91          {
  92   1              char i; 
  93   1              long StartAddr;
  94   1              StartAddr=x*320+y;      //
  95   1              for(i=0;i<16;i++)
  96   1              {
  97   2                      LCD_Com3(StartAddr,((StartAddr)/256),0x24);
  98   2                      LCD_Com2(HZTable [n][i*2]  , 0xc0); 
  99   2                      LCD_Com2( HZTable[n][i*2+1], 0xc4); 
 100   2                      StartAddr=StartAddr + 20;
 101   2              }
 102   1      }
 103          
 104          //显示字母
 105          void LCD_Char(char x,char y,char ch)
 106          {
 107   1              char i, dat;
 108   1              int StartAddr;
 109   1              StartAddr=x*320+y; 
 110   1              for(i=0;i<16;i++)
 111   1              {
 112   2                      dat=ASCII816[ch][i];
 113   2                      LCD_Com3(StartAddr,StartAddr>>8, 0x24); 
 114   2                      LCD_Com2(dat, 0xc4);
 115   2                      StartAddr=StartAddr + 20;
 116   2              }
 117   1      }
C51 COMPILER V7.06   CM160128C                                                             11/02/2007 20:16:44 PAGE 3   

 118          
 119          void charline(char x,char y ,char n,char m)
 120          {
 121   1              char i;
 122   1              for(i=0;i<m;i++)
 123   1              LCD_Char(x,y+i,n+i);
 124   1      }
 125          
 126          //显示数字
 127          void LCD_No(char x,char y,char ch)
 128          {
 129   1              char i, dat;
 130   1              int StartAddr;
 131   1              StartAddr=x*320+y;  
 132   1              for(i=0;i<16;i++)
 133   1              {
 134   2                      dat=number[ch][i];
 135   2                      LCD_Com3(StartAddr,StartAddr>>8, 0x24); 
 136   2                      LCD_Com2(dat, 0xc4);
 137   2                      StartAddr=StartAddr + 20;
 138   2              }
 139   1      }
 140          
 141          void main(void)
 142          {
 143   1        char i;
 144   1        LCD_CE=0;
 145   1        LCD_Init();
 146   1      
 147   1        LCD_HZ(1,5,0);  //陈
 148   1        LCD_HZ(1,9,1);  //仲
 149   1        LCD_HZ(1,13,2);  //库
 150   1      
 151   1        LCD_HZ(3,0,3);//河南科技大学 机电工程学院
 152   1        LCD_HZ(3,2,4);
 153   1        LCD_HZ(3,4,5);
 154   1        LCD_HZ(3,6,6);
 155   1        LCD_HZ(3,8,7);
 156   1        LCD_HZ(3,10,8);
 157   1        LCD_HZ(3,12,9);
 158   1        LCD_HZ(3,14,10);
 159   1        LCD_HZ(3,16,11);
 160   1        LCD_HZ(3,18,12);
 161   1        LCD_HZ(5,7,13);
 162   1        LCD_HZ(5,11,14);
 163   1        charline(2,4,0,11);  //ChenZhongku
 164   1        for (i=0;i<10;i++)   //在最下行(第8行)显示0123456789 //显示数字
 165   1        LCD_No(7,5+i,i);
 166   1      while(1)
 167   1      {
 168   2      };
 169   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    949    ----
   CONSTANT SIZE    =    816    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      25
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
C51 COMPILER V7.06   CM160128C                                                             11/02/2007 20:16:44 PAGE 4   

END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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