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

📄 yejing.lst

📁 DS18B20温度采集然后红外发射出去,接收板接收红外并LCD显示接收的数据信息,有完整的发射接收程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   YEJING                                                                04/10/2008 22:19:37 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          #define Busy    0x80
  15          
  16          #define DataPort  P1      /* 定义LCD模块数据端口 */
  17          sbit    RS      = P3^6;       /* 定义LCD模块控制引脚,可根据需要进行修改 */
  18          sbit    RW      = P3^5;
  19          sbit    E   = P3^4;
  20          
  21          //#define DataPort P0     /* 定义LCD模块数据端口 */
  22          //sbit  RS      = P3^7;       /* 定义LCD模块控制引脚,可根据需要进行修改 */
  23          //sbit  RW      = P3^6;
  24          //sbit  E   = P3^5;
  25          
  26          
  27          //code uchar array4[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x2e,0x2b,0x2d};
  28                             //  0    1    2    3    4    5    6    7    8    9    .    +    -  //
  29          //上面用{}的方式定义数组在程序中不容易处理,并且要查字符的代码值,很复杂//////
  30          //code char  array1[]="我爱马海莉! %";////数组结束一定要检查是否需要加空格接着才有%作为结束标志/////
  31          //code char  array2[]="我爱汪亲朋! %";////数组结束一定要检查是否需要加空格接着才有%作为结束标志/////
  32          //code char  array3[]="welcome!%";////数组结束一定要检查是否需要加空格接着才有%作为结束标志/////
  33          code char array4[]="0123456789.+- %";//数组结束一定要检查是否需要加空格接着才有%作为结束标志//////
  34                                              ///////此处不要轻易改动//////
  35          code char array5[]="数值超范围! %";////数组结束一定要检查是否需要加空格接着才有%作为结束标志/////
  36          //code char array6[]="";//     
  37          /****************************** 短延时函数 ******************************/
  38          void Delay5Ms(void) 
  39          {
  40   1              uint i = 5552;
  41   1              while(i--);
  42   1      }
  43          
  44          /****************************** 长延时函数 ******************************/
  45          void Delay400Ms(void) 
  46          {       
  47   1          uchar i = 5;
  48   1              uint j;
  49   1              while(i--) 
  50   1               {     
  51   2              j=7269;
  52   2                      while(j--);
  53   2               };
  54   1      }
C51 COMPILER V7.50   YEJING                                                                04/10/2008 22:19:37 PAGE 2   

  55          
  56          /****************************** 读忙状态函数 ****************************
  57          * 功能:在正常读写操作之前检测LCD模块的忙状态, 
  58          *       DB7 = 0:LCD控制器空闲;DB7 = 1:LCD控制器忙
  59          *************************************************************************/
  60          void WaitForEnable( void ) 
  61          {
  62   1              DataPort = 0xff;
  63   1              RS =0; 
  64   1              RW = 1; 
  65   1              _nop_();
  66   1              E = 1; 
  67   1              _nop_(); 
  68   1              _nop_();
  69   1              while( DataPort & Busy );////如果Busy的值为1,则一直在此处等待,直到为0/////
  70   1              E = 0;
  71   1      }       
  72                                 
  73          /****************************** 命令写入函数 ****************************
  74          * 功能:向LCD模块写入命令字符CMD,
  75          * 若 AttribC = 1 检测忙信号,若 AttribC = 0 不检测忙信号
  76          ************************************************************************/
  77          void LcdWriteCommand(uchar CMD,uchar AttribC) 
  78          {
  79   1              if (AttribC) WaitForEnable();   ///检测忙信号/////
  80   1              RS = 0; 
  81   1              RW = 0; 
  82   1              _nop_(); 
  83   1              DataPort = CMD;                /// 将命令字符送往数据口 ///
  84   1          _nop_();                          
  85   1              E = 1;
  86   1              _nop_();
  87   1              _nop_();
  88   1              E = 0;
  89   1      }
  90                  
  91          /**************************** 光标定位函数 ******************************
  92          * 功能: 将显示光标定位到posx,posy坐标处
  93          ************************************************************************/
  94          /*void LocateXY( char posx,char posy) 
  95           {
  96             uchar temp;
  97             temp = posx & 0x0f;////????//////
  98            // posy &= 0x01;
  99             switch(posy)
 100               {
 101                  case 0: temp+=0x80;
 102                                  break;
 103                      case 1: temp+=0xc0;
 104                                  break;
 105                      case 2: temp+=0x94;
 106                                  break;
 107                      case 3: temp+=0xd4;
 108                                  break;
 109                     default: break;              
 110               }
 111            LcdWriteCommand(temp,1);///要检测忙信号/////
 112          }*/
 113          /**************************** 光标定位函数 ******************************
 114          * 功能: 将显示光标定位到posx,posy坐标处
 115          ************************************************************************/
 116          void LocateXY( char posx,char posy)
C51 COMPILER V7.50   YEJING                                                                04/10/2008 22:19:37 PAGE 3   

 117          {
 118   1        uchar temper;////temper为在哪行哪个位置显示的液晶的命令值//////
 119   1        temper = posx & 0x07;//对于HD44780、YLF12232F液晶的第一行为00-07/////
 120   1                      ///////第二行为10-17//////////
 121   1        posy &= 0x01;//////液晶只有两行, posy 的值只能为0和1//////
 122   1        if ( posy )temper |= 0x10;////如果为第二行,temp的值为90-97/////
 123   1        temper |= 0x80;           ////如果为第一行,temp的值为80-87/////
 124   1        LcdWriteCommand(temper,1);///要检测忙信号/////
 125   1      }
 126          /***************************** 显示字符写入函数 ***************************
 127          * 功能:在当前光标位置显示一个字符
 128          **************************************************************************/

⌨️ 快捷键说明

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