C51 COMPILER V9.59.0.0 ADC 01/18/2024 10:03:11 PAGE 1 C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ADC OBJECT MODULE PLACED IN ..\Output\adc.obj COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Apps\adc.c LARGE OBJECTADVANCED OPTIMIZE(8,SIZE) BROWSE INCDIR(..\FWL -ib\SC92F_Lib\inc;..\User;..\Apps;..\Apps;..\User) DEFINE(SC92F836xB) DEBUG PRINT(..\List\adc.lst) OBJECT(..\Output\adc.o -bj) line level source 1 #include "SC_Init.h" //MCU Init header£¬Include all IC resource headers 2 #include "SC_it.h" 3 #include "..\Drivers\SCDriver_list.h" 4 #include "HeadFiles\SysFunVarDefine.h" 5 6 #include "adc.h" 7 #include "Uart1.h" 8 9 unsigned int xdata ADC_Value0 = 0,ADC_Value1 = 0,ADC_Value2 = 0; 10 11 unsigned int xdata ADC_NUM1=0; 12 //»ñÈ¡adcת»»ÊýÖµ 13 unsigned int ADC_Convert(void) 14 { 15 1 unsigned int xdata Tad = 0,MinAd1 = 0x0fff,MaxAd1 = 0x0000,MinAd2 = 0x0fff,MaxAd2 = 0x0000,TempAdd = -0; 16 1 unsigned char xdata t = 0; 17 1 for(t = 0;t < 10;t++) 18 1 { 19 2 ADCCON |= 0X40; //¿ªÊ¼ ADC ת»» 20 2 while(!(ADCCON & 0x20));//µÈ´ý ADC ת»»Íê³É£¬²»Í¬ÐͺŵÄת»»Íê³É±ê־λλÖò»Í¬£¬²¿·ÖÐͺÅÔÚ Bit5,²¿·ÖÐͺÅÔ -ÚBit4,¾ßÌåÇë²ÎÕÕ¹æ¸ñ¡£ 21 2 //ÇåÖжϱê־λ 22 2 ADCCON &= ~(0X20); 23 2 Tad = ((unsigned int)ADCVH << 4) + (ADCVL >> 4); //È¡µÃÒ»´Îת»»Öµ 24 2 ADC_NUM1=Tad; 25 2 if(Tad > MaxAd1) 26 2 { 27 3 MaxAd1 = Tad;//»ñµÃµ±Ç°µÄ×î´óÖµ 28 3 } 29 2 // else 30 2 // { 31 2 // if(Tad > MaxAd2) 32 2 // MaxAd2 = Tad; 33 2 // } 34 2 if (Tad < MinAd1) 35 2 { 36 3 MinAd1 = Tad;//»ñµÃµ±Ç°µÄ×îСֵ 37 3 } 38 2 // else 39 2 // { 40 2 // if(Tad > MinAd2) 41 2 // MinAd2 = Tad; 42 2 // } 43 2 TempAdd += Tad; 44 2 } 45 1 46 1 //ת»»ÖµÀÛ¼Ó 47 1 TempAdd -= MinAd1;//È¥µô×îСֵ 48 1 TempAdd -= MaxAd1;//È¥µô×î´óÖµ 49 1 // TempAdd -= MinAd2;//È¥µôµÚ¶þ×îСֵ 50 1 // TempAdd -= MaxAd2;//È¥µôµÚ¶þ×î´óÖµ 51 1 //TempAdd = TempAdd / 16; C51 COMPILER V9.59.0.0 ADC 01/18/2024 10:03:11 PAGE 2 52 1 TempAdd >>= 3; //Ç󯽾ùÖµ 53 1 return TempAdd; 54 1 } 55 56 //Çл»ADCÈë¿Ú 57 void ADC_channel(unsigned char ADC_Channel) 58 { 59 1 ADCCFG0 = 0x07; 60 1 ADCCON = 0xE0 | ADC_Channel; 61 1 } 62 63 extern uint8_t xdata motor_data[]; 64 void ADC_Multichannel(void) 65 { 66 1 uint8_t xdata temp_h,temp_l; //¶¨Òå¸ß°ËλºÍµÍ°Ëλ 67 1 68 1 ADC_channel(1); //ADC Èë¿ÚÇл»ÖÁ AIN1 ¿Ú£¬²É¼¯µçѹÐźŠ69 1 ADC_Value1 = ADC_Convert(); //Æô¶¯ ADC ת»»£¬»ñµÃת»»Öµ 70 1 temp_h = (ADC_Value1 & 0xff00) >> 8;//¸ß8λµÄÖµ 71 1 temp_l = ADC_Value1 & 0x00ff; //µÍ8λµÄÖµ 72 1 motor_data[4] = temp_h; 73 1 motor_data[5] = temp_l; 74 1 75 1 ADC_channel(2); //ADC Èë¿ÚÇл»ÖÁ AIN2 ¿Ú£¬²É¼¯¼¤¹â²â¾àÐźŠ76 1 ADC_Value2 = ADC_Convert(); //Æô¶¯ ADC ת»»£¬»ñµÃת»»Öµ 77 1 temp_h = (ADC_Value2 & 0xff00) >> 8;//¸ß8λµÄÖµ 78 1 temp_l = ADC_Value2 & 0x00ff; //µÍ8λµÄÖµ 79 1 motor_data[6] = temp_h; 80 1 motor_data[7] = temp_l; 81 1 } 82 83 MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 295 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = 8 10 PDATA SIZE = ---- ---- DATA SIZE = ---- ---- IDATA SIZE = ---- ---- BIT SIZE = ---- ---- EDATA SIZE = ---- ---- HDATA SIZE = ---- ---- XDATA CONST SIZE = ---- ---- FAR CONST SIZE = ---- ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)