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

📄 lcd.lst

📁 将C8051F040单片机的8路A/D及片内温度传感器的采样值通过串口发送到上位机上
💻 LST
字号:
C51 COMPILER V7.09   LCD                                                                   11/10/2008 14:57:44 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN lcd.OBJ
COMPILER INVOKED BY: C:\SiLabs\MCU\IDEfiles\C51\BIN\C51.exe lcd.c DB OE

line level    source

   1          #include "c8051f040.h"
   2          #include <intrins.h>            //      液晶点阵显示试验  -128*64,控制器DM12864I
   3          #include "STDIO.h"
   4          #include "ADC.h"
   5          #include "const.h"
*** WARNING C317 IN LINE 85 OF const.h: attempt to redefine macro 'SYSCLK'
   6          unsigned int result[9];
   7          void Delay1us(unsigned char);
   8          void Delay1ms(unsigned char);
   9          void Delay1s(unsigned char T);           
  10          void ADC0_Init (void)
  11          {
  12   1         char SFRPAGE_SAVE = SFRPAGE;        // 保存当前SFRPAGE
  13   1         SFRPAGE = LEGACY_PAGE;              // 改变页
  14   1      
  15   1         REF0CN = 0x07;
  16   1      
  17   1         SFRPAGE = ADC0_PAGE;                // 改变页
  18   1              ADC0CF    = 0x10;
  19   1          ADC0CN    = 0xC0;
  20   1         AMX0SL = 0x00;                      // 选择AIN0作为ADC mux输出
  21   1         //ADC0CF = (SYSCLK/2500000) << 3;     // ADC转换时钟= 2.5MHz
  22   1         //ADC0CF &= ~0x07;                    // PGA gain = 1
  23   1      
  24   1         SFRPAGE = SFRPAGE_SAVE;             // 恢复SFRPAGE
  25   1      }
  26          
  27          void ADC0_Conver (void)
  28          {
  29   1         unsigned char i;   // ADC mux 通道 (0-8)
  30   1         unsigned int data temp;
  31   1         char SFRPAGE_SAVE = SFRPAGE;        // 保存当前SFRPAGE
  32   1         SFRPAGE = ADC0_PAGE;                // 改变页
  33   1      
  34   1         for (i=0;i<9;i++)
  35   1         {
  36   2                      AMX0SL = i;                                         // 设置mux到通道
  37   2                      Delay1ms(1);
  38   2                      AD0INT = 0;                      // 清除ADC转换完成标志
  39   2                      AD0BUSY = 1;
  40   2                      while (!AD0INT);
  41   2                      temp = ADC0H;
  42   2                      temp = temp*256 + ADC0L;
  43   2                      result[i] = temp;                // 读ADC值
  44   2         }
  45   1      
  46   1         SFRPAGE = SFRPAGE_SAVE;             // 恢复SFRPAGE
  47   1         }
  48          void Timer_Init()
  49          {
  50   1         SFRPAGE   = TMR3_PAGE;
  51   1          TMR3CN    = 0x04;
  52   1          TMR3CF    = 0x08;
  53   1          RCAP3L    = 0x60;
  54   1          RCAP3H    = 0xFF;
C51 COMPILER V7.09   LCD                                                                   11/10/2008 14:57:44 PAGE 2   

  55   1      }
  56          void UART_Init()
  57          {
  58   1              SFRPAGE   = UART0_PAGE;
  59   1          SCON0     = 0x50;
  60   1          SSTA0     = 0x1A;
  61   1              ES0=0;
  62   1              PS=0;
  63   1              TI0=1;
  64   1              RI0=0;
  65   1      }
  66          void Port_IO_Init()
  67          {
  68   1          // P0.0  -  TX0 (UART0), Open-Drain, Digital
  69   1          // P0.1  -  RX0 (UART0), Open-Drain, Digital
  70   1          // P0.2  -  Unassigned,  Open-Drain, Digital
  71   1          // P0.3  -  Unassigned,  Open-Drain, Digital
  72   1          // P0.4  -  Unassigned,  Open-Drain, Digital
  73   1          // P0.5  -  Unassigned,  Open-Drain, Digital
  74   1          // P0.6  -  Unassigned,  Open-Drain, Digital
  75   1          // P0.7  -  Unassigned,  Open-Drain, Digital
  76   1      
  77   1          // P1.0  -  Unassigned,  Open-Drain, Digital
  78   1          // P1.1  -  Unassigned,  Open-Drain, Digital
  79   1          // P1.2  -  Unassigned,  Open-Drain, Digital
  80   1          // P1.3  -  Unassigned,  Open-Drain, Digital
  81   1          // P1.4  -  Unassigned,  Open-Drain, Digital
  82   1          // P1.5  -  Unassigned,  Open-Drain, Digital
  83   1          // P1.6  -  Unassigned,  Open-Drain, Digital
  84   1          // P1.7  -  Unassigned,  Open-Drain, Digital
  85   1      
  86   1          // P2.0  -  Unassigned,  Open-Drain, Digital
  87   1          // P2.1  -  Unassigned,  Open-Drain, Digital
  88   1          // P2.2  -  Unassigned,  Open-Drain, Digital
  89   1          // P2.3  -  Unassigned,  Open-Drain, Digital
  90   1          // P2.4  -  Unassigned,  Open-Drain, Digital
  91   1          // P2.5  -  Unassigned,  Open-Drain, Digital
  92   1          // P2.6  -  Unassigned,  Open-Drain, Digital
  93   1          // P2.7  -  Unassigned,  Open-Drain, Digital
  94   1      
  95   1          // P3.0  -  Unassigned,  Open-Drain, Digital
  96   1          // P3.1  -  Unassigned,  Open-Drain, Digital
  97   1          // P3.2  -  Unassigned,  Open-Drain, Digital
  98   1          // P3.3  -  Unassigned,  Open-Drain, Digital
  99   1          // P3.4  -  Unassigned,  Open-Drain, Digital
 100   1          // P3.5  -  Unassigned,  Open-Drain, Digital
 101   1          // P3.6  -  Unassigned,  Open-Drain, Digital
 102   1          // P3.7  -  Unassigned,  Open-Drain, Digital
 103   1             // 保存当前SFRPAGE
 104   1         SFRPAGE = CONFIG_PAGE;              // 改变页
 105   1      
 106   1         //交叉开关配置
 107   1              XBR0 = 0x04;
 108   1              XBR1 = 0x00;
 109   1              XBR2 = 0x40;
 110   1              // P0 口分配状况
 111   1              // P0.0 = UART0 TX
 112   1              // P0.1 = UART0 RX
 113   1      
 114   1         //输出方式
 115   1         P5MDOUT = 0xf0;         
 116   1      }
C51 COMPILER V7.09   LCD                                                                   11/10/2008 14:57:44 PAGE 3   

 117          void Oscillator_Init()
 118          {
 119   1              SFRPAGE   = CONFIG_PAGE;
 120   1          OSCICN    = 0x83;
 121   1      }
 122          void Delay1us(unsigned char T) 
 123          {       while(T){
 124   2              T--;
 125   2              }
 126   1      }
 127          void Delay1ms(unsigned char T)
 128          {
 129   1              while (T)
 130   1              {
 131   2                      Delay1us(200);
 132   2                      Delay1us(200);
 133   2                      Delay1us(200);
 134   2                      Delay1us(200);
 135   2                      Delay1us(200);
 136   2                      T--;
 137   2              }
 138   1      }
 139          void Delay1s(unsigned char T)
 140          {
 141   1              while (T)
 142   1              {
 143   2                      Delay1ms(200);
 144   2                      Delay1ms(200);
 145   2                      Delay1ms(200);
 146   2                      Delay1ms(200);
 147   2                      Delay1ms(200);
 148   2                      T--;
 149   2              }
 150   1      }
 151          void main(){
 152   1              unsigned int i;
 153   1         float voltage;
 154   1         unsigned int tp;
 155   1         Oscillator_Init();
 156   1          WDTCN=0xDE;                    //禁止看门狗定时器
 157   1          WDTCN=0xAD;
 158   1              Port_IO_Init();
 159   1              Timer_Init();
 160   1          UART_Init();
 161   1              ADC0_Init();
 162   1      while(1)
 163   1              {
 164   2            Delay1ms(2000);
 165   2            ADC0_Conver();
 166   2      
 167   2            SFRPAGE = UART0_PAGE;               // 改变页
 168   2            printf("\n");
 169   2            SFRPAGE = CONFIG_PAGE;              // 改变页
 170   2      
 171   2                      for (i=0;i<9;i++)
 172   2                      {
 173   3                      voltage=result[i]*2430.0/4095;
 174   3               tp = voltage;
 175   3                              switch(i)
 176   3                              {
 177   4                      case 8:
 178   4                                      voltage=(tp-776)/2.86;
C51 COMPILER V7.09   LCD                                                                   11/10/2008 14:57:44 PAGE 4   

 179   4                     tp = voltage;
 180   4                     SFRPAGE = UART0_PAGE;               // 改变页
 181   4                                      printf ("Chip temperature is %d\n",tp);
 182   4                     SFRPAGE = CONFIG_PAGE;              // 改变页
 183   4                                      break;
 184   4                                      default:
 185   4                     SFRPAGE = UART0_PAGE;               // 改变页
 186   4                              printf ("Channel %d voltage is %dmV\n",i,tp);
 187   4                     SFRPAGE = CONFIG_PAGE;              // 改变页
 188   4                                      break;
 189   4                              }
 190   3              }
 191   2              }
 192   1              }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    420    ----
   CONSTANT SIZE    =     54    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     18      10
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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