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

📄 main.lst

📁 C8051F020单片机的AD测试程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 151   1              ADC0_enable(1);
 152   1      
 153   1              while (1)
 154   1              {
 155   2                      Delay_ms(250);
 156   2      
 157   2                      for (i=0;i<9;i++)
 158   2                      {
 159   3                              Delay_ms(5);
 160   3                      EA = 0;                       // 关闭中断
 161   3                      voltage = result[i];          // 给全局变量赋ADC的值
 162   3                      EA = 1;                       // 重新开启中断
 163   3                      voltage = voltage * VREF0;
 164   3      //                      calculate voltage in millivolts
 165   3                              EA = 0;  
 166   3                              switch(i)
 167   3                              {
 168   4                                      case 0:
 169   4      
 170   4                                      voltage = voltage >> 16;
 171   4                                      printf ("Channel '%d' voltage is %ldmV\n", i, voltage);
 172   4                                              LCD_Disp_Word(0,48,WLib_tong_16x16,2,16);
 173   4                                              LCD_Disp_Word(16,48,WLib_dao_16x16,2,16);
 174   4                                              LCD_Disp_Word(32,48,&WLib_Num_8x16[i*32],2,8);
 175   4                                              LCD_Disp_Word(40,48,WLib_maohao_8x16,2,8);
 176   4      //                                      LCD_Disp_Word(96,48,WLib_hao_16x16,2,16);
 177   4                                              LCD_Disp_Word(112,48,WLib_fu_16x16,2,16);
 178   4      
 179   4                                              LCD_Disp_Word(64,48,&WLib_Num_8x16[voltage/1000*16],2,8);
C51 COMPILER V7.02b   MAIN                                                                 10/31/2005 16:30:55 PAGE 4   

 180   4                                              LCD_Disp_Word(72,48,WLib_dian_8x16,2,8);
 181   4                                              LCD_Disp_Word(80,48,&WLib_Num_8x16[voltage%1000/100*16],2,8);
 182   4                                              LCD_Disp_Word(88,48,&WLib_Num_8x16[voltage%100%100/10*16],2,8);
 183   4                                              LCD_Disp_Word(96,48,&WLib_Num_8x16[voltage%100%100%10*16],2,8);
 184   4                                              break;
 185   4                                      case 1:
 186   4                                      voltage = voltage >> 16;
 187   4                                      printf ("Channel '%d' voltage is %ldmV\n", i, voltage);
 188   4                                              LCD_Disp_Word(0,32,WLib_tong_16x16,2,16);
 189   4                                              LCD_Disp_Word(16,32,WLib_dao_16x16,2,16);
 190   4                                              LCD_Disp_Word(32,32,&WLib_Num_8x16[i*16],2,8);
 191   4                                              LCD_Disp_Word(40,32,WLib_maohao_8x16,2,8);
 192   4      //                                      LCD_Disp_Word(96,32,WLib_hao_16x16,2,16);
 193   4                                              LCD_Disp_Word(112,32,WLib_fu_16x16,2,16);
 194   4      
 195   4                                              LCD_Disp_Word(64,32,&WLib_Num_8x16[voltage/1000*16],2,8);
 196   4                                              LCD_Disp_Word(72,32,WLib_dian_8x16,2,8);
 197   4                                              LCD_Disp_Word(80,32,&WLib_Num_8x16[voltage%1000/100*16],2,8);
 198   4                                              LCD_Disp_Word(88,32,&WLib_Num_8x16[voltage%100%100/10*16],2,8);
 199   4                                              LCD_Disp_Word(96,32,&WLib_Num_8x16[voltage%100%100%10*16],2,8);
 200   4                                              break;
 201   4                      case 8:
 202   4                                      //voltage = voltage - 0xa58c;
 203   4                                              //voltage = voltage * 420;
 204   4                                      //voltage = voltage >> 16;
 205   4                                              //tp = voltage/1000;
 206   4                                              
 207   4                                              voltage = result[8];
 208   4      
 209   4                                              tp=(voltage/16-1324)*839/4096;
 210   4      
 211   4                                      printf ("Channel '%d' degra is %ld degree\n", i, tp);
 212   4                                      
 213   4                                              LCD_Disp_Word(0,16,WLib_wen_16x16,2,16);
 214   4                                              LCD_Disp_Word(16,16,WLib_du_16x16,2,16);
 215   4                                              LCD_Disp_Word(32,16,WLib_maohao_8x16,2,8);
 216   4                                              LCD_Disp_Word(112,16,WLib_du_16x16,2,16);
 217   4                                              LCD_Disp_Word(64,16,&WLib_Num_8x16[tp/10*16],2,8);
 218   4                                              LCD_Disp_Word(80,16,&WLib_Num_8x16[tp%10*16],2,8);
 219   4      
 220   4                                              break;
 221   4                                      default:
 222   4                                      voltage = voltage >> 16;
 223   4                                      printf ("Channel '%d' voltage is %ldmV\n", i, voltage);
 224   4                                              break;
 225   4                              }
 226   3                              EA = 1; 
 227   3              }
 228   2              }
 229   1      }
 230          
 231          /************************************************************************************
 232          //  系统初始化功能子程序
 233          *************************************************************************************/
 234          
 235          /***********************************************************************************
 236          * 函数名称:SYSCLK_Init;
 237          *
 238          * 函数功能描述:系统时钟初始化,使用外部22.1184MHz晶振作为时钟源;
 239          *              
 240          * 输入参数:none;
 241          *
C51 COMPILER V7.02b   MAIN                                                                 10/31/2005 16:30:55 PAGE 5   

 242          * 返回数据:none;
 243          *
 244          * 注意:    none;
 245          ************************************************************************************/
 246          
 247          void SYSCLK_Init (void)
 248          {
 249   1         int i;                              // 延时计数器
 250   1      
 251   1         OSCXCN = 0x67;                      // 使用外部22.1184MHz晶振
 252   1      
 253   1         for(i=0; i<256; i++);               // 等待1ms
 254   1      
 255   1         while(!(OSCXCN & 0x80));            // 等待外部振荡器稳定
 256   1      
 257   1         OSCICN = 0x88;                      // 切换到外部晶振
 258   1      }
 259          
 260          /***********************************************************************************
 261          * 函数名称:PORT_Init;
 262          *
 263          * 函数功能描述:配置端口初始化,配置交叉开关和端口;
 264          *              
 265          * 输入参数:none;
 266          *
 267          * 返回数据:none;
 268          *
 269          * 注意:    none;
 270          ************************************************************************************/
 271          
 272          void PORT_Init (void)
 273          {
 274   1              XBR0   =   0x8f;                    //设置XBR0
 275   1              XBR1   =   0x1e;                    //设置XBR1
 276   1              XBR2   =   0x44;                    //打开交叉开关和弱上拉
 277   1         
 278   1              P0MDOUT = 0x34;                                         //设置P0口输出
 279   1              P1MDOUT = 0xfc;                                         //设置P1口输出
 280   1              P1MDIN  = 0xff;                                         //设置P1口输入信号类型
 281   1              P2MDOUT = 0xf0;                                         //设置P2口输出
 282   1              P3MDOUT = 0xff;                                         //设置P3口全部推挽输出
 283   1          P74OUT  = 0xf7;                                             //设置P4-P7口输出
 284   1          P4 = 0xe0;                                                  //P4口置0,禁铃
 285   1      
 286   1          EMI0CF=0x2d;                                                //外部存储器接口配置
 287   1          EMI0TC=0X9e;                                                //外部存储器时序控制
 288   1      }
 289          
 290          /***********************************************************************************/
 291          // 文件结束
 292          /***********************************************************************************/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1639    ----
   CONSTANT SIZE    =    449    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     37      10
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.

C51 COMPILER V7.02b   MAIN                                                                 10/31/2005 16:30:55 PAGE 6   


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

⌨️ 快捷键说明

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