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

📄 smc1602.lst

📁 【仿真】proteus中LCD和4x4键盘联合仿真.rar
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.05a   SMC1602                                                              08/08/2007 08:55:15 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE SMC1602
OBJECT MODULE PLACED IN SMC1602.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE sources\SMC1602.c BROWSE INCDIR(.\include;.\include) DEBUG OBJECTEXTEND PRI
                    -NT(.\SMC1602.lst) OBJECT(SMC1602.obj)

line level    source

   1          //*************************************************************************************************
   2          //*                                                                                                                                                                                               *
   3          //*             ***************************SMC1602驱动程序*************************                                *
   4          //*                                                                                                                                                                                               *
   5          //*************************************************************************************************
   6          
   7          
   8          //*************************************************************************************************
   9          //*                                                                                                                                                                                               *
  10          //*                      ******************************头文件及宏定义**************************                           *
  11          //*                                                                                                                                                                                               *
  12          //*************************************************************************************************
  13          #include <at89x51.h>
  14          
  15          //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<端口设置宏定义>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  16          #define LCDRS P3_5                                                                 //寄存器选择信号:
  17                                                                                                             //           0--数据寄存器;
  18                                                                                                             //           1--指令寄存器。
  19          
  20          #define LCDRW P3_6                                                                 //读写信号:
  21                                                                                                             //           1--读LCD;
  22                                                                                                             //           0--写LCD。
  23          
  24          #define LCDE P3_7                                                                  //片选信号,当输入下降沿信号时,
  25                                                                                                             //执行指令或传送数据。
  26          
  27          #define LCDPORT P2                                                                 //LCD数据接口。
  28          
  29          
  30          
  31          //*************************************************************************************************
  32          //*                                                                                                                                                                                               *
  33          //*                      ******************************延时函数*****************************                              *
  34          //*                                                                                                                                                                                               *
  35          //*************************************************************************************************
  36          void vDelay()
  37          {
  38   1              unsigned int uiCount;
  39   1              for(uiCount=0;uiCount<250;uiCount++);
  40   1      }
  41          
  42          //*************************************************************************************************
  43          //*                                                                                                                                                                                               *
  44          //*                      **************************把1个命令写入LCD*************************                              *
  45          //*                                                                                                                                                                                               *
  46          //*************************************************************************************************
  47          void vWriteCMD(unsigned char ucCommand)                                   
  48          {
  49   1              vDelay();                               //先延时。
  50   1      
  51   1              LCDE=1;                                 //然后把LCD改为写入命令状态。
  52   1              LCDRS=0;
  53   1              LCDRW=0;
  54   1      
C51 COMPILER V8.05a   SMC1602                                                              08/08/2007 08:55:15 PAGE 2   

  55   1              LCDPORT=ucCommand;                      //再输出命令。
  56   1      
  57   1              LCDE=0;                                 //最后执行命令。
  58   1      }
  59          
  60          
  61          //*************************************************************************************************
  62          //*                                                                                                                                                                                               *
  63          //*                      ***************************把1个数据写入LCD************************                              *
  64          //*                                                                                                                                                                                               *
  65          //*************************************************************************************************
  66          void vWriteData(unsigned char ucData)                                     
  67          {
  68   1              vDelay();                          //先延时。
  69   1      
  70   1              LCDE=1;                            //然后把LCD改为写入数据状态。
  71   1              LCDRS=1;
  72   1              LCDRW=0;
  73   1      
  74   1              LCDPORT=ucData;                    //再输出数据。
  75   1      
  76   1              LCDE=0;                            //最后显示数据。
  77   1      }
  78          
  79          
  80          
  81          //*************************************************************************************************
  82          //*                                                                                                                                                                                               *
  83          //*                      **********************把1个字符显示到当前光标处*********************                             *
  84          //*                                                                                                                                                                                               *
  85          //*************************************************************************************************
  86          void vShowOneChar(unsigned char ucChar)
  87          {
  88   1              switch(ucChar)
  89   1                      {
  90   2                      case ' ': vWriteData(0x20);break;
  91   2                      case '!': vWriteData(0x21);break;
  92   2                      case '"': vWriteData(0x22);break;
  93   2                      case '#': vWriteData(0x23);break;
  94   2                      case '$': vWriteData(0x24);break;
  95   2                      case '%': vWriteData(0x25);break;
  96   2                      case '&': vWriteData(0x26);break;
  97   2                      case '>': vWriteData(0x27);break;
  98   2                      case '(': vWriteData(0x28);break;
  99   2                      case ')': vWriteData(0x29);break;
 100   2                      case '*': vWriteData(0x2A);break;
 101   2                      case '+': vWriteData(0x2B);break;

⌨️ 快捷键说明

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