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

📄 main.lst

📁 校园打铃系统
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.06   MAIN                                                                  06/08/2007 16:16:19 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\main.obj
COMPILER INVOKED BY: D:\常用软件\keil\C51\BIN\C51.EXE ..\电子设计竞赛\接收\main.c BROWSE DEBUG OBJECTEXTEND PRINT(.\main
                    -.lst) OBJECT(.\main.obj)

stmt level    source

   1          #include<reg52.h>
   2          #define  uchar unsigned char
   3          
   4          #define led_data_out P1//八位开关
   5          void zhuye(void);
   6          void set_frequency(void);
   7          uchar hh=0;
   8          uchar code *frequency0[10]={"39.50M","39.60M","39.70M","39.80M","39.90M","40.00M","40.10M","40.20M","40.30
             -M"," "};//发射
   9          uchar code *frequency1[10]={"45.50M","45.60M","45.70M","45.80M","45.90M","46.00M","46.10M","46.20M","46.30
             -M"," "};//接收
  10          int code fry0[9]={3950,3960,3970,3980,3990,4000,4010,4020,4030};//发射
  11          int code fry1[9]={4550,4560,4570,4580,4590,4600,4610,4620,4630};//接收
  12          void MC145162_Reset(unsigned int Ctrl_Data,unsigned long int Ref_Data,unsigned int Tx_Count,unsigned int R
             -x_Count);
  13          void data_display(void);
  14          void message(void);
  15          void adc(void);
  16          void led(void);
  17          uchar  control_data;
  18          uchar  led_data;
  19          int xdata ad0_data[2];
  20          int xdata ad1_data[2];
  21          uchar cd[32]={' ',' '};
  22          /*说明:功能显示函数  *********************************************************
  23          ****** LCD_set_xy  ******** //显示光标定位  ***********************************
  24          ****** LCD_write_char ***** //在指定位置显示字符 ******************************
  25          ****** transfer_display *** //显示连续字串  ***********************************
  26          ****** LCD_Write_String *** //写入字符串   ************************************
  27          ****** FLOAT_NUM_Display ** //显示浮点型   ************************************
  28          ****** INT_NUM_Display **** //显示整数    *************************************
  29          ****** HEX_NUM_Display **** //显示十六进制   **********************************
  30          ******为了避免程序"死等",故在功能函数中尽量避免调用Delay函数******************/
  31          
  32          
  33          /***************************LCD Part*******************************************/
  34          //#define  uchar unsigned char
  35          
  36          #define  LCDIO     P0        //LCD数据口
  37          
  38          #define  LINE1     0        //1602第一行
  39          
  40          #define  LINE2     1        //1602第二行
  41          
  42          #define  LINE1_HEAD    0x80 //第一行首地址
  43          
  44          #define  LINE2_HEAD    0xC0 //第二行首地址
  45          
  46          
  47          /****************************LCD与单片机的接口*********************************/
  48          
  49          sbit LCD1602_RS=P2^2;   //指令/数据选择,1选择数据,0选择指令
  50          
  51          sbit LCD1602_RW=P2^1;   //读写选择,1读出,0写入
C51 COMPILER V7.06   MAIN                                                                  06/08/2007 16:16:19 PAGE 2   

  52          
  53          sbit LCD1602_EN=P2^0;   //写使能。高有效,下降沿时锁定数据
  54          
  55          sbit LCD1602_busy=LCDIO^7; //判忙标志
  56          
  57          /********************数组定义区************************************************/
  58          
  59          uchar code CHR[] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','.'};
  60          
  61          uchar xdata LCDDisplaybuffer[32]={0};
  62          
  63          /******************全局变量定义区**********************************************/
  64          
  65          unsigned long frequency;  //显示整型定义
  66          
  67          float dd;                //显示浮点型定义]
  68          
  69          uchar zhi=0x30;          //数字0的代码值
  70          
  71          long int Num;
  72          
  73          uchar Bite;
  74          
  75          /******************函数声明区**************************************************/
  76          
  77          void LCD_en_command(uchar command);   //写指令
  78          
  79          void LCD_en_dat(uchar temp);         //写数据
  80          
  81          void LCD_set_xy( uchar x, uchar y );//设置显示地址
  82          
  83          void LCD_write_char( uchar x,uchar y,uchar dat);//显示字符
  84          
  85          void LCD_write_string(uchar X,uchar Y,uchar *s);//显示字符串
  86          
  87          //void transfer_display(uchar zhi,uchar x,uchar y);//显示滚动的字符
  88          
  89          void LCD_init(void);       //LCD初始化
  90          
  91          void  LCD_busy();           //判忙
  92          
  93          void FLOAT_NUM_Display(float dd,uchar x,uchar y);       //显示浮点型
  94          
  95          //void INT_NUM_Display(unsigned int Num,uchar x,uchar y);//显示整型
  96          
  97          //void HEX_NUM_Display(unsigned long  Num,uchar Bite,uchar x,uchar y);//显示十六进制
  98          
  99          void delay_nms(unsigned int n);//延时功能
 100          
 101          /*******************nms延时函数************************************************/
 102          
 103          
 104          void delay_nms(unsigned int n)
 105          {
 106   1          unsigned int i=0,j=0;
 107   1          for (i=n;i>0;i--)
 108   1             for (j=0;j<1140;j++)
 109   1                   {;};
 110   1      
 111   1      }
 112          
 113          
C51 COMPILER V7.06   MAIN                                                                  06/08/2007 16:16:19 PAGE 3   

 114          
 115          /*******************************************************************************
 116          /***************LCD模块的子程序*************************************************
 117          ****************要注意判忙程序的写法和在指令数据函数里放的顺序,不可调换********/
 118          
 119          //判忙程序
 120          void LCD_busy()
 121          {
 122   1          LCDIO=0xff;    //置p0口为输入状态
 123   1          LCD1602_RS=0;
 124   1          LCD1602_RW=1;
 125   1          LCD1602_EN=1;
 126   1          while(LCD1602_busy);
 127   1          LCD1602_EN=0;
 128   1      }
 129          
 130          //写入指令代码,即数据的地址
 131          void LCD_en_command(uchar command)
 132          {
 133   1      
 134   1          LCDIO=command;
 135   1          LCD1602_RS=0;
 136   1          LCD1602_RW=0;
 137   1          LCD1602_EN=0;
 138   1          LCD_busy();
 139   1          LCD1602_EN=1;
 140   1      }
 141          
 142          
 143          //写入要显示的数据
 144          void LCD_en_dat(uchar dat)
 145          {
 146   1          LCDIO=dat;
 147   1          LCD1602_RS=1;
 148   1          LCD1602_RW=0;
 149   1          LCD1602_EN=0;
 150   1          LCD_busy();
 151   1          LCD1602_EN=1;
 152   1      }
 153          
 154          /*********************************************************************************
 155          ** 函数名:void LCD_set_xy( uchar x, uchar y )************************************
 156          ** 功能:设置LCD显示的起始位置****************************************************
 157          ** 入口参数:uchar  x,uchar y (x:0-15;y:0-1;)************************************
 158          ********************LCD第一行显示寄存器地址:0X80-0X8F****************************
 159          ********************LCD第一行显示寄存器地址:0XC0-0XCF****************************
 160          ***********  uchar x,uchar y(字符显示的坐标)************************************
 161          ** 出口参数:无 ******************************************************************
 162          **********************************************************************************/
 163          
 164          
 165          void LCD_set_xy( uchar x, uchar y )
 166          {
 167   1      
 168   1          uchar address;//光标位置
 169   1          if (y==LINE1)
 170   1               address=LINE1_HEAD+x;
 171   1          else
 172   1               address=LINE2_HEAD+x;
 173   1      
 174   1          LCD_en_command(address);
 175   1      }
C51 COMPILER V7.06   MAIN                                                                  06/08/2007 16:16:19 PAGE 4   

 176          
 177          
 178          
 179          /*********************************************************************************
 180          ** 函数名:void LCD_write_char( uchar x,uchar y,uchar dat)************************
 181          ** 功能:在指定位置显示单字符(最多32个字符)*************************************
 182          ** 入口参数:uchar  dat (直接输入需要显示的字符,例如'1','a'等等)***************
 183          ***********  uchar x,uchar y(字符显示的坐标)************************************
 184          ** 出口参数:无 ******************************************************************
 185          **********************************************************************************/
 186          
 187          void LCD_write_char( uchar x,uchar y,uchar dat)
 188          {
 189   1      
 190   1         LCD_set_xy( x, y );
 191   1         LCD_en_dat(dat);
 192   1      
 193   1      }
 194          
 195          
 196          /*********************************************************************************
 197          **函数名:void transfer_display()**************************************************
 198          **功能:显示从定义的zhi的ASCALL码开始的连续的字符(最多显示32个字符)**************
 199          **入口参数:uchar zhi (输入要显示连续字串的首字符)*********************************
 200          **其中的i,j是x轴,LINE1,LINE2为y轴************************************************
 201          **出口参数:无*********************************************************************/
 202          
 203          
 204          /*void transfer_display(uchar zhi,uchar x,uchar y)
 205          {
 206          
 207              uchar i,j;
 208          
 209              for(i=x;i<16;i++)  //第一行显示
 210                     {
 211                       LCD_write_char(i,y,zhi++);
 212                     }
 213          
 214                     y^=1;
 215              for(j=0;j<16;j++)  //当第一行显示满后第二行显示
 216                     {
 217                       LCD_write_char(j,y,zhi++);
 218                     }
 219          
 220          }
 221          
 222          /*********************************************************************************
 223          ** 函数名:void LCD_write_string(uchar X,uchar Y,uchar *s)************************
 224          ** 功能:字符串显示的输入函数(最多32个字符)*************************************
 225          ** 入口参数:uchar  *s (直接输入需要显示的字符串,例如"welcome to use!")********
 226          ***********  uchar X,uchar Y(第一个字符开始显示的坐标)**************************
 227          ** 出口参数:无 ******************************************************************
 228          **********************************************************************************/
 229          void LCD_write_string(uchar X,uchar Y,uchar *s)
 230          {
 231   1      
 232   1          while (*s)  // 显示的字符
 233   1             {
 234   2      

⌨️ 快捷键说明

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