松翰单片机 SN8F5702程序例程 - 下载本文

#include #include \

#include // for _nop_

void InitCPU(void); //单片机初始化 void Ram_init(void); //全局变量赋值 void Time_Fun(void); //基准走时函数 void SYSIspStart(unsigned int pageAddress);

//----------------------字节全局变量------------------------------- u8 idata ISP_RAM[32] ; // IRAM 0xE0 to 0xFF #define WenDu_Up ISP_RAM[1] #define WenDu_Down ISP_RAM[2] #define WenDu_Cha ISP_RAM[3] // u8 WenDu_Up; // u8 WenDu_Down; u8 WenDu_HJ;

u8 ADC_WenDu_HJ; u8 AD_key;

u8 Time_500ms_Cnt;

u8 Temp_ChaZhi_ID;//0显示环境温度,1显示差值闪烁 u8 SS_500Ms_Cnt;//500ms闪烁标志位 u8 IAP_Save_Cnt;//存储标志位

//--------------------位全局变量----------------------------------- bit TimeFlag ;//定时标记 bit Buzz_Flag ;//蜂鸣器标志位

bit SS_500Ms_Flag ;//500ms闪烁标志位 bit ZiDong_ShouDong_Flag;//自动手动标志位 bit ShouDong_Out_Flag;//手动输出标志位 bit IAP_Save_Flag;//存储标志位 bit NTC_Error_Flag;//传感器错误 bit NTC_OK_Flag;//传感器错误

u8 code ISP_ROM[32] _at_ 0X0200;

//****************************************************************** #define ADC_GLOBAL #include \

/*****************************************************************/ #define AD_DATA_CNT 250

const u16 code TEMP_AD_DATA[AD_DATA_CNT+1]= { 3138 , // 0 3100 , // 1 3061 , // 2

3022 , // 2982 , // 2941 , // 2899 , // 2857 , // 2815 , // 2771 , // 2728 , // 2684 , // 2639 , // 2595 , // 2550 , // 2504 , // 2459 , // 2413 , // 2367 , // 2321 , // 2276 , // 2230 , // 2184 , // 2139 , // 2093 , // 2048 , // 2003 , // 1959 , // 1914 , // 1870 , // 1827 , // 1784 , // 1741 , // 1699 , // 1658 , // 1617 , // 1577 , // 1537 , // 1498 , // 1459 , // 1421 , // 1384 , // 1348 , // 1312 , // 1277 , // 1243 , // 1209 , // 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46

1176 , // 1144 , // 1112 , // 1082 , // 1052 , // 1022 , // 994 , // 966 , // 938 , // 912 , // 886 , // 861 , // 836 , // 812 , // 789 , // 766 , // 744 , // 723 , // 702 , // 682 , // 662 , // 643 , // 624 , // 606 , // 589 , // 572 , // 555 , // 539 , // 524 , // 509 , // 494 , // 480 , // 466 , // 453 , // 440 , // 427 , // 415 , // 403 , // 392 , // 381 , // 370 , // 360 , // 349 , // 340 , // 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90

330 , // 91 321 , // 92 312 , // 93 303 , // 94 295 , // 95 287 , // 96 279 , // 97 271 , // 98 264 , // 99 };

void AD_fun(void) // { static u8 AD_Sum_Cnt = 0,AD_ID=0; static u16 AD_Sum = 0; static u8 Temp_Change_Cnt=0; u8 i; AD_Sum += Get_ADC(AD_ID); AD_Sum_Cnt ++; if(AD_Sum_Cnt >= 8) { AD_Sum_Cnt = 0; AD_Sum >>= 3; if(1) { if(!AD_ID) { if(AD_Sum<40||AD_Sum>4050) { NTC_Error_Flag = 1; } else { NTC_Error_Flag = 0; } AD_ID=1; } } AD_Sum = 0; } }

u16 Get_ADC( uchar n) { u16 dat;// dat = 0; if(!n) { ADM = _1000_0000b;//AIN0通道 } else if(n==1) {

ADM = _1000_0110b;//AIN6通道 }

else if(n==2) {

ADM = _1000_0111b;//AIN7通道 }

else if(n==3) { ADM = _1000_1000b;//AIN8通道 }

_nop_(); _nop_();

ADM |= _0100_0000b; //开始转换 while(!(ADM & _0010_0000b)); //转换中 _nop_(); _nop_(); ADM &= _1101_1111b; dat = ADB; dat <<= 4; dat += (ADR&0x0f); _nop_(); _nop_(); return dat; }

void SYSIspStart(unsigned int pageAddress) { ISP(pageAddress, ISP_RAM); }

/***************************************************************





pk10开奖直播视频