C51 COMPILER V9.54 BSP_CS1232 09/06/2024 14:31:12 PAGE 1 C51 COMPILER V9.54, COMPILATION OF MODULE BSP_CS1232 OBJECT MODULE PLACED IN ..\out\bsp_cs1232.obj COMPILER INVOKED BY: E:\KeilC51\C51\BIN\C51.EXE ..\source\bsp\bsp_cs1232.c LARGE OMF2 OPTIMIZE(0,SIZE) BROWSE ORDER NOIN -TPROMOTE INCDIR(..\source\bsp;..\source\msp;..\source\app;..\source\clib;..\source\cpu;..\source\ctask;..\source\tpc;..\ -source\asp;..\source\debug;..\source\msp\uart;..\source\msp\simiic;..\source\bsp\oled;..\source\bsp\TTSSbsp) DEBUG PRINT -(..\out\bsp_cs1232.lst) TABS(2) OBJECT(..\out\bsp_cs1232.obj) line level source 1 //////////////////////////////////////////////////////////////////////////// 2 ///@copyright Copyright (c) 2020, 传控科技 All rights reserved. 3 ///------------------------------------------------------------------------- 4 /// @file cs1232.h 5 /// @brief hard cs1232 include 6 /// @info FILE FOR HARDWARE cs1232 7 ///------------------------------------------------------------------------- 8 9 10 ////////////////////////////////////////////////////////////////////////////// 11 /// @version 1.0 12 /// @author CC 13 /// @date 20200530 14 /// @note 15 ////////////////////////////////////////////////////////////////////////////// 16 17 #include "bsp_cs1232.h" *** WARNING C320 IN LINE 51 OF ..\source\bsp\TTSSbsp\bsp_config.h: "MainFre_22M" 18 ///TS_cs1232_ ts_adc;///TSS_FLOW_ tss_ads; 19 20 void L0_ADS1213_mode(vtype mode) 21 { 22 1 switch(mode) 23 1 { 24 2 case D_ADS1213_POWERDOWN: 25 2 D_ADC_SCLK1_CLOSE(); 26 2 D_ADC_DOUT1_CLOSE(); 27 2 D_ADC_SCLK2_CLOSE(); 28 2 D_ADC_DOUT2_CLOSE(); 29 2 D_ADC_SCLK3_CLOSE(); 30 2 D_ADC_DOUT3_CLOSE(); 31 2 D_ADC_SCLK4_CLOSE(); 32 2 D_ADC_DOUT4_CLOSE(); 33 2 D_ADC_POWERDOWN(); 34 2 // L0_uart0_uc('d'); 35 2 break; 36 2 case D_ADS1213_GAIN_128: 37 2 D_ADC_GAIN0_128(); 38 2 /// L0_uart0_uc('8'); 39 2 break; 40 2 case D_ADS1213_GAIN_64: 41 2 D_ADC_GAIN0_64(); 42 2 // L0_uart0_uc('6'); 43 2 break; 44 2 default: 45 2 D_ADC_GAIN0_64(); 46 2 // L0_uart0_uc('q'); 47 2 break; 48 2 }; 49 1 } 50 51 void L0_ADS1213_INIT(vtype mode) C51 COMPILER V9.54 BSP_CS1232 09/06/2024 14:31:12 PAGE 2 52 { 53 1 D_ADC_GAIN0_INIT(); 54 1 D_ADC_SCLK1_INIT(); 55 1 D_ADC_DOUT1_INIT(); 56 1 D_ADC_SCLK2_INIT(); 57 1 D_ADC_DOUT2_INIT(); 58 1 D_ADC_SCLK3_INIT(); 59 1 D_ADC_DOUT3_INIT(); 60 1 D_ADC_SCLK4_INIT(); 61 1 D_ADC_DOUT4_INIT(); 62 1 D_ADC_PDWN_INIT(); 63 1 D_ADC_PD_WACKUP(); 64 1 L0_ADS1213_mode(mode); 65 1 } 66 67 68 69 void L0_adc_SCLK(vtype ch,vtype onf) 70 { 71 1 switch (ch) 72 1 { 73 2 case D_ADCCH_1: 74 2 if(onf){D_ADC_SCLK1_ON();}else{D_ADC_SCLK1_OFF();} 75 2 break; 76 2 case D_ADCCH_2: 77 2 if(onf){D_ADC_SCLK2_ON();}else{D_ADC_SCLK2_OFF();} 78 2 break; 79 2 case D_ADCCH_3: 80 2 if(onf){D_ADC_SCLK3_ON();}else{D_ADC_SCLK3_OFF();} 81 2 break; 82 2 case D_ADCCH_4: 83 2 if(onf){D_ADC_SCLK4_ON();}else{D_ADC_SCLK4_OFF();} 84 2 break; 85 2 default: 86 2 break; 87 2 } 88 1 } 89 90 vtype L0_adc_DOUT_AT(vtype ch) 91 { 92 1 vtype r = 9; 93 1 94 1 switch (ch) 95 1 { 96 2 case D_ADCCH_1: 97 2 r = D_ADC_DOUT1_AT(); 98 2 break; 99 2 case D_ADCCH_2: 100 2 r = D_ADC_DOUT2_AT(); 101 2 break; 102 2 case D_ADCCH_3: 103 2 r = D_ADC_DOUT3_AT(); 104 2 break; 105 2 case D_ADCCH_4: 106 2 r = D_ADC_DOUT4_AT(); 107 2 break; 108 2 default: 109 2 break; 110 2 } 111 1 return r; 112 1 } 113 C51 COMPILER V9.54 BSP_CS1232 09/06/2024 14:31:12 PAGE 3 114 115 116 void L0_ADS1231_readCH2(vtype ch,vU32 *d) 117 { 118 1 u8 i = 0; 119 1 vU32 rdata; 120 1 /// vU16 t16; 121 1 rdata = 0; 122 1 123 1 for(i = 0; i < 24; i++) 124 1 { 125 2 L0_adc_SCLK(ch,1);/// D_ADC_SCLK1_ON(); 126 2 rdata <<= 1; 127 2 L0_adc_SCLK(ch,0);///D_ADC_SCLK1_OFF(); 128 2 if(L0_adc_DOUT_AT(ch)) 129 2 { 130 3 rdata += 1; 131 3 } 132 2 } 133 1 ///25 puls make DOUT high 134 1 L0_adc_SCLK(ch,1); 135 1 ///FF84 CC09 FF84 CC09 136 1 L0_adc_SCLK(ch,0); 137 1 *d = rdata; 138 1 } 139 140 141 142 #if 0 void L0_ADS1231_readCH2555(vtype ch,vU16 *d) { u8 i = 0; vU32 rdata; vU16 t16; rdata = 0; for(i = 0; i < 24; i++) { L0_adc_SCLK(ch,1);/// D_ADC_SCLK1_ON(); rdata <<= 1; L0_adc_SCLK(ch,0);///D_ADC_SCLK1_OFF(); if(L0_adc_DOUT_AT(ch)) { rdata += 1; } } ///25 puls make DOUT high L0_adc_SCLK(ch,1); ///FF84 CC09 FF84 CC09 L0_uart0_uc('0'+ch); L0_uart0_uc(0x09); L0_uart0_ulhex(rdata); L0_uart0_uc(0x09); if (rdata > 0x007fFFff) { rdata >>= D_sensor_zoom; ///fixme:此处正负差和移位不一致需要谨慎 rdata |= D_sensor_zoom_FF; /// 1111 1100 }else { rdata >>= D_sensor_zoom; } C51 COMPILER V9.54 BSP_CS1232 09/06/2024 14:31:12 PAGE 4 // L0_uart0_ulhex(rdata); L0_uart0_uc(0x09); t16 = rdata; // L0_uart0_ushex(t16); L0_uart0_uc(0x09); ///L0_uart0_0d0a(); if(t16 & 0x8000) //最高位为1,<0则 { t16 = 0xffFF - t16;///转变为正数 ///*d = D_ADC_OFFSET - t16; *d = D_ADC_OFFSET - t16; }else { *d = t16 + D_ADC_OFFSET; } // L0_uart0_ushex(*d); L0_uart0_0d0a(); L0_adc_SCLK(ch,0); } #endif 198 199 /*********************************end file*********************************************/ 200 201 202 //#define D_ADC_GATHER_Way1 1 203 #if 0 //调试阻塞读 vS32 L0_ADS1231_read(U8 ch) { vU32 e = 0;u8 i;vS32 rdata = 0; while(1 == L0_2dc_DOUT_AT(ch)) { if(e ++ > 100000) { //return 0; } } for(i = 0; i < 24; i++) { L0_2dc_SCLK(ch,1); rdata <<= 1; L0_2dc_SCLK(ch,0); if(L0_2dc_DOUT_AT(ch)) { rdata += 1; } } L0_2dc_SCLK(ch,1); if(rdata & 0x800000) //???λ?1??<0?? { rdata |= 0xFF000000; } return rdata; } void L1_ADS1213_main(void) { C51 COMPILER V9.54 BSP_CS1232 09/06/2024 14:31:12 PAGE 5 U8 ch = D_ADCCH_2; while(1) { while(1 == L0_2dc_DOUT_AT(ch)) ; tss_ads.u32_i = L0_ADS1231_readCH(ch); tss_ads.u16_v = (vU16)( tss_ads.u32_i >> 16); L0_uart0_ushex(tss_ads.u16_v); tss_ads.u16_v = (vU16)(tss_ads.u32_i & 0x0000ffff); L0_uart0_ushex(tss_ads.u16_v);//Lc_delay_us(500); L0_uart0_uc(0x0d); L0_uart0_uc(0x0a); } } u8 Read_byte_adcIC(void) { u8 i; u8 rdata = 0; //初始化返回值为 0 for(i = 0; i < 8; i++) { D_ADC_SCLK1_ON(); rdata <<= 1; //返回值左移 1 位 /// CS1231_Clk(); //上升沿接收数据,下降沿更新数据 D_ADC_SCLK1_OFF(); if(D_ADC_DOUT1_AT()) { rdata += 1; //若数据线上数据为 1,则返回值加 1 } } return(rdata); } void L0_ADS1213_CH(u8 ch) { /// /// SPEED = 1 57--57 ms 硬件配置成高电平 D_ADC_PDWN_OFF(); switch(ch) { case D_ADCCH_T: L0_ADS1213_T(1); break; case D_ADCCH_1: D_ADC_CS_A0_OFF(); break; case D_ADCCH_2: D_ADC_CS_A0_ON(); break; case D_ADCCH_3: //D_ADC_CS2_A0_OFF(); break; case D_ADCCH_4: //D_ADC_CS2_A0_ON(); break; default:/// L0_ADS1213_T(0); break; }; Lc_delay_us(50); D_ADC_PDWN_ON(); C51 COMPILER V9.54 BSP_CS1232 09/06/2024 14:31:12 PAGE 6 } //channel-温度 void L0_ADS1213_T(u8 onff) { if(onff) { D_ADC_PDWN_OFF(); D_ADC_TEMP_ON(); Lc_delay_us(50); D_ADC_PDWN_ON(); } else { D_ADC_PDWN_OFF(); D_ADC_TEMP_OFF(); Lc_delay_us(50); D_ADC_PDWN_ON(); } } #endif 322 323 324 325 /*********************************************/ 326 327 328 MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 626 ---- CONSTANT SIZE = ---- ---- XDATA SIZE = 15 ---- 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. 1 WARNING(S), 0 ERROR(S)