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

📄 menu.lst

📁 这是一个我以前用AT89S52单片机做的128-64液晶屏的驱动显示程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   MENU                                                                  12/28/2007 10:53:52 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MENU
OBJECT MODULE PLACED IN menu.OBJ
COMPILER INVOKED BY: D:\C51\BIN\C51.EXE menu.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg52.h>
   2          #include"12864-pin.h"
   3          
   4          void menu8();
   5          void menu_operate(void);
   6          
   7          bit compare(uchar *key);
   8          extern bit VOI;                                         // 声音开关
   9          //////////////////////////////////////////////////////////////////////
  10          void menu8_2_1(void)
  11          {
  12   1              clrddram();
  13   1              send_i(0x0c);                    //关光标;     
  14   1              gotoxy(1,1);
  15   1              LCD_puts("输入密码错误",12);
  16   1      }
  17          
  18          void menu8_2_2(void)
  19          {
  20   1              clrddram();
  21   1              send_i(0x0c);                    //关光标;     
  22   1              gotoxy(1,1);
  23   1              LCD_puts("两次密码不同",12);
  24   1      }
  25          
  26          void menu8_2_3(void)
  27          {
  28   1              clrddram();
  29   1              send_i(0x0c);                    //关光标;     
  30   1              gotoxy(1,1);
  31   1              LCD_puts("密码修改成功",12);
  32   1      }
  33                  
  34          ////////////////////////////////////////////////////////////////////
  35          void menu8_2_4()
  36          {
  37   1              clrddram();
  38   1              send_i(0x0c);                    //关光标;     
  39   1              gotoxy(1,0);
  40   1              LCD_puts("密码修改失败",12);
  41   1              gotoxy(1,1);
  42   1              LCD_puts("请使用万能开机",15);
  43   1              gotoxy(1,2);
  44   1              LCD_puts("方式恢复密码!",14);
  45   1      }
  46          //////////////////////////////////////////////////////////////////////////
  47          /*              背光设置                *////////*/
  48          void menu8_1(void)                                      
  49          {
  50   1              uchar i=0;
  51   1              clrddram();
  52   1              send_i(0x0c);                    //关光标;
  53   1              gotoxy(0,0);
  54   1              LCD_puts("背光开",6);
  55   1              gotoxy(0,1);
C51 COMPILER V7.50   MENU                                                                  12/28/2007 10:53:52 PAGE 2   

  56   1              LCD_puts("背光关",6);
  57   1      
  58   1              while(1)
  59   1              {
  60   2                      fill_GD(0,0+i,4,16,0xff);                //     反白;
  61   2                      delay(200);
  62   2                      while(P1==0xff);
  63   2                      if(p17==0) 
  64   2                      {
  65   3                              if(VOI==1) voice();                                             //      按键声音
  66   3                              break;                                                                                                          //      按P17跳到前一菜单
  67   3                      }
  68   2                      if(p14==0) 
  69   2                      {
  70   3                              if(VOI==1) voice();                                             //      按键声音
  71   3                              if(i==0) p26=0;
  72   3                              else p26=1;
  73   3                      }
  74   2                      if(p15==0) 
  75   2                      {
  76   3                              if(VOI==1) voice();                                             //      按键声音
  77   3                              fill_GD(0,0+i,4,16,0x00);                //     清除反白;      
  78   3                              if(i==0)i=16;                           //      反白下调
  79   3                              else i=0;
  80   3                      }
  81   2                      if(p16==0) 
  82   2                      {       
  83   3                              if(VOI==1) voice();                                             //      按键声音
  84   3                              fill_GD(0,0+i,4,16,0x00);                //     清除反白;      
  85   3                              if(i==0) i=16;
  86   3                              else i=0;
  87   3                      }
  88   2              }
  89   1      }
  90          ////////////////////////////////////////////////////////////////////////
  91          //*             密码设置                        */
  92          void menu8_2(void)
  93          {
  94   1              uchar i,key1[6],key2[6],key3[6];
  95   1              uchar j;                        //      写入出错次数累计变量
  96   1      loop1:
  97   1              clrgdram();
  98   1              clrddram();
  99   1              gotoxy(0,0);
 100   1              LCD_puts("输入密码",9);
 101   1              gotoxy(0,1);
 102   1              LCD_puts("输新密码",9);
 103   1              gotoxy(0,2);
 104   1              LCD_puts("再输一遍",9);
 105   1              send_i(0x0e);                    //开光标;
 106   1              send_i(0x84);      //   设置DDRAM       光标位置;
 107   1              LCD_puts(" ",1); 
 108   1              for(i=0;i<6;)                   //      输入密码
 109   1              {  
 110   2                      key1[i]=gotkey(); 
 111   2                      if(VOI==1) voice();                                             //      按键声音
 112   2                      if(key1[i]>11) goto loop;               //按P17反回上一菜单
 113   2                      {       
 114   3                              LCD_puts("*",1);         
 115   3                              i++;
 116   3                      }
 117   2              }
C51 COMPILER V7.50   MENU                                                                  12/28/2007 10:53:52 PAGE 3   

 118   1      
 119   1              if(compare(key1)==0)
 120   1              {
 121   2                      menu8_2_1();    //      密码错误
 122   2                      delay(800);
 123   2                      goto loop1;
 124   2              }
 125   1              else                                            //      输入正确则继续输入
 126   1              {                                                       
 127   2                      send_i(0x94);           //      设置DDRAM       光标位置;
 128   2                      LCD_puts(" ",1); 
 129   2                      for(i=0;i<6;)                   //      输新密码
 130   2                      {  
 131   3                               
 132   3                              key2[i]=gotkey();
 133   3                              if(VOI==1) voice();                                             //      按键声音
 134   3                              if(key2[i]>11) goto loop;                                                               //按P17反回上一菜单
 135   3                              {       
 136   4                                      LCD_puts("*",1);         
 137   4                                      i++;
 138   4                              }
 139   3                      }       
 140   2                      send_i(0x8c);           //      设置DDRAM       光标位置;
 141   2                      LCD_puts(" ",1); 
 142   2                      for(i=0;i<6;)                   //      再输一遍
 143   2                      {  
 144   3                              key3[i]=gotkey(); 
 145   3                              if(VOI==1) voice();                                             //      按键声音
 146   3                              if(key3[i]>11) goto loop;                                                               //按P17反回上一菜单
 147   3                              {       
 148   4                                      LCD_puts("*",1);         
 149   4                                      i++;
 150   4                              }
 151   3                      }       
 152   2                      ///////////////////////////////
 153   2                      for(i=0;i<6;i++)                                //      比较两次输入的密码
 154   2                      {
 155   3                              if(key2[i]!=key3[i])
 156   3                              {
 157   4                                      i=10;
 158   4                                      break;
 159   4                              }
 160   3                      }
 161   2                      if(i==10)                                               //      两次输入密码不一样
 162   2                      {
 163   3                              menu8_2_2();
 164   3                              delay(800);
 165   3                              goto loop1;
 166   3                      }
 167   2                      else 
 168   2                      {       
 169   3                              j=0;
 170   3                              do{     
 171   4                                      for(i=0;i<6;i++) write_appoint(i,key2[i]);      //      修改成功,保存到24C02
 172   4                                      j++;
 173   4                                      if(j==5) 
 174   4                                      {
 175   5                                              for(i=0;i<6;i++) key1[i]=read_appoint(i);       //      如果连续四次写入出错刚读出24C02数据到key1[]
 176   5                                              menu8_2_4();
 177   5                                              while(p17==1);                                          //      按P17跳出画面
 178   5                                              goto loop;
 179   5                                      }
C51 COMPILER V7.50   MENU                                                                  12/28/2007 10:53:52 PAGE 4   

 180   4                              }while(compare(key2)==0);               //      当密码写入出错时重复写入直到正确
 181   3                              menu8_2_3();
 182   3                              delay(800);
 183   3                      }       
 184   2              }       
 185   1              loop:   send_i(0x0c);                            //关光标;
 186   1      } 
 187          
 188          /////////////////////////////////////////////////////////////////////////////
 189          void menu8_3()
 190          {
 191   1              uchar i=0;
 192   1              clrgdram();
 193   1              clrddram();
 194   1              send_i(0x0c);                    //关光标;
 195   1              gotoxy(0,0);
 196   1              LCD_puts("声音开",6);
 197   1              gotoxy(0,1);
 198   1              LCD_puts("声音关",6);
 199   1      
 200   1              while(1)
 201   1              {
 202   2                      fill_GD(0,0+i,4,16,0xff);                //     反白;
 203   2                      delay(200);
 204   2                      while(P1==0xff);
 205   2                      if(p17==0) 
 206   2                      {
 207   3                              if(VOI==1) voice();                                             //      按键声音
 208   3                              break;                                                                                                          //      按P17跳到前一菜单
 209   3                      }
 210   2                      if(p14==0) 
 211   2                      {
 212   3                              if(VOI==1) voice();                                             //      按键声音
 213   3                              if(i==0) VOI=1;
 214   3                              else VOI=0;
 215   3                      }
 216   2                      if(p15==0) 
 217   2                      {
 218   3                              if(VOI==1) voice();                                             //      按键声音
 219   3                              fill_GD(0,0+i,4,16,0x00);                //     清除反白;      
 220   3                              if(i==0)i=16;                           //      反白下调
 221   3                              else i=0;
 222   3                      }

⌨️ 快捷键说明

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