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

📄 yejing.lst

📁 液晶显示键盘操作密码编辑控制加上对存储器操作
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   YEJING                                                                04/10/2008 19:53:27 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE YEJING
OBJECT MODULE PLACED IN .\obj\yejing.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE src\yejing.c BROWSE DEBUG OBJECTEXTEND PRINT(.\lst\yejing.lst) OBJECT(.\obj
                    -\yejing.obj)

line level    source

   1          /**************************************************************************
   2          文件名:YEJING.C
   3          功能:在指定位置显示单个字符,字符串,汉字和数值 
   4          编程者:0
   5          时间:
   6          **************************************************************************/
   7          /**********************文件包含*******************************************/
   8          #include <reg51.h>
   9          #include <intrins.h>//////用到_nop_();///////
  10          //#include <math.h>////用到取绝对值/////
  11          #include "yejing.h"
  12          
  13          /**********************变量定义 **********************************/
  14          //code Uchar array4[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x2e,0x2b,0x2d};
  15                             //  0    1    2    3    4    5    6    7    8    9    .    +    -  //
  16          //上面用{}的方式定义数组在程序中不容易处理,并且要查字符的代码值,很复杂//////
  17          //code char  array1[]="我爱马海莉! %";/////数组结束一定要检查是否需要加空格接着才有%作为结束标志//
  18          //code char  array2[]="我爱汪亲朋! %";/////数组结束一定要检查是否需要加空格接着才有%作为结束标志///
  19          //code char  array3[]="welcome!%";/////////数组结束一定要检查是否需要加空格接着才有%作为结束标志////
  20          //code char  array4[]="0123456789.+- %";////数组结束一定要检查是否需要加空格接着才有%作为结束标志/////
  21                    ///////此处不要轻易改动,与函数Disp_data(uchar x,uchar y, float ndata)有关////// 
  22          //code char  array5[]="数值超范围! %";//////数组结束一定要检查是否需要加空格接着才有%作为结束标志///
  23          /////////////////////一定要注意:上面数组结束标志处理不好,很容易引起乱码//////////////////////////
  24          /****************************** 短延时函数 ******************************/
  25          void Delay5Ms(void) 
  26          {
  27   1              uint i = 5552;
  28   1              while(i--);
  29   1      }
  30          
  31          /****************************** 长延时函数 ******************************/
  32          void Delay400Ms(void) 
  33          {       
  34   1          uchar i = 5;
  35   1              uint j;
  36   1              while(i--) 
  37   1               {     
  38   2              j=7269;
  39   2                      while(j--);
  40   2               };
  41   1      }
  42          
  43          /****************************** 读忙状态函数 ****************************
  44          * 功能:在正常读写操作之前检测LCD模块的忙状态, 
  45          *       DB7 = 0:LCD控制器空闲;DB7 = 1:LCD控制器忙
  46          *************************************************************************/
  47          void WaitForEnable( void ) 
  48          {
  49   1              DataPort = 0xff;
  50   1              RS =0; 
  51   1              RW = 1; 
  52   1              _nop_();
  53   1              E = 1; 
  54   1              _nop_(); 
C51 COMPILER V7.50   YEJING                                                                04/10/2008 19:53:27 PAGE 2   

  55   1              _nop_();
  56   1              while( DataPort & Busy );////如果Busy的值为1,则一直在此处等待,直到为0/////
  57   1              E = 0;
  58   1      }       
  59                                 
  60          /****************************** 命令写入函数 ****************************
  61          * 功能:向LCD模块写入命令字符CMD,
  62          * 若 AttribC = 1 检测忙信号,若 AttribC = 0 不检测忙信号
  63          ************************************************************************/
  64          void LcdWriteCommand(uchar CMD,uchar AttribC) 
  65          {
  66   1              if (AttribC) WaitForEnable();   ///检测忙信号/////
  67   1              RS = 0; 
  68   1              RW = 0; 
  69   1              _nop_(); 
  70   1              DataPort = CMD;                /// 将命令字符送往数据口 ///
  71   1          _nop_();                          
  72   1              E = 1;
  73   1              _nop_();
  74   1              _nop_();
  75   1              E = 0;
  76   1      }
  77                  
  78          /**************************** 光标定位函数 ******************************
  79          * 功能: 将显示光标定位到posx,posy坐标处
  80          ************************************************************************/
  81          /*void LocateXY( char posx,char posy) 
  82           {
  83             uchar temp;
  84             temp = posx & 0x0f;////????//////
  85            // posy &= 0x01;
  86             switch(posy)
  87               {
  88                  case 0: temp+=0x80;
  89                                  break;
  90                      case 1: temp+=0xc0;
  91                                  break;
  92                      case 2: temp+=0x94;
  93                                  break;
  94                      case 3: temp+=0xd4;
  95                                  break;
  96                     default: break;              
  97               }
  98            LcdWriteCommand(temp,1);///要检测忙信号/////
  99          }*/
 100          /**************************** 光标定位函数 ******************************
 101          * 功能: 将显示光标定位到posx,posy坐标处
 102          ************************************************************************/
 103          void LocateXY( char posx,char posy)
 104          {
 105   1        uchar temp;////temp为在哪行哪个位置显示的液晶的命令值//////
 106   1        temp = posx & 0x07;//对于HD44780、YLF12232F液晶的第一行为00-07/////
 107   1                      ///////第二行为10-17//////////
 108   1        posy &= 0x01;//////液晶只有两行, posy 的值只能为0和1//////
 109   1        if ( posy )temp |= 0x10;////如果为第二行,temp的值为90-97/////
 110   1        temp |= 0x80;           ////如果为第一行,temp的值为80-87/////
 111   1        LcdWriteCommand(temp,1);///要检测忙信号/////
 112   1      }
 113          /***************************** 显示字符写入函数 ***************************
 114          * 功能:在当前光标位置显示一个字符
 115          **************************************************************************/
 116          void LcdWriteData( char dataW ) 
C51 COMPILER V7.50   YEJING                                                                04/10/2008 19:53:27 PAGE 3   

 117          {
 118   1              WaitForEnable();                                ////检测忙信号////
 119   1              RS = 1; 
 120   1              RW = 0; 
 121   1              _nop_();        
 122   1          DataPort = dataW;               ///将显示字符的代码送往数据口////
 123   1              _nop_();                        

⌨️ 快捷键说明

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