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

📄 lcm.lst

📁 rfproV02发送程序和80C51演示程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   LCM                                                                   11/15/2007 14:43:54 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE LCM
OBJECT MODULE PLACED IN lcm.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcm.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2          /*----------------------------- Program Overview -------------------------------
   3                           Device Name:   AT89S52
   4                                   ROM:   8 K bytes
   5                                   RAM:   512 bytes
   6                  Chip Basic Functions:   40pin, 32I/O, 16 bit Timer *3, 8 bit UART *1, Eight Interrupt Sources   
   7                                          4.0V to 5.5V Operating Range, OSC 11.0592 MHz (0.9216 us)
   8                              Complier:   keil C 750
   9                             Simulator:   keil C 750
  10                            Programmer:   
  11                             File Name:   lcm.c
  12                        File Functtion:   lcm display function
  13                             Copyright:   XIAZHAOJUN
  14           First Version Finished Date:   2007.11.6
  15                                Others:   
  16          ------------------------------- Modified Note ----------------------------------
  17                           Old Version:   
  18                           New Version:
  19                          New CheckSum: 
  20                              Modifier:
  21                         Modified Date:
  22                    Modified Causation:
  23                         Modified Mean: 
  24          -------------------------------------------------------------------------------*/
  25          
  26          //----------------------------- Include ----------------------------------------
  27          #include <reg52.h>
  28          //#include <stdio.h>  
  29          //#include<intrins.h>
  30          #include<lcm.h>
  31          #include<com.h>
  32          #include<key.h>
  33          //#include<cmain.h>
  34          
  35          
  36          
  37          
  38          //----------------------------- SFR Definition ---------------------------------
  39          /*----------------------------------------------
  40          LCD1602
  41          |DB0-----P1.0 | DB4-----P1.4 | RW-------P3.3 |
  42          |DB1-----P1.1 | DB5-----P1.5 | RS-------P3.2 |
  43          |DB2-----P1.2 | DB6-----P1.6 | E--------P3.4 |
  44          |DB3-----P1.3 | DB7-----P1.7 |
  45           VSS--GND
  46           VDD--VCC
  47           BLA--VCC
  48           BLK--GND
  49           VLCD接1K电阻到GND 
  50          ----------------------------------------------*/
  51          
  52          sbit LCM_RW = P3^6;
  53          sbit LCM_RS = P3^7;
  54          sbit LCM_E = P3^4;
  55          
C51 COMPILER V7.50   LCM                                                                   11/15/2007 14:43:54 PAGE 2   

  56          //----------------------------- Macro Definition -------------------------------
  57          
  58          #define LCM_Data P1
  59          
  60          
  61          #define uchar unsigned char
  62          #define uint unsigned int
  63          
  64          //----------------------------- Constant Definition ----------------------------
  65          uchar lcm_md;
  66          
  67          //----------------------------- Variable Definition ----------------------------
  68          
  69          
  70          unsigned char data dsip_ra;
  71          unsigned char data dsip_rb;
  72          
  73          unsigned char data dsip_r0;
  74          unsigned char data dsip_r1;
  75          
  76          unsigned char data dsip_r4;
  77          unsigned char data dsip_r5;
  78          
  79          
  80          //----------------------------- Bit Definition ---------------------------------
  81          
  82          bit b_disp;
  83          
  84          
  85          //----------------------------- Program Code -----------------------------------
  86          
  87          
  88          /*----------------------------- Subroutine -------------------------------------
  89                  Name: lcm table
  90              Function: 
  91                 Entry: 
  92                  Exit: 
  93               Caution: 
  94          -------------------------------------------------------------------------------*/
  95          uchar code dsiptaba[14]={" XIA ZHAO JUN "};
  96          uchar code dsiptabb[14]={"copyright 2007"};
  97          uchar code dsiptabwait[9]={"wait...  "};
  98          
  99          
 100          uchar code dsp_tab_line[10][9]=
 101          {
 102                  {"OFF Stop "},  //0
 103                  {"OFF Up   "},  //1
 104                  {"OFF Down "},  //2
 105                  {"OFF Left "},  //3
 106                  {"OFF Right"},  //4
 107                  
 108                  {"ON  Stop "},  //5
 109                  {"ON  Up   "},  //6
 110                  {"ON  Down "},  //7
 111                  {"ON  Left "},  //8
 112                  {"ON  Right"}   //9
 113          };
 114          
 115          uchar code dsp_tab_send[7][9]=
 116          {
 117                  {"Stop...  "},  //0
C51 COMPILER V7.50   LCM                                                                   11/15/2007 14:43:54 PAGE 3   

 118                  {"Up...    "},  //1
 119                  {"Down...  "},  //2
 120                  {"Left...  "},  //3
 121                  {"Right... "},  //4
 122                  
 123                  {"OFF...   "},  //5
 124                  {"ON...    "}   //6
 125          
 126          };
 127          
 128          
 129          uchar code dsp_tab_send_OK[9]={"Send OK  "};            //0  
 130          uchar code dsp_tab_ERR[9]=    {"COM Error"};    //6
 131          
 132          
 133          
 134          /*----------------------------- Subroutine -------------------------------------
 135                  Name: delay
 136              Function: 
 137                 Entry: 
 138                  Exit: 
 139               Caution: 
 140          -------------------------------------------------------------------------------*/
 141          void del_100us(void){
 142   1              uchar j;
 143   1              for(j=100;j>0;j--);     
 144   1      }
 145          
 146          void del_1ms(void){
 147   1              uchar j;
 148   1              for(j=10;j>0;j--){
 149   2                      del_100us();
 150   2              }       
 151   1      }
 152          
 153          void del_10ms(void){
 154   1              uchar i;
 155   1              for(i=100;i>0;i--){     
 156   2                      del_100us();
 157   2              }
 158   1      }
 159          
 160          
 161          void del_100ms(void){
 162   1              uchar i;
 163   1              for(i=10;i>0;i--){      
 164   2                      del_10ms();
 165   2              }
 166   1      }
 167          
 168          static void short_delay(unsigned int i){
 169   1              while (i>0) i--;
 170   1      }
 171          
 172          
 173          /*----------------------------- Subroutine -------------------------------------
 174                  Name: 1602 LCM busy
 175              Function: 
 176                 Entry: 
 177                  Exit: 
 178               Caution: 
 179          -------------------------------------------------------------------------------*/
C51 COMPILER V7.50   LCM                                                                   11/15/2007 14:43:54 PAGE 4   

 180          void ReadBusyLCM(void){
 181   1              bit result;
 182   1              do{
 183   2                      LCM_RS = 0;
 184   2                      LCM_RW = 1;
 185   2                      LCM_E = 0;
 186   2                      LCM_E = 1;
 187   2                      LCM_Data=0xff;
 188   2                      result = (bit)(LCM_Data&0x80);
 189   2                      LCM_E = 0;
 190   2              }while (result == 1);
 191   1              del_1ms();
 192   1      }
 193          
 194          /*----------------------------- Subroutine -------------------------------------
 195                  Name: lcm command
 196              Function: 
 197                 Entry: 
 198                  Exit: 
 199               Caution: 
 200          -------------------------------------------------------------------------------*/
 201          void WriteCommandLCM(unsigned char WCLCM,unsigned char BusyC){   //BusyC为0时忽略忙检测
 202   1              if (BusyC){
 203   2                      ReadBusyLCM(); //根据需要检测忙
 204   2              }
 205   1              LCM_E=0;
 206   1              LCM_RS=0;
 207   1              LCM_RW=0; 
 208   1              LCM_E=1; 
 209   1              LCM_Data=WCLCM;
 210   1              LCM_E=0;
 211   1      }
 212          
 213          /*----------------------------- Subroutine -------------------------------------
 214                  Name: lcm write data
 215              Function: 
 216                 Entry: 
 217                  Exit: 
 218               Caution: 
 219          -------------------------------------------------------------------------------*/
 220          void WritedataLCM(unsigned char WCLM,unsigned char BuyC){
 221   1              if (BuyC){
 222   2                      ReadBusyLCM(); //根据需要检测忙
 223   2              }
 224   1              LCM_E=0;
 225   1              LCM_RS=1;
 226   1              LCM_RW=0; 
 227   1              LCM_E=1; 
 228   1              LCM_Data=WCLM;
 229   1              LCM_E=0;
 230   1      }
 231          
 232          /*----------------------------- Subroutine -------------------------------------
 233                  Name: lcm init
 234              Function: 
 235                 Entry: 
 236                  Exit: 
 237               Caution: 
 238          -------------------------------------------------------------------------------*/
 239          void LCMInit(void){              //LCM初始化
 240   1              WriteCommandLCM(0x38,1); //显示模式设置,开始要求每次检测忙信号
 241   1              WriteCommandLCM(0x0C,1); // 显示开及光标设置
C51 COMPILER V7.50   LCM                                                                   11/15/2007 14:43:54 PAGE 5   

 242   1              WriteCommandLCM(0x06,1); // 显示光标移动设置
 243   1              WriteCommandLCM(0x01,1); //显示清屏
 244   1              short_delay(250);
 245   1      }
 246          
 247          /*----------------------------- Subroutine -------------------------------------
 248                  Name: lcm write tab data
 249              Function: 
 250                 Entry: 
 251                  Exit: 
 252               Caution: 
 253          -------------------------------------------------------------------------------*/
 254          void LCMwritetab_rst(void){
 255   1              unsigned char i;
 256   1              WriteCommandLCM(0x01,1);
 257   1              del_100ms();
 258   1              for(i=0;i<9;i++)
 259   1              {
 260   2                      WritedataLCM(dsp_tab_line[0][i],1);
 261   2              }
 262   1              
 263   1              WriteCommandLCM(0xc0,1);
 264   1              for(i=0;i<9;i++) {
 265   2                      WritedataLCM(dsiptabwait[i],1);
 266   2              }
 267   1      }
 268          
 269          void LCMwritetab(void){
 270   1              unsigned char i;

⌨️ 快捷键说明

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