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

📄 lcd_menu.lst

📁 c51 led菜单 程序 功能 上下选择菜单
💻 LST
字号:
C51 COMPILER V8.05a   LCD_MENU                                                             08/15/2007 11:05:06 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE LCD_MENU
OBJECT MODULE PLACED IN LCD_MENU.OBJ
COMPILER INVOKED BY: c:\Keil\C51\BIN\C51.EXE LCD_MENU.C DEBUG OBJECTEXTEND

line level    source

   1          #include <REG51.h>
   2          #include<math.h>
   3          #include<INTRINS.H>
   4          
   5          #define Uchar unsigned char
   6          #define Uint  unsigned int
   7          /***********液晶显示器接口引脚定义***************/
   8          sbit    Elcm=      P1^0;
   9          sbit    Rwlcm=  P1^1;
  10          sbit    Dilcm=  P1^2;   
  11          sbit    CS2LCM= P1^3;
  12          sbit    CS1LCM= P1^4;//
  13          /*这个连接只是做实验的临时接法。*/
  14          sfr Datalcm=0xA0;//p2 yin jiao
  15          #define KEYP ((P3>>4)&0X0F) 
  16          
  17          #define  UP   1
  18          #define  DOWN 2
  19          #define  ENTER 4
  20          #define  BACK  8 //特殊按键的编码号
  21          
  22          #define  AD 1
  23          #define  KEY 2 //数据数组排列安排
  24          
  25          #define LCDMS 0
  26          #define LCDMB 40 
  27          //菜单边界
  28          #define LCDDS 45 //数据起点
  29          #define LCDDB 85 //数据显示边界
  30          #define LCDUS 90 //单位显示起始
  31          #define LCDPS 120 //小数点位置
  32          
  33          /******************数组列表*********************/
  34          Uchar code Ezk[];               /*ASCII常规字符点阵码表 */
  35          Uchar code Hzk[];               /*自用汉字点阵码表      */
  36          /********************************/
  37          //定义字符串数组                */
  38          /********************************/
  39          Uchar code MENU[7][5]={"MENU ","ADOUT","KEY  ","menu3","menu4","menu5","menu6"};
  40          Uchar code MENU_MAIN1[]={0X80,0X81};
  41          Uchar code MENU_MAIN2[]={0X82,0X83};
  42          Uchar code MENU_MAIN3[]={0X84,0X85};
  43          Uchar code UNIT[7][3]={"   "," MV","   ","mv2","mv3","mv4","mv5",};
  44          Uchar code SIGN[1]='*';
  45          Uchar  DISDATA[7][5]={"12345"};
  46          unsigned int  SHUJU[6]={12345,20000,30000,40000,50000,60000};
  47          //Uchar  disdata1[7]="12345";
  48          //Uchar  disad[7];
  49          Uchar  adbuff[2];
  50          Uchar  LINE=0;
  51          
  52          
  53          #include "ziku.h"
  54          #include "lcddir.h"
  55          #include "tupian.h"
C51 COMPILER V8.05a   LCD_MENU                                                             08/15/2007 11:05:06 PAGE 2   

  56          void Dismenu(void);
  57          void int2str(char *ss,int ii);
  58          void   uartcsh();
  59          
  60          void Delay1s(void)
  61           {
  62   1        unsigned char h,i,j,k;
  63   1       for(h=5;h>0;h--)
  64   1       for(i=4;i>0;i--)
  65   1       for(j=116;j>0;j--)
  66   1       for(k=214;k>0;k--);
  67   1       }   
  68          
  69                  
  70          void int2str(char *ss,int ii)
  71          
  72                 {  
  73   1               ss[4]=ii%10+48;
  74   1               ss[3]=(ii/10)%10+48;
  75   1               ss[2]=(ii/100)%10+48;
  76   1               //ss[2]='.';
  77   1               ss[1]=(ii/1000)%10+48;
  78   1               ss[0]=(ii/10000)%10+48;
  79   1              }
  80          
  81          //初始化串行口
  82          void   uartcsh()//buad 1200
  83                    {
  84   1              SM0=0;
  85   1              SM1=1;
  86   1              REN=1;
  87   1              TI=0;
  88   1              RI=0;
  89   1              PCON=0;
  90   1              TH1=0x9c;
  91   1              TL1=0X9c;
  92   1              TMOD=0X20;
  93   1              EA=1;
  94   1              ET1=0;
  95   1              ES=1;
  96   1              TR1=1;
  97   1              RI=0;
  98   1              TI=0;
  99   1                }
 100          
 101          
 102          
 103             
 104          
 105          
 106          Uchar Getkey(void)
 107              { Uchar temp9;
 108   1                 temp9=0;
 109   1                 temp9=KEYP;
 110   1            if(temp9!=0)
 111   1                   { while(KEYP!=0);
 112   2                    return(temp9);
 113   2                }
 114   1                      else return(0);
 115   1                      }
 116                  
 117          
C51 COMPILER V8.05a   LCD_MENU                                                             08/15/2007 11:05:06 PAGE 3   

 118                  
 119          void Keyfun(void)
 120              { Uchar temp8;
 121   1                 temp8=Getkey();
 122   1              switch(temp8)
 123   1                          {case  UP :
 124   2                                         LINE++;
 125   2                                                        if(LINE>3) LINE=0;
 126   2                                         Dismenu();break;
 127   2                                case  DOWN:
 128   2                                         if(LINE<1) LINE=3;
 129   2                                         LINE--;
 130   2                                                        Dismenu();break;
 131   2                                default:_nop_();
 132   2                                }
 133   1      
 134   1                              }
 135          
 136          void Dismenu(void)
 137             {    
 138   1              Display(0,LCDMS+5,MENU_MAIN1,2);
 139   1              Display(0,LCDDS+5,MENU_MAIN2,2);
 140   1              Display(0,LCDUS+5,MENU_MAIN3,2);
 141   1         Display(2,LCDMS,MENU[LINE+1],5);
 142   1         Display(4,LCDMS,MENU[LINE+2],5);
 143   1              Display(6,LCDMS,MENU[LINE+3],5);
 144   1         Display(2,LCDUS,UNIT[LINE+1],3);
 145   1              Display(4,LCDUS,UNIT[LINE+2],3);
 146   1              Display(6,LCDUS,UNIT[LINE+3],3);
 147   1              Display(4,LCDPS,SIGN,1);
 148   1      
 149   1         
 150   1               }
 151          /********************************/
 152          /* 演示主程序                   */
 153          /********************************/
 154          
 155          void main(void)
 156          
 157          {
 158   1         int temp_ad;
 159   1      
 160   1              col=0;
 161   1              row=0;
 162   1              Delay(40);              /*延时大约40Ms,等待外设准备好   */
 163   1              Lcminit();/*液晶模块初始化,包括全屏幕清屏*/
 164   1              uartcsh();
 165   1                
 166   1                col=0;
 167   1                row=0;
 168   1                for(row=0;row<8;row++)
 169   1                    for(col=0;col<LCMLIMIT;col++)
 170   1                         { Wrdata(nBitmapDot[row*128+col]);}
 171   1           while(Getkey()==0);
 172   1         Lcminit();
 173   1         int2str(DISDATA[0],SHUJU[AD]);
 174   1              Display(6,LCDDS,DISDATA[0],5);
 175   1              temp_ad=adbuff[1];
 176   1              SHUJU[AD]=(temp_ad<<7)+adbuff[0];
 177   1              int2str(DISDATA[AD],SHUJU[AD]);
 178   1              Display(2,LCDDS,DISDATA[AD],5);
 179   1        
C51 COMPILER V8.05a   LCD_MENU                                                             08/15/2007 11:05:06 PAGE 4   

 180   1              int2str(DISDATA[KEY],SHUJU[KEY]);
 181   1              Display(4,LCDDS,DISDATA[KEY],5);
 182   1              Dismenu();      
 183   1      
 184   1              while(1)
 185   1              { 
 186   2           Keyfun();
 187   2      
 188   2      }
 189   1       
 190   1      
 191   1      }
 192          
 193          
 194          void getadshuju() interrupt 4
 195                  {
 196   1          char temp;
 197   1          temp=SBUF;
 198   1               if(temp&0x80)
 199   1          adbuff[1]=(temp&0x7f);
 200   1               else
 201   1               adbuff[0]=temp;
 202   1          P0=temp;
 203   1               RI=0;
 204   1               TI=0;
 205   1               ES=1;}


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1789    ----
   CONSTANT SIZE    =   2799    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     53      50
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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