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

📄 main.lst

📁 单片机控制程序
💻 LST
字号:
C51 COMPILER V7.02b   MAIN                                                                 07/17/2007 21:54:37 PAGE 1   


C51 COMPILER V7.02b, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <reg52.h>
   2          
   3          #define  uchar unsigned char
   4          #define  uint  unsigned int
   5          
   6          code unsigned char seg7code[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39}; //显示段码
   7          
   8          
   9          /*************lcd函数定义*******************************/
  10          void LCD_en_command(unsigned char command);//write command function
  11          void LCD_en_dat(unsigned char temp);//write data function
  12          void LCD_init(void);//lcd initize function
  13          void delay_nms(unsigned int n);//delay function
  14          void delay1(uint ticks);//delay function
  15          
  16          
  17          /*************初始化定时器及计数器的函数*******************************/
  18          void initsys();
  19          
  20          /*************ad控制管脚定义*******************************/
  21          sbit cs=P3^3;  
  22          sbit wr=P3^5;  
  23          sbit rd=P3^4; 
  24          /*************读AD0804子程序*******************************/
  25          unsigned char adc0804( void )     //读AD0804子程序
  26          {   unsigned char addata,i; 
  27   1              rd=1;wr=1;//int1=1; //读ADC0804前准备
  28   1              P1=0xff;         //P1全部置一准备
  29   1              cs=0;wr=0;wr=1; //启动ADC0804开始测电压
  30   1              rd=0;     //开始读转换后数据
  31   1              i=i; i=i;    //无意义语句,用于延时等待ADC0804读数完毕
  32   1              addata=P1;//读出的数据赋与addate
  33   1              rd=1;cs=1;//读数完毕
  34   1      return(addata);//返回最后读出的数据
  35   1      }
  36          /*************ADC0804读出的数据处理*******************************/
  37          unsigned int datpro(void)//ADC0804读出的数据处理
  38          { unsigned char x;   
  39   1      unsigned int dianyah,dianyal; //用于存储读出数据的高字节和低字节
  40   1      unsigned int dianya=0;        //存储最后处理完的结果 注意数据类型
  41   1      for(x=0;x<10;x++)             //将10次测得的结果存储在dianya中
  42   1      {dianya=adc0804()+dianya; }
  43   1      dianya=dianya/10; //求平均值
  44   1      dianyah=dianya&0xf0; //屏蔽低四位
  45   1      dianyah=dianyah>>4;  //右移四位 取出高四位
  46   1      dianyal=dianya&0x0f; //屏蔽高四位 取出低四位
  47   1      dianya=dianyal*20+dianyah*320; //最后的结果是一个四位数,便于显示
  48   1      return(dianya);//返回最后处理结果
  49   1      }
  50          /*************显示输出函数******************************/
  51          void AD_LCD()
  52          {  unsigned long date;
  53   1         //unsigned long date1;
  54   1         date=datpro();  //调用数据处理最后结果
  55   1      
C51 COMPILER V7.02b   MAIN                                                                 07/17/2007 21:54:37 PAGE 2   

  56   1      
  57   1         /************千位********************************/
  58   1          LCD_en_command(0xc5);
  59   1          LCD_en_dat(seg7code[date/1000]);
  60   1          delay_nms(20);
  61   1              /*********输出得是.***********************************/
  62   1          LCD_en_command(0xc6);//输出得是.
  63   1          LCD_en_dat(46);
  64   1          delay_nms(20);
  65   1         /**********百位***************************************/
  66   1          LCD_en_command(0xc7);
  67   1          LCD_en_dat(seg7code[date%1000/100]);
  68   1          delay_nms(20);
  69   1              /*********十位**************************************/
  70   1          LCD_en_command(0xc8);
  71   1          LCD_en_dat(seg7code[date%100/10]);
  72   1          delay_nms(20);
  73   1              /*********个位**************************************/
  74   1               LCD_en_command(0xc9);
  75   1          LCD_en_dat(seg7code[date%10]);
  76   1          delay_nms(20);
  77   1          /*********输出得是V*************************************/
  78   1          LCD_en_command(0xca);//输出得是V
  79   1          LCD_en_dat(86);
  80   1          delay_nms(20);
  81   1      }
  82          
  83          main()
  84          { 
  85   1      LCD_init();
  86   1      while(1)
  87   1        {  
  88   2            AD_LCD();
  89   2        }     
  90   1      } 


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    378    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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