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

📄 zk.lst

📁 是单片机上液晶显示程序:带中文字库的LM3033:控制器是ST7920
💻 LST
字号:
C51 COMPILER V8.02   ZK                                                                    03/31/2009 16:00:07 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE ZK
OBJECT MODULE PLACED IN C:\DOCUME~1\ADMINI~1\桌面\NEWPRO~1\ZK.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE C:\DOCUME~1\ADMINI~1\桌面\NEWPRO~1\ZK.C DB SB OE

line level    source

   1          #include<REG51.H>
   2          #include "INTRINS.H"
   3          
   4          #define  LCD_BUS  P0
   5           sbit RS= P2^5;
   6           sbit RW=P2^6;
   7           sbit E =P2^7; 
   8           /*
   9          sbit pcb=P1^3;
  10          sbit RS= P1^0;
  11          sbit RW=P1^1;
  12          sbit E =P1^2;
  13            */
  14          
  15          
  16          
  17          
  18          
  19          
  20              ////////////////////////////////////
  21          
  22           ////////////////////////////////////
  23          
  24             void delay(unsigned int t) ;             //延时t倍///
  25          
  26             unsigned char  check_bf(unsigned char Address_AC);   //LCD标志位查询//
  27             void  write_data(unsigned char dispdata);    //写数据//
  28             void write_comand(unsigned char cmdcode);    //写命令//
  29          
  30             void lcd_init();                           ///LCD初始化//
  31            void stringdisp (unsigned char  code *str,unsigned char adress); //显示字符串//
  32          
  33          
  34                   void disp_graph();                                                 //总界面:教室灯控系统
  35                   void disp_graph_password();                //密码输入登录界面
  36                   void disp_graph_set();                                     //系统设置总界面
  37          /////////////////////////////////////////////////////
  38          
  39             unsigned char  code str[]="  教室灯控系统  ";          //登陆总界面
  40             unsigned char  code str1[]="  ●登陆界面  →";
  41             unsigned char  code str2[]="  ●设置界面  →";
  42          
  43             unsigned char  code str_password1[]="请输入登录密码:";        //输入密码界面
  44             unsigned char  code str_password2[]="  ******  ";
  45             unsigned char  code str_password3[]="   1 2 3 4 5 6  ";
  46             unsigned char  code str_password4[]="     6 7 8 9    ";
  47          
  48             unsigned char  code str_set1[]="设置选项:    ";       //设置总界面
  49             unsigned char  code str_set2[]="●密码设置    →";
  50             unsigned char  code str_set3[]="●系统时间设置→";
  51             unsigned char  code str_set4[]="●定时时间设置→";
  52          
  53            // unsigned char code str3[]="1234567891234567";
  54          
  55          // unsigned char  code str12[14][3]={"1 ","2 ","3 ","4 ","5 ","6 ","7 ","8 ","9 ","10","11","12","13","14"
C51 COMPILER V8.02   ZK                                                                    03/31/2009 16:00:07 PAGE 2   

             -,};
  56          
  57          //////////////////////////////////////////////////////////////////
  58           void main()
  59           {
  60   1      
  61   1        LCD_BUS=0XFF;
  62   1      
  63   1      
  64   1        LCD_BUS=LCD_BUS
  65   1        lcd_init();
*** ERROR C141 IN LINE 65 OF C:\DOCUME~1\ADMINI~1\桌面\NEWPRO~1\ZK.C: syntax error near 'lcd_init'
  66   1       stringdisp("1",0x8b);
  67   1       //disp_graph();                          //登陆总界面
  68   1        //disp_graph_password();
  69   1        // disp_graph_set();
  70   1      
  71   1      
  72   1        //stringdisp(&str3,0x80);   ///////显示开机画面//////
  73   1      
  74   1        //write_comand(0x85);
  75   1       // stringdisp("1",0x88);
  76   1        // data_disp(198,0x98);       //数字显示
  77   1      
  78   1       delay(100);
  79   1         }
  80          
  81          /**********************************************************************
  82          函数原型: void  delay(unsigned int t)
  83          入口参数:
  84                             t  :  延时程序t倍的100us
  85          出口参数:   无
  86          返 回 值:  无
  87          说    明: LCD液晶延时子程序t倍100us
  88          **********************************************************************/
  89          ///////////////////延时程序/////////////////////////////////////
  90          
  91            void  delay(unsigned int t)          //延时程序t倍100us
  92            {
  93   1          unsigned char j;
  94   1          unsigned int  i;
  95   1          for(i=0;i<t;i++)
  96   1          for(j=0;j<29;j++);
  97   1      
  98   1      }
  99          /***********************************************************************
 100          函数原型:check_bf(unsigned char Address_AC)
 101          入口参数:无
 102          出口参数:无
 103          
 104          返回值:
 105                Address_AC:当前状态的地址(一个无符号字符)
 106          功能说明:LCD液晶的状态BF查询和DDRAM的地址查询
 107          ************************************************************************/
 108          ////////////////////////////查询BF///////////////////////////////////////
 109          
 110          unsigned char check_bf(unsigned char Address_AC)
 111            {
 112   1         unsigned char  BF;         ////忙标志位,BF是某字节的一位,是D7位,如果为1,则忙//////
 113   1         LCD_BUS=0x00 ;
 114   1         do
 115   1          {
C51 COMPILER V8.02   ZK                                                                    03/31/2009 16:00:07 PAGE 3   

 116   2           RS=0;
 117   2           RW=1;
 118   2           E=1;
 119   2           BF=LCD_BUS;              /////此处BF定义不是一个位,而是一个字节,不过在处理中代表标志位bf///
 120   2           _nop_();
 121   2           E=0;
 122   2               Address_AC=BF;
 123   2           BF=BF&0x80;               ////取出BF////
 124   2           }while( BF!=0x00 ) ;                 //////判断是否忙?///////
 125   1               Address_AC=Address_AC&0x7f;  ///读出DDRAM的地址指针AC的值
 126   1           delay(5) ;
 127   1               return(Address_AC);
 128   1        }
 129          /**********************************************************************
 130          函数原型:write_comand(unsigned char cmdcode)
 131          入口参数:
 132                             cmdcode  :  命令字 (0x01:清屏)
 133          出口参数:   无
 134          返 回 值:  无
 135          说    明: 对lcd写命令字
 136          **********************************************************************/
 137          /////////////////////////写命令子程序//////////////////////////////////
 138          
 139           void write_comand(unsigned char cmdcode)
 140           {
 141   1         check_bf();
 142   1         RS=0;
 143   1         RW=0;
 144   1         E=1;
 145   1         LCD_BUS=cmdcode;
 146   1         _nop_();
 147   1          _nop_();
 148   1               _nop_();
 149   1                _nop_();
 150   1         E=0;
 151   1         delay(5) ;
 152   1       }
 153          /***********************************************************************
 154          函数原型:write_data(unsigned char dispdata)
 155          入口参数:
 156                    dispdata:写入lcd要显示内容
 157          出口参数:无
 158          返回值:  无
 159          功能说明:LCD液晶的数据写入指令
 160          ************************************************************************/
 161          //////////////////////////写数据子程序///////////////////////////////////
 162          
 163          void  write_data(unsigned char dispdata)
 164            {
 165   1         check_bf();
 166   1         RS=1;
 167   1         RW=0;
 168   1         E=1;
 169   1         LCD_BUS=dispdata;
 170   1         _nop_();
 171   1          _nop_();
 172   1               _nop_();
 173   1                _nop_();
 174   1                 _nop_();
 175   1      
 176   1         E=0;
 177   1      
C51 COMPILER V8.02   ZK                                                                    03/31/2009 16:00:07 PAGE 4   

 178   1         }
 179          /******************************************************************
 180           函数:lcd_init()
 181          入口参数:无
 182          出口参数:无
 183          返回值:无
 184          功能说明:LCD液晶的初始化
 185          ********************************************************************/
 186           /////////////////////////液晶初始化////////////////////////////////
 187          void  lcd_init()
 188           {
 189   1          delay(100);
 190   1          write_comand(0x30);                   //8并,基本指令
 191   1              delay(10);
 192   1          write_comand(0x30);                  //8并,
 193   1          delay(5);
 194   1      
 195   1          // write_comand(0x0c);                  //整体显示开,游标关不反白
 196   1         //  write_comand(0x0d);                  //整体显示开,游标关反白
 197   1          write_comand(0x0f);                  //整体显示开,游标开反白
 198   1              delay(10);
 199   1      
 200   1          write_comand(0x01);                  //清屏
 201   1              delay(5);
 202   1      
 203   1              write_comand(0x06);                  //游标移动方向及地址AC的增减方式
 204   1      
 205   1       }
 206          /***********************************************************************
 207          函数原型:stringdisp(unsigned char code *str,unsigned char adress)
 208          入口参数:
 209                        str:要写入lcd显示的字符串数组
 210                            adress :要设定字符串在液晶显示中地址
 211          出口参数:无
 212          返回值:  无
 213          功能说明:LCD液晶的字符串显示子程序
 214          ************************************************************************/
 215          
 216          ///////////////////////////字符串显示////////////////////////////////////
 217          
 218          void  stringdisp(unsigned char code *str,unsigned char adress)       //字符串显示
 219            {
 220   1          write_comand(0x30);
 221   1          write_comand(adress);
 222   1          while(*str>0)
 223   1           {
 224   2            write_data(*str) ;
 225   2            str++;
 226   2            delay(1);
 227   2            }
 228   1         }
 229          
 230          
 231          ///////////////////////////系统登陆界面///////////////////////////////////
 232          
 233           void disp_graph()
 234            {
 235   1          lcd_init();
 236   1          stringdisp(&str,0x80);       //////总界面:教室灯控系统////////
 237   1              delay(100);
 238   1          stringdisp(&str1,0x88);     //////总界面:登陆界面////////////
 239   1              delay(100);
C51 COMPILER V8.02   ZK                                                                    03/31/2009 16:00:07 PAGE 5   

 240   1      //      stringdisp(&str2,0x88);     //////总界面:设置界面////////////
 241   1      //    delay(100);
 242   1          write_comand(0x8f);
 243   1      
 244   1      
 245   1      //      write_comand(0x34);                     ////设置为全反白显示
 246   1         //   write_comand(0x05);
 247   1           }
 248          
 249          

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

⌨️ 快捷键说明

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