单片机成长之路(51基础篇) - 023 N76e003 系统时钟切换到外部时钟
Posted jikexianfeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单片机成长之路(51基础篇) - 023 N76e003 系统时钟切换到外部时钟相关的知识,希望对你有一定的参考价值。
N76e003切换到外部时钟的资料很少(因为N76e003的片子是不支持无源晶振的,有源晶振的成本又很高,所以网上很少有对N76e003的介绍)。有图有真相:
代码如下:
main.c
1 #include <N76E003.H> 2 #include <SFR_Macro.h> 3 #include <Function_Define.h> 4 5 bit BIT_TMP; // 调用 SFR_Macro.h 使用的 6 7 void main(void) 8 // 开通外部 9 set_EXTEN1; 10 set_EXTEN0; 11 // 等待外部稳定 12 while(!(CKSWT|0x08)); 13 // 选择外部时钟 14 clr_OSC1; 15 set_OSC0; 16 // 等待外部时钟切换成功 17 while(CKEN&0x01); 18 while(1) 19 ; // 函数主题 20 21
1 /*-------------------------------------------------------------------------- 2 N76E003.H 3 4 Header file for Nuvoton N76E003 5 --------------------------------------------------------------------------*/ 6 7 #ifndef __N76E885_H__ 8 #define __N76E885_H__ 9 10 sfr P0 = 0x80; 11 sfr SP = 0x81; 12 sfr DPL = 0x82; 13 sfr DPH = 0x83; 14 sfr RWK = 0x86; 15 sfr PCON = 0x87; 16 17 sfr TCON = 0x88; 18 sfr TMOD = 0x89; 19 sfr TL0 = 0x8A; 20 sfr TL1 = 0x8B; 21 sfr TH0 = 0x8C; 22 sfr TH1 = 0x8D; 23 sfr CKCON = 0x8E; 24 sfr WKCON = 0x8F; 25 26 sfr P1 = 0x90; 27 sfr SFRS = 0x91; //TA Protection 28 sfr CAPCON0 = 0x92; 29 sfr CAPCON1 = 0x93; 30 sfr CAPCON2 = 0x94; 31 sfr CKDIV = 0x95; 32 sfr CKSWT = 0x96; //TA Protection 33 sfr CKEN = 0x97; //TA Protection 34 35 sfr SCON = 0x98; 36 sfr SBUF = 0x99; 37 sfr SBUF_1 = 0x9A; 38 sfr EIE = 0x9B; 39 sfr EIE1 = 0x9C; 40 sfr CHPCON = 0x9F; //TA Protection 41 42 sfr P2 = 0xA0; 43 sfr AUXR1 = 0xA2; 44 sfr BODCON0 = 0xA3; //TA Protection 45 sfr IAPTRG = 0xA4; //TA Protection 46 sfr IAPUEN = 0xA5; //TA Protection 47 sfr IAPAL = 0xA6; 48 sfr IAPAH = 0xA7; 49 50 sfr IE = 0xA8; 51 sfr SADDR = 0xA9; 52 sfr WDCON = 0xAA; //TA Protection 53 sfr BODCON1 = 0xAB; //TA Protection 54 sfr P3M1 = 0xAC; 55 sfr P3S = 0xAC; //Page1 56 sfr P3M2 = 0xAD; 57 sfr P3SR = 0xAD; //Page1 58 sfr IAPFD = 0xAE; 59 sfr IAPCN = 0xAF; 60 61 sfr P3 = 0xB0; 62 sfr P0M1 = 0xB1; 63 sfr P0S = 0xB1; //Page1 64 sfr P0M2 = 0xB2; 65 sfr P0SR = 0xB2; //Page1 66 sfr P1M1 = 0xB3; 67 sfr P1S = 0xB3; //Page1 68 sfr P1M2 = 0xB4; 69 sfr P1SR = 0xB4; //Page1 70 sfr P2S = 0xB5; 71 sfr IPH = 0xB7; 72 sfr PWMINTC = 0xB7; //Page1 73 74 sfr IP = 0xB8; 75 sfr SADEN = 0xB9; 76 sfr SADEN_1 = 0xBA; 77 sfr SADDR_1 = 0xBB; 78 sfr I2DAT = 0xBC; 79 sfr I2STAT = 0xBD; 80 sfr I2CLK = 0xBE; 81 sfr I2TOC = 0xBF; 82 83 sfr I2CON = 0xC0; 84 sfr I2ADDR = 0xC1; 85 sfr ADCRL = 0xC2; 86 sfr ADCRH = 0xC3; 87 sfr T3CON = 0xC4; 88 sfr PWM4H = 0xC4; //Page1 89 sfr RL3 = 0xC5; 90 sfr PWM5H = 0xC5; //Page1 91 sfr RH3 = 0xC6; 92 sfr PIOCON1 = 0xC6; //Page1 93 sfr TA = 0xC7; 94 95 sfr T2CON = 0xC8; 96 sfr T2MOD = 0xC9; 97 sfr RCMP2L = 0xCA; 98 sfr RCMP2H = 0xCB; 99 sfr TL2 = 0xCC; 100 sfr PWM4L = 0xCC; //Page1 101 sfr TH2 = 0xCD; 102 sfr PWM5L = 0xCD; //Page1 103 sfr ADCMPL = 0xCE; 104 sfr ADCMPH = 0xCF; 105 106 sfr PSW = 0xD0; 107 sfr PWMPH = 0xD1; 108 sfr PWM0H = 0xD2; 109 sfr PWM1H = 0xD3; 110 sfr PWM2H = 0xD4; 111 sfr PWM3H = 0xD5; 112 sfr PNP = 0xD6; 113 sfr FBD = 0xD7; 114 115 sfr PWMCON0 = 0xD8; 116 sfr PWMPL = 0xD9; 117 sfr PWM0L = 0xDA; 118 sfr PWM1L = 0xDB; 119 sfr PWM2L = 0xDC; 120 sfr PWM3L = 0xDD; 121 sfr PIOCON0 = 0xDE; 122 sfr PWMCON1 = 0xDF; 123 124 sfr ACC = 0xE0; 125 sfr ADCCON1 = 0xE1; 126 sfr ADCCON2 = 0xE2; 127 sfr ADCDLY = 0xE3; 128 sfr C0L = 0xE4; 129 sfr C0H = 0xE5; 130 sfr C1L = 0xE6; 131 sfr C1H = 0xE7; 132 133 sfr ADCCON0 = 0xE8; 134 sfr PICON = 0xE9; 135 sfr PINEN = 0xEA; 136 sfr PIPEN = 0xEB; 137 sfr PIF = 0xEC; 138 sfr C2L = 0xED; 139 sfr C2H = 0xEE; 140 sfr EIP = 0xEF; 141 142 sfr B = 0xF0; 143 sfr CAPCON3 = 0xF1; 144 sfr CAPCON4 = 0xF2; 145 sfr SPCR = 0xF3; 146 sfr SPCR2 = 0xF3; //Page1 147 sfr SPSR = 0xF4; 148 sfr SPDR = 0xF5; 149 sfr AINDIDS = 0xF6; 150 sfr EIPH = 0xF7; 151 152 sfr SCON_1 = 0xF8; 153 sfr PDTEN = 0xF9; //TA Protection 154 sfr PDTCNT = 0xFA; //TA Protection 155 sfr PMEN = 0xFB; 156 sfr PMD = 0xFC; 157 sfr EIP1 = 0xFE; 158 sfr EIPH1 = 0xFF; 159 160 /* BIT Registers */ 161 /* SCON_1 */ 162 sbit SM0_1 = SCON_1^7; 163 sbit FE_1 = SCON_1^7; 164 sbit SM1_1 = SCON_1^6; 165 sbit SM2_1 = SCON_1^5; 166 sbit REN_1 = SCON_1^4; 167 sbit TB8_1 = SCON_1^3; 168 sbit RB8_1 = SCON_1^2; 169 sbit TI_1 = SCON_1^1; 170 sbit RI_1 = SCON_1^0; 171 172 /* ADCCON0 */ 173 sbit ADCF = ADCCON0^7; 174 sbit ADCS = ADCCON0^6; 175 sbit ETGSEL1 = ADCCON0^5; 176 sbit ETGSEL0 = ADCCON0^4; 177 sbit ADCHS3 = ADCCON0^3; 178 sbit ADCHS2 = ADCCON0^2; 179 sbit ADCHS1 = ADCCON0^1; 180 sbit ADCHS0 = ADCCON0^0; 181 182 /* PWMCON0 */ 183 sbit PWMRUN = PWMCON0^7; 184 sbit LOAD = PWMCON0^6; 185 sbit PWMF = PWMCON0^5; 186 sbit CLRPWM = PWMCON0^4; 187 188 189 /* PSW */ 190 sbit CY = PSW^7; 191 sbit AC = PSW^6; 192 sbit F0 = PSW^5; 193 sbit RS1 = PSW^4; 194 sbit RS0 = PSW^3; 195 sbit OV = PSW^2; 196 sbit P = PSW^0; 197 198 /* T2CON */ 199 sbit TF2 = T2CON^7; 200 sbit TR2 = T2CON^2; 201 sbit CM_RL2 = T2CON^0; 202 203 /* I2CON */ 204 sbit I2CEN = I2CON^6; 205 sbit STA = I2CON^5; 206 sbit STO = I2CON^4; 207 sbit SI = I2CON^3; 208 sbit AA = I2CON^2; 209 sbit I2CPX = I2CON^0; 210 211 /* IP */ 212 sbit PADC = IP^6; 213 sbit PBOD = IP^5; 214 sbit PS = IP^4; 215 sbit PT1 = IP^3; 216 sbit PX1 = IP^2; 217 sbit PT0 = IP^1; 218 sbit PX0 = IP^0; 219 220 /* P3 */ 221 sbit P30 = P3^0; 222 223 /* IE */ 224 sbit EA = IE^7; 225 sbit EADC = IE^6; 226 sbit EBOD = IE^5; 227 sbit ES = IE^4; 228 sbit ET1 = IE^3; 229 sbit EX1 = IE^2; 230 sbit ET0 = IE^1; 231 sbit EX0 = IE^0; 232 233 /* P2 */ 234 sbit P20 = P2^0; 235 236 /* SCON */ 237 sbit SM0 = SCON^7; 238 sbit FE = SCON^7; 239 sbit SM1 = SCON^6; 240 sbit SM2 = SCON^5; 241 sbit REN = SCON^4; 242 sbit TB8 = SCON^3; 243 sbit RB8 = SCON^2; 244 sbit TI = SCON^1; 245 sbit RI = SCON^0; 246 247 /* P1 */ 248 sbit P17 = P1^7; 249 sbit AIN0 = P1^7; 250 251 sbit P10 = P1^0; 252 sbit PWM0 = P1^0; 253 sbit P11 = P1^1; 254 sbit PWM1 = P1^1; 255 sbit P12 = P1^2; 256 257 /* TCON */ 258 sbit TF1 = TCON^7; 259 sbit TR1 = TCON^6; 260 sbit TF0 = TCON^5; 261 sbit TR0 = TCON^4; 262 sbit IE1 = TCON^3; 263 sbit IT1 = TCON^2; 264 sbit IE0 = TCON^1; 265 sbit IT0 = TCON^0; 266 267 /* P0 */ 268 sbit P00 = P0^0; 269 sbit INT0 = P0^0; 270 sbit VREF = P0^0; 271 272 sbit P01 = P0^1; 273 sbit INT1 = P0^1; 274 sbit AIN1 = P0^1; 275 276 sbit P02 = P0^2; 277 sbit PWM2 = P0^2; 278 sbit AIN2 = P0^2; 279 280 sbit P03 = P0^3; 281 sbit PWM3 = P0^3; 282 sbit TXD = P0^3; 283 sbit AIN3 = P0^3; 284 285 sbit P04 = P0^4; 286 sbit SS = P0^4; 287 sbit AIN4 = P0^4; 288 289 sbit P05 = P0^5; 290 sbit PWM4 = P0^5; 291 sbit SPICK = P0^5; 292 sbit AIN5 = P0^5; 293 294 sbit P06 = P0^6; 295 sbit SCL = P0^6; 296 sbit AIN6 = P0^6; 297 sbit PWM5 = P0^6; 298 299 sbit P07 = P0^7; 300 sbit AIN7 = P0^7; 301 sbit PWM6 = P0^7; 302 303 304 #endif
1 /**** P0 80H *****/ 2 #define set_P00 P00 = 1 3 #define set_P01 P01 = 1 4 #define set_P02 P02 = 1 5 #define set_P03 P03 = 1 6 #define set_P04 P04 = 1 7 #define set_P05 P05 = 1 8 #define set_P06 P06 = 1 9 #define set_P07 P07 = 1 10 11 #define clr_P00 P00 = 0 12 #define clr_P01 P01 = 0 13 #define clr_P02 P02 = 0 14 #define clr_P03 P03 = 0 15 #define clr_P04 P04 = 0 16 #define clr_P05 P05 = 0 17 #define clr_P06 P06 = 0 18 #define clr_P07 P07 = 0 19 20 //**** SP 81H **** 21 //**** DPH 82H **** 22 //**** DPL 83H **** 23 //**** RWK 86H **** 24 25 //**** PCON 87H ***** 26 #define set_SMOD PCON |= SET_BIT7 27 #define set_SMOD0 PCON |= SET_BIT6 28 #define set_POF PCON |= SET_BIT4 29 #define set_GF1 PCON |= SET_BIT3 30 #define set_GF0 PCON |= SET_BIT2 31 #define set_PD PCON |= SET_BIT1 32 #define set_IDL PCON |= SET_BIT0 33 34 #define clr_SMOD PCON &= ~SET_BIT7 35 #define clr_SMOD0 PCON &= ~SET_BIT6 36 #define clr_POF PCON &= ~SET_BIT4 37 #define clr_GF1 PCON &= ~SET_BIT3 38 #define clr_GF0 PCON &= ~SET_BIT2 39 #define clr_PD PCON &= ~SET_BIT1 40 #define clr_IDL PCON &= ~SET_BIT0 41 42 /**** TCON 88H ****/ 43 #define set_TF1 TF1 = 1 44 #define set_TR1 TR1 = 1 45 #define set_TF0 TF0 = 1 46 #define set_TR0 TR0 = 1 //启动定时器0(定时器0启动控制,0定时器0终止,清除该位将终止定时器0并且当前计数值将保存到TH0和TL0中,1使能定时器0) 47 #define set_IE1 IE1 = 1 48 #define set_IT1 IT1 = 1 49 #define set_IE0 IE0 = 1 50 #define set_IT0 IT0 = 1 51 52 #define clr_TF1 TF1 = 0 53 #define clr_TR1 TR1 = 0 54 #define clr_TF0 TF0 = 0 55 #define clr_TR0 TR0 = 0 56 #define clr_IE1 IE1 = 0 57 #define clr_IT1 IT1 = 0 58 #define clr_IE0 IE0 = 0 59 #define clr_IT0 IT0 = 0 60 61 //**** TMOD 89H **** 62 #define set_GATE_T1 TMOD |= SET_BIT7 63 #define set_CT_T1 TMOD |= SET_BIT6 64 #define set_M1_T1 TMOD |= SET_BIT5 65 #define set_M0_T1 TMOD |= SET_BIT4 66 #define set_GATE_T0 TMOD |= SET_BIT3 67 #define set_CT_T0 TMOD |= SET_BIT2 68 #define set_M1_T0 TMOD |= SET_BIT1 69 #define set_M0_T0 TMOD |= SET_BIT0 70 71 #define clr_GATE_T1 TMOD &= ~SET_BIT7 72 #define clr_CT_T1 TMOD &= ~SET_BIT6 73 #define clr_M1_T1 TMOD &= ~SET_BIT5 74 #define clr_M0_T1 TMOD &= ~SET_BIT4 75 #define clr_GATE_T0 TMOD &= ~SET_BIT3 76 #define clr_CT_T0 TMOD &= ~SET_BIT2 77 #define clr_M1_T0 TMOD &= ~SET_BIT1 78 #define clr_M0_T0 TMOD &= ~SET_BIT0 79 80 //**** TH1 8AH **** 81 //**** TH0 8BH **** 82 //**** TL1 8CH **** 83 //**** TL0 8DH **** 84 85 //CKCON - 8EH 时钟控制寄存器 86 #define set_PWMCKS CKCON |= SET_BIT6 //设置pwm时钟源为定时器1的溢出(0为系统时钟,1为定时器1的溢出) 87 #define set_T1M CKCON |= SET_BIT4 //设置定时器1的时钟为系统时钟(0为1/12系统时钟,与8051兼容,1为选择时钟源为系统时钟) 88 #define set_T0M CKCON |= SET_BIT3 //设置定时器0的时钟为系统时钟(0为1/12系统时钟,与8051兼容,1为选择时钟源为系统时钟) 89 #define set_CLOEN CKCON |= SET_BIT1 //设置系统时钟输出使能,从PLO(P1.1)输出(0禁用系统时钟输出,1使系统时钟创覲LO(P1.1)输出) 90 //清除时钟 91 #define clr_PWMCKS CKCON &= ~SET_BIT6 //设置pwm时钟源为系统时钟(0为系统时钟,1为定时器1的溢出) 92 #define clr_T1M CKCON &= ~SET_BIT4 //设置定时器1的时钟为1/12系统时钟(0为1/12系统时钟,与8051兼容,1为选择时钟源为系统时钟) 93 #define clr_T0M CKCON &= ~SET_BIT3 //设置定时器0的时钟为1/12系统时钟(0为1/12系统时钟,与8051兼容,1为选择时钟源为系统时钟) 94 #define clr_CLOEN CKCON &= ~SET_BIT1 //设置系统时钟输出使能,禁用系统时钟输出(0禁用系统时钟输出,1使系统时钟创覲LO(P1.1)输出) 95 96 //**** WKCON 8FH **** 97 #define set_WKTCK WKCON |= SET_BIT5 98 #define set_WKTF WKCON |= SET_BIT4 99 #define set_WKTR WKCON |= SET_BIT3 100 #define set_WKPS2 WKCON |= SET_BIT2 101 #define set_WKPS1 WKCON |= SET_BIT1 102 #define set_WKPS0 WKCON |= SET_BIT0 103 104 #define clr_WKTCK WKCON &= ~SET_BIT5 105 #define clr_WKTF WKCON &= ~SET_BIT4 106 #define clr_WKTR WKCON &= ~SET_BIT3 107 #define clr_WKPS2 WKCON &= ~SET_BIT2 108 #define clr_WKPS1 WKCON &= ~SET_BIT1 109 #define clr_WKPS0 WKCON &= ~SET_BIT0 110 111 /**** P1 90H *****/ 112 #define set_P10 P10 = 1 113 #define set_P11 P11 = 1 114 #define set_P12 P12 = 1 115 #define set_P13 P13 = 1 116 #define set_P14 P14 = 1 117 #define set_P15 P15 = 1 118 #define set_P16 P16 = 1 119 #define set_P17 P17 = 1 120 121 #define clr_P10 P10 = 0 122 #define clr_P11 P11 = 0 123 #define clr_P12 P12 = 0 124 #define clr_P13 P13 = 0 125 #define clr_P14 P14 = 0 126 #define clr_P15 P15 = 0 127 #define clr_P16 P16 = 0 128 #define clr_P17 P17 = 0 129 130 //****SFRS 91H **** 131 #define set_SFRPAGE BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;SFRS|=SET_BIT0;EA=BIT_TMP 132 #define clr_SFRPAGE BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;SFRS&=~SET_BIT0;EA=BIT_TMP 133 134 //****CAPCON0 92H **** 135 #define set_CAPEN2 CAPCON0 |= SET_BIT6 136 #define set_CAPEN1 CAPCON0 |= SET_BIT5 137 #define set_CAPEN0 CAPCON0 |= SET_BIT4 138 #define set_CAPF2 CAPCON0 |= SET_BIT2 139 #define set_CAPF1 CAPCON0 |= SET_BIT1 140 #define set_CAPF0 CAPCON0 |= SET_BIT0 141 142 #define clr_CAPEN2 CAPCON0 &= ~SET_BIT6 143 #define clr_CAPEN1 CAPCON0 &= ~SET_BIT5 144 #define clr_CAPEN0 CAPCON0 &= ~SET_BIT4 145 #define clr_CAPF2 CAPCON0 &= ~SET_BIT2 146 #define clr_CAPF1 CAPCON0 &= ~SET_BIT1 147 #define clr_CAPF0 CAPCON0 &= ~SET_BIT0 148 149 //**** CAPCON1 93H **** 150 #define set_CAP2LS1 CAPCON1 |= SET_BIT5 151 #define set_CAP2LS0 CAPCON1 |= SET_BIT4 152 #define set_CAP1LS1 CAPCON1 |= SET_BIT3 153 #define set_CAP1LS0 CAPCON1 |= SET_BIT2 154 #define set_CAP0LS1 CAPCON1 |= SET_BIT1 155 #define set_CAP0LS0 CAPCON1 |= SET_BIT0 156 157 #define clr_CAP2LS1 CAPCON1 &= ~SET_BIT5 158 #define clr_CAP2LS0 CAPCON1 &= ~SET_BIT4 159 #define clr_CAP1LS1 CAPCON1 &= ~SET_BIT3 160 #define clr_CAP1LS0 CAPCON1 &= ~SET_BIT2 161 #define clr_CAP0LS1 CAPCON1 &= ~SET_BIT1 162 #define clr_CAP0LS0 CAPCON1 &= ~SET_BIT0 163 164 //**** CAPCON2 94H **** 165 #define set_ENF2 CAPCON2 |= SET_BIT6 166 #define set_ENF1 CAPCON2 |= SET_BIT5 167 #define set_ENF0 CAPCON2 |= SET_BIT4 168 169 #define clr_ENF2 CAPCON2 &= ~SET_BIT6 170 #define clr_ENF1 CAPCON2 &= ~SET_BIT5 171 #define clr_ENF0 CAPCON2 &= ~SET_BIT4 172 173 //**** CKDIV 95H **** 174 175 //**** CKSWT 96H **** TA protect register 176 #define set_HIRCST BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CKSWT|=SET_BIT5;EA=BIT_TMP; 177 #define set_LIRCST BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CKSWT|=SET_BIT4;EA=BIT_TMP; 178 #define set_ECLKST BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CKSWT|=SET_BIT3;EA=BIT_TMP; 179 #define set_OSC1 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CKSWT|=SET_BIT2;EA=BIT_TMP; 180 #define set_OSC0 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CKSWT|=SET_BIT1;EA=BIT_TMP; 181 182 #define clr_HIRCST BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CKSWT&=~SET_BIT5;EA=BIT_TMP; 183 #define clr_LIRCST BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CKSWT&=~SET_BIT4;EA=BIT_TMP; 184 #define clr_ECLKST BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CKSWT&=~SET_BIT3;EA=BIT_TMP; 185 #define clr_OSC1 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CKSWT&=~SET_BIT2;EA=BIT_TMP; 186 #define clr_OSC0 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CKSWT&=~SET_BIT1;EA=BIT_TMP; 187 188 //**** CKEN 97H **** TA protect register 189 #define set_EXTEN1 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CKEN|=SET_BIT7;EA=BIT_TMP; 190 #define set_EXTEN0 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CKEN|=SET_BIT6;EA=BIT_TMP; 191 #define set_HIRCEN BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CKEN|=SET_BIT5;EA=BIT_TMP; 192 #define set_CKSWTF BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CKEN|=SET_BIT0;EA=BIT_TMP; 193 194 #define clr_EXTEN1 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CKEN&=~SET_BIT7;EA=BIT_TMP; 195 #define clr_EXTEN0 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CKEN&=~SET_BIT6;EA=BIT_TMP; 196 #define clr_HIRCEN BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CKEN&=~SET_BIT5;EA=BIT_TMP; 197 #define clr_CKSWTF BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CKEN&=~SET_BIT0;EA=BIT_TMP; 198 199 //**** SCON 98H **** 200 #define set_FE FE = 1 201 #define set_SM1 SM1 = 1 202 #define set_SM2 SM2 = 1 203 #define set_REN REN = 1 204 #define set_TB8 TB8 = 1 205 #define set_RB8 RB8 = 1 206 #define set_TI TI = 1 207 #define set_RI RI = 1 208 209 #define clr_FE FE = 0 210 #define clr_SM1 SM1 = 0 211 #define clr_SM2 SM2 = 0 212 #define clr_REN REN = 0 213 #define clr_TB8 TB8 = 0 214 #define clr_RB8 RB8 = 0 215 #define clr_TI TI = 0 216 #define clr_RI RI = 0 217 218 //**** SBUF 99H **** 219 //**** SBUF_1 9AH **** 220 221 //**** EIE 9BH **** 222 #define set_ET2 EIE |= SET_BIT7 223 #define set_ESPI EIE |= SET_BIT6 224 #define set_EFB EIE |= SET_BIT5 225 #define set_EWDT EIE |= SET_BIT4 226 #define set_EPWM EIE |= SET_BIT3 227 #define set_ECAP EIE |= SET_BIT2 228 #define set_EPI EIE |= SET_BIT1 229 #define set_EI2C EIE |= SET_BIT0 230 231 #define clr_ET2 EIE &= ~SET_BIT7 232 #define clr_ESPI EIE &= ~SET_BIT6 233 #define clr_EFB EIE &= ~SET_BIT5 234 #define clr_EWDT EIE &= ~SET_BIT4 235 #define clr_EPWM EIE &= ~SET_BIT3 236 #define clr_ECAP EIE &= ~SET_BIT2 237 #define clr_EPI EIE &= ~SET_BIT1 238 #define clr_EI2C EIE &= ~SET_BIT0 239 240 //**** EIE1 9CH **** 241 #define set_EWKT EIE1 |= SET_BIT2 242 #define set_ET3 EIE1 |= SET_BIT1 243 #define set_ES_1 EIE1 |= SET_BIT0 244 245 #define clr_EWKT EIE1 &= ~SET_BIT2 246 #define clr_ET3 EIE1 &= ~SET_BIT1 247 #define clr_ES_1 EIE1 &= ~SET_BIT0 248 249 //**** CHPCON 9DH **** TA protect register 250 #define set_SWRST BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CHPCON|=SET_BIT7 ;EA=BIT_TMP 251 #define set_IAPFF BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CHPCON|=SET_BIT6 ;EA=BIT_TMP 252 #define set_BS BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CHPCON|=SET_BIT1 ;EA=BIT_TMP 253 #define set_IAPEN BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CHPCON|=SET_BIT0 ;EA=BIT_TMP 254 255 #define clr_SWRST BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CHPCON&=~SET_BIT7;EA=BIT_TMP 256 #define clr_IAPFF BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CHPCON&=~SET_BIT6;EA=BIT_TMP 257 #define clr_BS BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CHPCON&=~SET_BIT1;EA=BIT_TMP 258 #define clr_IAPEN BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;CHPCON&=~SET_BIT0;EA=BIT_TMP 259 260 //**** P2 A0H **** 261 262 //**** AUXR1 A2H **** 263 #define set_SWRF AUXR1 |= SET_BIT7 264 #define set_RSTPINF AUXR1 |= SET_BIT6 265 #define set_HARDF AUXR1 |= SET_BIT5 266 #define set_GF2 AUXR1 |= SET_BIT3 267 #define set_UART0PX AUXR1 |= SET_BIT2 268 #define set_DPS AUXR1 |= SET_BIT0 269 270 #define clr_SWRF AUXR1 &= ~SET_BIT7 271 #define clr_RSTPINF AUXR1 &= ~SET_BIT6 272 #define clr_HARDF AUXR1 &= ~SET_BIT5 273 #define clr_GF2 AUXR1 &= ~SET_BIT3 274 #define clr_UART0PX AUXR1 &= ~SET_BIT2 275 #define clr_DPS AUXR1 &= ~SET_BIT0 276 277 //**** BODCON0 A3H **** TA protect register 278 #define set_BODEN BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;BODCON0|=SET_BIT7;EA=BIT_TMP 279 #define set_BOV2 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;BODCON0|=SET_BIT6;EA=BIT_TMP 280 #define set_BOV1 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;BODCON0|=SET_BIT5;EA=BIT_TMP 281 #define set_BOV0 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;BODCON0|=SET_BIT4;EA=BIT_TMP 282 #define set_BOF BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;BODCON0|=SET_BIT3;EA=BIT_TMP 283 #define set_BORST BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;BODCON0|=SET_BIT2;EA=BIT_TMP 284 #define set_BORF BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;BODCON0|=SET_BIT1;EA=BIT_TMP 285 #define set_BOS BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;BODCON0|=SET_BIT0;EA=BIT_TMP 286 287 #define clr_BODEN BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;BODCON0&=~SET_BIT7;EA=BIT_TMP 288 #define clr_BOV2 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;BODCON0&=~SET_BIT6;EA=BIT_TMP 289 #define clr_BOV1 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;BODCON0&=~SET_BIT5;EA=BIT_TMP 290 #define clr_BOV0 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;BODCON0&=~SET_BIT4;EA=BIT_TMP 291 #define clr_BOF BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;BODCON0&=~SET_BIT3;EA=BIT_TMP 292 #define clr_BORST BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;BODCON0&=~SET_BIT2;EA=BIT_TMP 293 #define clr_BORF BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;BODCON0&=~SET_BIT1;EA=BIT_TMP 294 #define clr_BOS BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;BODCON0&=~SET_BIT0;EA=BIT_TMP 295 296 //**** IAPTRG A4H **** TA protect register 297 #define set_IAPGO BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;IAPTRG|=SET_BIT0 ;EA=BIT_TMP 298 #define clr_IAPGO BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;IAPTRG&=~SET_BIT0;EA=BIT_TMP 299 300 //**** IAPUEN A5H **** TA protect register 301 #define set_CFUEN BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;IAPUEN|=SET_BIT2;EA=BIT_TMP 302 #define set_LDUEN BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;IAPUEN|=SET_BIT1;EA=BIT_TMP 303 #define set_APUEN BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;IAPUEN|=SET_BIT0;EA=BIT_TMP 304 305 #define clr_CFUEN BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;IAPUEN&=~SET_BIT2;EA=BIT_TMP 306 #define clr_LDUEN BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;IAPUEN&=~SET_BIT1;EA=BIT_TMP 307 #define clr_APUEN BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;IAPUEN&=~SET_BIT0;EA=BIT_TMP 308 309 //**** IAPAL A6H **** 310 //**** IAPAH A7H **** 311 312 //IE A8H 中断时能寄存器 313 #define set_EA EA = 1 //使能开启所有中断(0禁止所有中断,1每个中断使能依靠使能单独中断将会产生相应的单个中断) 314 #define set_EADC EADC = 1 //使能开启ADC中断(0禁止ADC中断,1使能由ADCF(ADCCON0.7)产生中断) 315 #define set_EBOD EBOD = 1 //使能开启BOD中段(0禁止BOD中断,1使能有BOD(BODCON0.3)产生中断) 316 #define set_ES ES = 1 //使能开启串口0中断(0禁止串口0中断,1使能由T1(SCON.1)或RI(SCON.0)中断) 317 #define set_ET1 ET1 = 1 318 #define set_EX1 EX1 = 1 319 #define set_ET0 ET0 = 1 //使能定时器0中断(0禁止定时器0中断,1使能由TF0(TCON.5)产生中断) 320 #define set_EX0 EX0 = 1 321 322 #define clr_EA EA = 0 323 #define clr_EADC EADC = 0 324 #define clr_EBOD EBOD = 0 325 #define clr_ES ES = 0 326 #define clr_ET1 ET1 = 0 327 #define clr_EX1 EX1 = 0 328 #define clr_ET0 ET0 = 0 329 #define clr_EX0 EX0 = 0 330 331 //**** SADDR A9H **** 332 333 //**** WDCON AAH **** TA protect register 334 #define set_WDTR BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;WDCON|=SET_BIT7;EA=BIT_TMP; 335 #define set_WDCLR BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;WDCON|=SET_BIT6;EA=BIT_TMP; 336 #define set_WDTF BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;WDCON|=SET_BIT5;EA=BIT_TMP; 337 #define set_WIDPD BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;WDCON|=SET_BIT4;EA=BIT_TMP; 338 #define set_WDTRF BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;WDCON|=SET_BIT3;EA=BIT_TMP; 339 #define set_WPS2 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;WDCON|=SET_BIT2;EA=BIT_TMP; 340 #define set_WPS1 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;WDCON|=SET_BIT1;EA=BIT_TMP; 341 #define set_WPS0 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;WDCON|=SET_BIT0;EA=BIT_TMP; 342 343 #define clr_WDTEN BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;WDCON&=~SET_BIT7;EA=BIT_TMP; 344 #define clr_WDCLR BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;WDCON&=~SET_BIT6;EA=BIT_TMP; 345 #define clr_WDTF BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;WDCON&=~SET_BIT5;EA=BIT_TMP; 346 #define clr_WDTRF BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;WDCON&=~SET_BIT3;EA=BIT_TMP; 347 #define clr_WPS2 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;WDCON&=~SET_BIT2;EA=BIT_TMP; 348 #define clr_WPS1 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;WDCON&=~SET_BIT1;EA=BIT_TMP; 349 #define clr_WPS0 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;WDCON&=~SET_BIT0;EA=BIT_TMP; 350 351 //**** BODCON1 ABH **** TA protect register 352 #define set_LPBOD1 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;BODCON1|=SET_BIT2 ;EA=BIT_TMP; 353 #define set_LPBOD0 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;BODCON1|=SET_BIT1 ;EA=BIT_TMP; 354 #define set_BODFLT BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;BODCON1|=SET_BIT0 ;EA=BIT_TMP; 355 356 #define clr_LPBOD1 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;BODCON1&=~SET_BIT2;EA=BIT_TMP; 357 #define clr_LPBOD0 BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;BODCON1&=~SET_BIT1;EA=BIT_TMP; 358 #define clr_BODFLT BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;BODCON1&=~SET_BIT0;EA=BIT_TMP; 359 360 361 //**** P3M1 ACH PAGE0 **** 362 #define set_P3M1_0 P3M1 |= SET_BIT0 363 #define clr_P3M1_0 P3M1 &= ~SET_BIT0 364 365 //**** P3S ACH PAGE1 **** SFRS must set as 1 to modify this register 366 #define set_P3S_0 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P3S|=SET_BIT0;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 367 #define clr_P3S_0 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P3S&=~SET_BIT0;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 368 369 //**** P3M2 ADH PAGE0 **** 370 #define set_P3M2_0 P3M2 |= SET_BIT0 371 #define clr_P3M2_0 P3M2 &= ~SET_BIT0 372 373 //**** P3SR ADH PAGE1 **** SFRS must set as 1 to modify this register 374 #define set_P3SR_0 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P3SR|=SET_BIT0;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 375 #define clr_P3SR_0 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P3SR&=~SET_BIT0;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 376 377 //**** IAPFD AEH **** 378 379 //**** IAPCN AFH **** 380 #define set_FOEN IAPN |= SET_BIT5 381 #define set_FCEN IAPN |= SET_BIT4 382 #define set_FCTRL3 IAPN |= SET_BIT3 383 #define set_FCTRL2 IAPN |= SET_BIT2 384 #define set_FCTRL1 IAPN |= SET_BIT1 385 #define set_FCTRL0 IAPN |= SET_BIT0 386 387 #define clr_FOEN IAPN &= ~SET_BIT5 388 #define clr_FCEN IAPN &= ~SET_BIT4 389 #define clr_FCTRL3 IAPN &= ~SET_BIT3 390 #define clr_FCTRL2 IAPN &= ~SET_BIT2 391 #define clr_FCTRL1 IAPN &= ~SET_BIT1 392 #define clr_FCTRL0 IAPN &= ~SET_BIT0 393 394 //**** P3 B0H **** 395 #define set_P30 P30 = 1 396 #define clr_P30 P30 = 0 397 398 //**** P0M1 B1H PAGE0 **** 399 #define set_P0M1_7 P0M1 |= SET_BIT7 400 #define set_P0M1_6 P0M1 |= SET_BIT6 401 #define set_P0M1_5 P0M1 |= SET_BIT5 402 #define set_P0M1_4 P0M1 |= SET_BIT4 403 #define set_P0M1_3 P0M1 |= SET_BIT3 404 #define set_P0M1_2 P0M1 |= SET_BIT2 405 #define set_P0M1_1 P0M1 |= SET_BIT1 406 #define set_P0M1_0 P0M1 |= SET_BIT0 407 408 #define clr_P0M1_7 P0M1 &= ~SET_BIT7 409 #define clr_P0M1_6 P0M1 &= ~SET_BIT6 410 #define clr_P0M1_5 P0M1 &= ~SET_BIT5 411 #define clr_P0M1_4 P0M1 &= ~SET_BIT4 412 #define clr_P0M1_3 P0M1 &= ~SET_BIT3 413 #define clr_P0M1_2 P0M1 &= ~SET_BIT2 414 #define clr_P0M1_1 P0M1 &= ~SET_BIT1 415 #define clr_P0M1_0 P0M1 &= ~SET_BIT0 416 417 //**** P0S B2H PAGE1 **** SFRS must set as 1 to modify this register 418 #define set_P0S_7 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0S|=SET_BIT7;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 419 #define set_P0S_6 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0S|=SET_BIT6;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 420 #define set_P0S_5 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0S|=SET_BIT5;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 421 #define set_P0S_4 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0S|=SET_BIT4;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 422 #define set_P0S_3 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0S|=SET_BIT3;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 423 #define set_P0S_2 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0S|=SET_BIT2;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 424 #define set_P0S_1 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0S|=SET_BIT1;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 425 #define set_P0S_0 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0S|=SET_BIT0;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 426 427 #define clr_P0S_7 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0S&=~SET_BIT7;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 428 #define clr_P0S_6 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0S&=~SET_BIT6;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 429 #define clr_P0S_5 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0S&=~SET_BIT5;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 430 #define clr_P0S_4 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0S&=~SET_BIT4;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 431 #define clr_P0S_3 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0S&=~SET_BIT3;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 432 #define clr_P0S_2 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0S&=~SET_BIT2;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 433 #define clr_P0S_1 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0S&=~SET_BIT1;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 434 #define clr_P0S_0 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0S&=~SET_BIT0;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 435 436 //**** P0M2 B2H PAGE0 **** 437 #define set_P0M2_7 P0M2 |= SET_BIT7 438 #define set_P0M2_6 P0M2 |= SET_BIT6 439 #define set_P0M2_5 P0M2 |= SET_BIT5 440 #define set_P0M2_4 P0M2 |= SET_BIT4 441 #define set_P0M2_3 P0M2 |= SET_BIT3 442 #define set_P0M2_2 P0M2 |= SET_BIT2 443 #define set_P0M2_1 P0M2 |= SET_BIT1 444 #define set_P0M2_0 P0M2 |= SET_BIT0 445 446 #define clr_P0M2_7 P0M2 &= ~SET_BIT7 447 #define clr_P0M2_6 P0M2 &= ~SET_BIT6 448 #define clr_P0M2_5 P0M2 &= ~SET_BIT5 449 #define clr_P0M2_4 P0M2 &= ~SET_BIT4 450 #define clr_P0M2_3 P0M2 &= ~SET_BIT3 451 #define clr_P0M2_2 P0M2 &= ~SET_BIT2 452 #define clr_P0M2_1 P0M2 &= ~SET_BIT1 453 #define clr_P0M2_0 P0M2 &= ~SET_BIT0 454 455 456 //**** P0SR B0H PAGE1 **** SFRS must set as 1 to modify this register 457 #define set_P0SR_7 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0SR|=SET_BIT7;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 458 #define set_P0SR_6 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0SR|=SET_BIT6;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 459 #define set_P0SR_5 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0SR|=SET_BIT5;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 460 #define set_P0SR_4 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0SR|=SET_BIT4;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 461 #define set_P0SR_3 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0SR|=SET_BIT3;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 462 #define set_P0SR_2 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0SR|=SET_BIT2;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 463 #define set_P0SR_1 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0SR|=SET_BIT1;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 464 #define set_P0SR_0 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0SR|=SET_BIT0;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 465 466 #define clr_P0SR_7 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0SR&=~SET_BIT7;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 467 #define clr_P0SR_6 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0SR&=~SET_BIT6;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 468 #define clr_P0SR_5 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0SR&=~SET_BIT5;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 469 #define clr_P0SR_4 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0SR&=~SET_BIT4;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 470 #define clr_P0SR_3 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0SR&=~SET_BIT3;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 471 #define clr_P0SR_2 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0SR&=~SET_BIT2;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 472 #define clr_P0SR_1 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0SR&=~SET_BIT1;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 473 #define clr_P0SR_0 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P0SR&=~SET_BIT0;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 474 475 476 //**** P1M1 B3H PAGE0 **** 477 #define set_P1M1_7 P1M1 |= SET_BIT7 478 #define set_P1M1_6 P1M1 |= SET_BIT6 479 #define set_P1M1_5 P1M1 |= SET_BIT5 480 #define set_P1M1_4 P1M1 |= SET_BIT4 481 #define set_P1M1_3 P1M1 |= SET_BIT3 482 #define set_P1M1_2 P1M1 |= SET_BIT2 483 #define set_P1M1_1 P1M1 |= SET_BIT1 484 #define set_P1M1_0 P1M1 |= SET_BIT0 485 486 #define clr_P1M1_7 P1M1 &= ~SET_BIT7 487 #define clr_P1M1_6 P1M1 &= ~SET_BIT6 488 #define clr_P1M1_5 P1M1 &= ~SET_BIT5 489 #define clr_P1M1_4 P1M1 &= ~SET_BIT4 490 #define clr_P1M1_3 P1M1 &= ~SET_BIT3 491 #define clr_P1M1_2 P1M1 &= ~SET_BIT2 492 #define clr_P1M1_1 P1M1 &= ~SET_BIT1 493 #define clr_P1M1_0 P1M1 &= ~SET_BIT0 494 495 //**** P1S B3H PAGE1 **** SFRS must set as 1 to modify this register 496 #define set_P1S_7 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1S|=SET_BIT7;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 497 #define set_P1S_6 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1S|=SET_BIT6;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 498 #define set_P1S_5 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1S|=SET_BIT5;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 499 #define set_P1S_4 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1S|=SET_BIT4;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 500 #define set_P1S_3 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1S|=SET_BIT3;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 501 #define set_P1S_2 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1S|=SET_BIT2;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 502 #define set_P1S_1 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1S|=SET_BIT1;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 503 #define set_P1S_0 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1S|=SET_BIT0;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 504 505 #define clr_P1S_7 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1S&=~SET_BIT7;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 506 #define clr_P1S_6 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1S&=~SET_BIT6;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 507 #define clr_P1S_5 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1S&=~SET_BIT5;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 508 #define clr_P1S_4 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1S&=~SET_BIT4;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 509 #define clr_P1S_3 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1S&=~SET_BIT3;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 510 #define clr_P1S_2 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1S&=~SET_BIT2;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 511 #define clr_P1S_1 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1S&=~SET_BIT1;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 512 #define clr_P1S_0 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1S&=~SET_BIT0;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 513 514 //**** P1M2 B4H PAGE0 **** 515 #define set_P12UP P1M2 |= SET_BIT2 516 #define set_P1M2_1 P1M2 |= SET_BIT1 517 #define set_P1M2_0 P1M2 |= SET_BIT0 518 519 #define clr_P12UP P1M2 &= ~SET_BIT2 520 #define clr_P1M2_1 P1M2 &= ~SET_BIT1 521 #define clr_P1M2_0 P1M2 &= ~SET_BIT0 522 523 //**** P1SR B4H PAGE1 **** SFRS must set as 1 to modify this register 524 #define set_P1SR_7 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1SR|=SET_BIT7;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 525 #define set_P1SR_6 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1SR|=SET_BIT6;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 526 #define set_P1SR_5 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1SR|=SET_BIT5;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 527 #define set_P1SR_4 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1SR|=SET_BIT4;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 528 #define set_P1SR_3 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1SR|=SET_BIT3;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 529 #define set_P1SR_2 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1SR|=SET_BIT2;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 530 #define set_P1SR_1 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1SR|=SET_BIT1;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 531 #define set_P1SR_0 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1SR|=SET_BIT0;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 532 533 #define clr_P1SR_7 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1SR&=~SET_BIT7;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 534 #define clr_P1SR_6 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1SR&=~SET_BIT6;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 535 #define clr_P1SR_5 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1SR&=~SET_BIT5;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 536 #define clr_P1SR_4 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1SR&=~SET_BIT4;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 537 #define clr_P1SR_3 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1SR&=~SET_BIT3;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 538 #define clr_P1SR_2 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1SR&=~SET_BIT2;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 539 #define clr_P1SR_1 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1SR&=~SET_BIT1;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 540 #define clr_P1SR_0 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;P1SR&=~SET_BIT0;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 541 542 543 //**** P2S B5H **** 544 #define set_P2S_0 P2S |= SET_BIT0 545 #define clr_P2S_0 P2S &= ~SET_BIT0 546 547 //**** IPH B7H PAGE0 **** 548 #define set_PADCH IPH |= SET_BIT6 549 #define set_PBODH IPH |= SET_BIT5 550 #define set_PSH IPH |= SET_BIT4 551 #define set_PT1H IPH |= SET_BIT3 552 #define set_PX11 IPH |= SET_BIT2 553 #define set_PT0H IPH |= SET_BIT1 554 #define set_PX0H IPH |= SET_BIT0 555 556 #define clr_PADCH IPH &= ~SET_BIT6 557 #define clr_PBODH IPH &= ~SET_BIT5 558 #define clr_PSH IPH &= ~SET_BIT4 559 #define clr_PT1H IPH &= ~SET_BIT3 560 #define clr_PX11 IPH &= ~SET_BIT2 561 #define clr_PT0H IPH &= ~SET_BIT1 562 #define clr_PX0H IPH &= ~SET_BIT0 563 564 //**** PWMINTC B7H PAGE1 **** SFRS must set as 1 to modify this register 565 #define set_INTTYP1 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PWMINTC|=SET_BIT5;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 566 #define set_INTTYP0 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PWMINTC|=SET_BIT4;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 567 #define set_INTSEL2 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PWMINTC|=SET_BIT2;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 568 #define set_INTSEL1 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PWMINTC|=SET_BIT1;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 569 #define set_INTSEL0 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PWMINTC|=SET_BIT0;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 570 571 #define clr_INTTYP1 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PWMINTC&=~SET_BIT5;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 572 #define clr_INTTYP0 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PWMINTC&=~SET_BIT4;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 573 #define clr_INTSEL2 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PWMINTC&=~SET_BIT2;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 574 #define clr_INTSEL1 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PWMINTC&=~SET_BIT1;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 575 #define clr_INTSEL0 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PWMINTC&=~SET_BIT0;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 576 577 //**** IP B8H **** 578 #define set_PADC PADC = 1 579 #define set_PBOD PBOD = 1 580 #define set_PS PS = 1 581 #define set_PT1 PT1 = 1 582 #define set_PX1 PX1 = 1 583 #define set_PT0 PT0 = 1 584 #define set_PX0 PX0 = 1 585 586 #define clr_PADC PADC = 0 587 #define clr_PBOD PBOD = 0 588 #define clr_PS PS = 0 589 #define clr_PT1 PT1 = 0 590 #define clr_PX1 PX1 = 0 591 #define clr_PT0 PT0 = 0 592 #define clr_PX0 PX0 = 0 593 594 //**** SADEN B9H **** 595 //**** SADEN_1 8AH **** 596 //**** SADDR_1 BBH **** 597 //**** I2DAT BCH **** 598 //**** I2STAT BDH **** 599 //**** I2CLK BEH **** 600 601 //**** I2TOC BFH **** 602 #define set_I2TOCEN I2TOC |= SET_BIT2 603 #define set_DIV I2TOC |= SET_BIT1 604 #define set_I2TOF I2TOC |= SET_BIT0 605 606 #define clr_I2TOCEN I2TOC &= ~SET_BIT2 607 #define clr_DIV I2TOC &= ~SET_BIT1 608 #define clr_I2TOF I2TOC &= ~SET_BIT0 609 610 //**** I2CON C0H **** 611 #define set_I2CEN I2CEN = 1 612 #define set_STA STA = 1 613 #define set_STO STO = 1 614 #define set_SI SI = 1 615 #define set_AA AA = 1 616 #define set_I2CPX I2CPX = 1 617 618 #define clr_I2CEN I2CEN = 0 619 #define clr_STA STA = 0 620 #define clr_STO STO = 0 621 #define clr_SI SI = 0 622 #define clr_AA AA = 0 623 #define clr_I2CPX I2CPX = 0 624 625 //**** I2ADDR C1H **** 626 #define set_GC I2ADDR |= SET_BIT0 627 #define clr_GC I2ADDR &= ~SET_BIT0 628 629 //**** ADCRL C2H **** 630 //**** ADCRH C3H **** 631 632 //**** T3CON C4H PAGE0 **** 633 #define set_SMOD_1 T3CON |= SET_BIT7 634 #define set_SMOD0_1 T3CON |= SET_BIT6 635 #define set_BRCK T3CON |= SET_BIT5 636 #define set_TF3 T3CON |= SET_BIT4 637 #define set_TR3 T3CON |= SET_BIT3 638 #define set_T3PS2 T3CON |= SET_BIT2 639 #define set_T3PS1 T3CON |= SET_BIT1 640 #define set_T3PS0 T3CON |= SET_BIT0 641 642 #define clr_SMOD_1 T3CON &= ~SET_BIT7 643 #define clr_SMOD0_1 T3CON &= ~SET_BIT6 644 #define clr_BRCK T3CON &= ~SET_BIT5 645 #define clr_TF3 T3CON &= ~SET_BIT4 646 #define clr_TR3 T3CON &= ~SET_BIT3 647 #define clr_T3PS2 T3CON &= ~SET_BIT2 648 #define clr_T3PS1 T3CON &= ~SET_BIT1 649 #define clr_T3PS0 T3CON &= ~SET_BIT0 650 651 //**** PWM4H C4H PAGE1 **** SFRS must set as 1 to modify this register 652 //**** RL3 C5H PAGE0 **** 653 //**** PWM5H C5H PAGE1 **** SFRS must set as 1 to modify this register 654 //**** RH3 C6H PAGE0 **** 655 656 //**** PIOCON1 C6H PAGE1 **** SFRS must set as 1 to modify this register 657 #define set_PIO15 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PIOCON1|=SET_BIT5;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 658 #define set_PIO13 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PIOCON1|=SET_BIT3;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 659 #define set_PIO12 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PIOCON1|=SET_BIT2;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 660 #define set_PIO11 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PIOCON1|=SET_BIT1;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 661 662 #define clr_PIO15 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PIOCON1&=~SET_BIT5;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 663 #define clr_PIO13 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PIOCON1&=~SET_BIT3;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 664 #define clr_PIO12 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PIOCON1&=~SET_BIT2;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 665 #define clr_PIO11 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PIOCON1&=~SET_BIT1;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 666 667 //**** T2CON C8H **** 668 #define set_TF2 TF2 = 1 669 #define set_TR2 TR2 = 1 670 #define set_CMRL2 CMRL2 = 1 671 672 #define clr_TF2 TF2 = 0 673 #define clr_TR2 TR2 = 0 674 #define clr_CMRL2 CMRL2 = 0 675 676 //**** T2MOD C9H **** 677 #define set_LDEN T2MOD |= SET_BIT7 678 #define set_T2DIV2 T2MOD |= SET_BIT6 679 #define set_T2DIV1 T2MOD |= SET_BIT5 680 #define set_T2DIV0 T2MOD |= SET_BIT4 681 #define set_CAPCR T2MOD |= SET_BIT3 682 #define set_CMPCR T2MOD |= SET_BIT2 683 #define set_LDTS1 T2MOD |= SET_BIT1 684 #define set_LDTS0 T2MOD |= SET_BIT0 685 686 #define clr_LDEN T2MOD &= ~SET_BIT7 687 #define clr_T2DIV2 T2MOD &= ~SET_BIT6 688 #define clr_T2DIV1 T2MOD &= ~SET_BIT5 689 #define clr_T2DIV0 T2MOD &= ~SET_BIT4 690 #define clr_CAPCR T2MOD &= ~SET_BIT3 691 #define clr_CMPCR T2MOD &= ~SET_BIT2 692 #define clr_LDTS1 T2MOD &= ~SET_BIT1 693 #define clr_LDTS0 T2MOD &= ~SET_BIT0 694 695 //**** RCMP2H CAH **** 696 //**** RCMP2L CBH **** 697 //**** TL2 CCH PAGE0 **** 698 //**** PWM4L CCH PAGE1 **** SFRS must set as 1 to modify this register 699 //**** TH2 CDH PAGE0 **** 700 //**** PWM5L CDH PAGE1 **** SFRS must set as 1 to modify this register 701 //**** ADCMPL CEH **** 702 //**** ADCMPH CFH **** 703 704 /**** PSW D0H ****/ 705 #define set_CY CY = 1 706 #define set_AC AC = 1 707 #define set_F0 F0 = 1 708 #define set_RS1 RS1 = 1 709 #define set_RS0 RS0 = 1 710 #define set_OV OV = 1 711 #define set_P P = 1 712 713 #define clr_CY CY = 0 714 #define clr_AC AC = 0 715 #define clr_F0 F0 = 0 716 #define clr_RS1 RS1 = 0 717 #define clr_RS0 RS0 = 0 718 #define clr_OV OV = 0 719 #define clr_P P = 0 720 721 //**** PWMPH D1H **** 722 //**** PWM0H D2H **** 723 //**** PWM1H D3H **** 724 //**** PWM2H D4H **** 725 //**** PWM3H D5H **** 726 727 //**** PNP D6H **** 728 #define set_PNP5 PNP |= SET_BIT5 729 #define set_PNP4 PNP |= SET_BIT4 730 #define set_PNP3 PNP |= SET_BIT3 731 #define set_PNP2 PNP |= SET_BIT2 732 #define set_PNP1 PNP |= SET_BIT1 733 #define set_PNP0 PNP |= SET_BIT0 734 735 #define clr_PNP5 PNP &= ~SET_BIT5 736 #define clr_PNP4 PNP &= ~SET_BIT4 737 #define clr_PNP3 PNP &= ~SET_BIT3 738 #define clr_PNP2 PNP &= ~SET_BIT2 739 #define clr_PNP1 PNP &= ~SET_BIT1 740 #define clr_PNP0 PNP &= ~SET_BIT0 741 742 //**** FBD D7H **** 743 #define set_FBF FBD |= SET_BIT7 744 #define set_FBINLS FBD |= SET_BIT6 745 #define set_FBD5 FBD |= SET_BIT5 746 #define set_FBD4 FBD |= SET_BIT4 747 #define set_FBD3 FBD |= SET_BIT3 748 #define set_FBD2 FBD |= SET_BIT2 749 #define set_FBD1 FBD |= SET_BIT1 750 #define set_FBD0 FBD |= SET_BIT0 751 752 #define clr_FBF FBD &= ~SET_BIT7 753 #define clr_FBINLS FBD &= ~SET_BIT6 754 #define clr_FBD5 FBD &= ~SET_BIT5 755 #define clr_FBD4 FBD &= ~SET_BIT4 756 #define clr_FBD3 FBD &= ~SET_BIT3 757 #define clr_FBD2 FBD &= ~SET_BIT2 758 #define clr_FBD1 FBD &= ~SET_BIT1 759 #define clr_FBD0 FBD &= ~SET_BIT0 760 761 /**** PWMCON0 D8H ****/ 762 #define set_PWMRUN PWMRUN = 1 //运行PWM使能 763 #define set_LOAD LOAD = 1 //写:更新PWM值(本次结束更新),读:(导入新的pwm没有完成) 764 #define set_PWMF PWMF = 1 // 765 #define set_CLRPWM CLRPWM = 1 //写:清空pwm寄存器,读:PWM 16位计数器内还有数值,未清零 766 767 #define clr_PWMRUN PWMRUN = 0 //关闭PWM使能 768 #define clr_LOAD LOAD = 0 //写:=导入新周期和占空比已经完成,读:=当前一个PWM周期输出结束,载入动作才会开始 769 #define clr_PWMF PWMF = 0 // 770 #define clr_CLRPWM CLRPWM = 0 //写: 无动作,读: PWM 16位计数器已清零 771 772 //**** PWMPL D9H **** 773 //**** PWM0L DAH **** 774 //**** PWM1L DBH **** 775 //**** PWM2L DCH **** 776 //**** PWM3L DDH **** 777 778 //**** PIOCON0 DEH **** 779 #define set_PIO05 PIOCON0 |= SET_BIT5 780 #define set_PIO04 PIOCON0 |= SET_BIT4 781 #define set_PIO03 PIOCON0 |= SET_BIT3 782 #define set_PIO02 PIOCON0 |= SET_BIT2 783 #define set_PIO01 PIOCON0 |= SET_BIT1 784 #define set_PIO00 PIOCON0 |= SET_BIT0 785 786 #define clr_PIO05 PIOCON0 &= ~SET_BIT5 787 #define clr_PIO04 PIOCON0 &= ~SET_BIT4 788 #define clr_PIO03 PIOCON0 &= ~SET_BIT3 789 #define clr_PIO02 PIOCON0 &= ~SET_BIT2 790 #define clr_PIO01 PIOCON0 &= ~SET_BIT1 791 #define clr_PIO00 PIOCON0 &= ~SET_BIT0 792 793 //**** PWMCON1 DFH **** 794 #define set_PWMMOD1 PWMCON1 |= SET_BIT7 795 #define set_PWMMOD0 PWMCON1 |= SET_BIT6 796 #define set_GP PWMCON1 |= SET_BIT5 797 #define set_PWMTYP PWMCON1 |= SET_BIT4 798 #define set_FBINEN PWMCON1 |= SET_BIT3 799 #define set_PWMDIV2 PWMCON1 |= SET_BIT2 800 #define set_PWMDIV1 PWMCON1 |= SET_BIT1 801 #define set_PWMDIV0 PWMCON1 |= SET_BIT0 802 803 #define clr_PWMMOD1 PWMCON1 &= ~SET_BIT7 804 #define clr_PWMMOD0 PWMCON1 &= ~SET_BIT6 805 #define clr_GP PWMCON1 &= ~SET_BIT5 806 #define clr_PWMTYP PWMCON1 &= ~SET_BIT4 807 #define clr_FBINEN PWMCON1 &= ~SET_BIT3 808 #define clr_PWMDIV2 PWMCON1 &= ~SET_BIT2 809 #define clr_PWMDIV1 PWMCON1 &= ~SET_BIT1 810 #define clr_PWMDIV0 PWMCON1 &= ~SET_BIT0 811 812 //**** ACC E0H **** 813 814 //**** ADCCON1 E1H **** 815 #define set_STADCPX ADCCON1 |= SET_BIT6 816 #define set_ETGTYP1 ADCCON1 |= SET_BIT3 817 #define set_ETGTYP0 ADCCON1 |= SET_BIT2 818 #define set_ADCEX ADCCON1 |= SET_BIT1 819 #define set_ADCEN ADCCON1 |= SET_BIT0 820 821 #define clr_STADCPX ADCCON1 &= ~SET_BIT6 822 #define clr_ETGTYP1 ADCCON1 &= ~SET_BIT3 823 #define clr_ETGTYP0 ADCCON1 &= ~SET_BIT2 824 #define clr_ADCEX ADCCON1 &= ~SET_BIT1 825 #define clr_ADCEN ADCCON1 &= ~SET_BIT0 826 827 //**** ADCON2 E2H **** 828 #define set_ADFBEN ADCCON2 |= SET_BIT7 829 #define set_ADCMPOP ADCCON2 |= SET_BIT6 830 #define set_ADCMPEN ADCCON2 |= SET_BIT5 831 #define set_ADCMPO ADCCON2 |= SET_BIT4 832 833 #define clr_ADFBEN ADCCON2 &= ~SET_BIT7 834 #define clr_ADCMPOP ADCCON2 &= ~SET_BIT6 835 #define clr_ADCMPEN ADCCON2 &= ~SET_BIT5 836 #define clr_ADCMPO ADCCON2 &= ~SET_BIT4 837 838 //**** ADCDLY E3H **** 839 //**** C0L E4H **** 840 //**** C0H E5H **** 841 //**** C1L E6H **** 842 //**** C1H E7H **** 843 844 //**** ADCCON0 EAH **** 845 #define set_ADCF ADCF = 1 846 #define set_ADCS ADCS = 1 847 #define set_ETGSEL1 ETGSEL1 = 1 848 #define set_ETGSEL0 ETGSEL0 = 1 849 #define set_ADCHS3 ADCHS3 = 1 850 #define set_ADCHS2 ADCHS2 = 1 851 #define set_ADCHS1 ADCHS1 = 1 852 #define set_ADCHS0 ADCHS0 = 1 853 854 #define clr_ADCF ADCF = 0 855 #define clr_ADCS ADCS = 0 856 #define clr_ETGSEL1 ETGSEL1 = 0 857 #define clr_ETGSEL0 ETGSEL0 = 0 858 #define clr_ADCHS3 ADCHS3 = 0 859 #define clr_ADCHS2 ADCHS2 = 0 860 #define clr_ADCHS1 ADCHS1 = 0 861 #define clr_ADCHS0 ADCHS0 = 0 862 863 //**** PICON E9H **** 864 #define set_PIT67 PICON |= SET_BIT7 865 #define set_PIT45 PICON |= SET_BIT6 866 #define set_PIT3 PICON |= SET_BIT5 867 #define set_PIT2 PICON |= SET_BIT4 868 #define set_PIT1 PICON |= SET_BIT3 869 #define set_PIT0 PICON |= SET_BIT2 870 #define set_PIPS1 PICON |= SET_BIT1 871 #define set_PIPS0 PICON |= SET_BIT0 872 873 #define clr_PIT67 PICON &= ~SET_BIT7 874 #define clr_PIT45 PICON &= ~SET_BIT6 875 #define clr_PIT3 PICON &= ~SET_BIT5 876 #define clr_PIT2 PICON &= ~SET_BIT4 877 #define clr_PIT1 PICON &= ~SET_BIT3 878 #define clr_PIT0 PICON &= ~SET_BIT2 879 #define clr_PIPS1 PICON &= ~SET_BIT1 880 #define clr_PIPS0 PICON &= ~SET_BIT0 881 882 //**** PINEN EAH **** 883 #define set_PINEN7 PINEN |= SET_BIT7 884 #define set_PINEN6 PINEN |= SET_BIT6 885 #define set_PINEN5 PINEN |= SET_BIT5 886 #define set_PINEN4 PINEN |= SET_BIT4 887 #define set_PINEN3 PINEN |= SET_BIT3 888 #define set_PINEN2 PINEN |= SET_BIT2 889 #define set_PINEN1 PINEN |= SET_BIT1 890 #define set_PINEN0 PINEN |= SET_BIT0 891 892 #define clr_PINEN7 PINEN &= ~SET_BIT7 893 #define clr_PINEN6 PINEN &= ~SET_BIT6 894 #define clr_PINEN5 PINEN &= ~SET_BIT5 895 #define clr_PINEN4 PINEN &= ~SET_BIT4 896 #define clr_PINEN3 PINEN &= ~SET_BIT3 897 #define clr_PINEN2 PINEN &= ~SET_BIT2 898 #define clr_PINEN1 PINEN &= ~SET_BIT1 899 #define clr_PINEN0 PINEN &= ~SET_BIT0 900 901 //**** PIPEN EBH **** 902 #define set_PIPEN7 PIPEN |= SET_BIT7 903 #define set_PIPEN6 PIPEN |= SET_BIT6 904 #define set_PIPEN5 PIPEN |= SET_BIT5 905 #define set_PIPEN4 PIPEN |= SET_BIT4 906 #define set_PIPEN3 PIPEN |= SET_BIT3 907 #define set_PIPEN2 PIPEN |= SET_BIT2 908 #define set_PIPEN1 PIPEN |= SET_BIT1 909 #define set_PIPEN0 PIPEN |= SET_BIT0 910 911 #define clr_PIPEN7 PIPEN &= ~SET_BIT7 912 #define clr_PIPEN6 PIPEN &= ~SET_BIT6 913 #define clr_PIPEN5 PIPEN &= ~SET_BIT5 914 #define clr_PIPEN4 PIPEN &= ~SET_BIT4 915 #define clr_PIPEN3 PIPEN &= ~SET_BIT3 916 #define clr_PIPEN2 PIPEN &= ~SET_BIT2 917 #define clr_PIPEN1 PIPEN &= ~SET_BIT1 918 #define clr_PIPEN0 PIPEN &= ~SET_BIT0 919 920 //**** PIF ECH **** 921 #define set_PIF7 PIF |= SET_BIT7 922 #define set_PIF6 PIF |= SET_BIT6 923 #define set_PIF5 PIF |= SET_BIT5 924 #define set_PIF4 PIF |= SET_BIT4 925 #define set_PIF3 PIF |= SET_BIT3 926 #define set_PIF2 PIF |= SET_BIT2 927 #define set_PIF1 PIF |= SET_BIT1 928 #define set_PIF0 PIF |= SET_BIT0 929 930 #define clr_PIF7 PIF &= ~SET_BIT7 931 #define clr_PIF6 PIF &= ~SET_BIT6 932 #define clr_PIF5 PIF &= ~SET_BIT5 933 #define clr_PIF4 PIF &= ~SET_BIT4 934 #define clr_PIF3 PIF &= ~SET_BIT3 935 #define clr_PIF2 PIF &= ~SET_BIT2 936 #define clr_PIF1 PIF &= ~SET_BIT1 937 #define clr_PIF0 PIF &= ~SET_BIT0 938 939 //**** C2L EDH **** 940 //**** C2H EEH **** 941 942 //**** EIP EFH **** 943 #define set_PT2 EIP |= SET_BIT7 944 #define set_PSPI EIP |= SET_BIT6 945 #define set_PFB EIP |= SET_BIT5 946 #define set_PWDT EIP |= SET_BIT4 947 #define set_PPWM EIP |= SET_BIT3 948 #define set_PCAP EIP |= SET_BIT2 949 #define set_PPI EIP |= SET_BIT1 950 #define set_PI2C EIP |= SET_BIT0 951 952 #define clr_PT2 EIP &= ~SET_BIT7 953 #define clr_PSPI EIP &= ~SET_BIT6 954 #define clr_PFB EIP &= ~SET_BIT5 955 #define clr_PWDT EIP &= ~SET_BIT4 956 #define clr_PPWM EIP &= ~SET_BIT3 957 #define clr_PCAP EIP &= ~SET_BIT2 958 #define clr_PPI EIP &= ~SET_BIT1 959 #define clr_PI2C EIP &= ~SET_BIT0 960 961 //**** B F0H **** 962 963 //**** CAPCON3 F1H **** 964 #define set_CAP13 CAPCON3 |= SET_BIT7 965 #define set_CAP12 CAPCON3 |= SET_BIT6 966 #define set_CAP11 CAPCON3 |= SET_BIT5 967 #define set_CAP10 CAPCON3 |= SET_BIT4 968 #define set_CAP03 CAPCON3 |= SET_BIT3 969 #define set_CAP02 CAPCON3 |= SET_BIT2 970 #define set_CAP01 CAPCON3 |= SET_BIT1 971 #define set_CAP00 CAPCON3 |= SET_BIT0 972 973 #define clr_CAP13 CAPCON3 &= ~SET_BIT7 974 #define clr_CAP12 CAPCON3 &= ~SET_BIT6 975 #define clr_CAP11 CAPCON3 &= ~SET_BIT5 976 #define clr_CAP10 CAPCON3 &= ~SET_BIT4 977 #define clr_CAP03 CAPCON3 &= ~SET_BIT3 978 #define clr_CAP02 CAPCON3 &= ~SET_BIT2 979 #define clr_CAP01 CAPCON3 &= ~SET_BIT1 980 #define clr_CAP00 CAPCON3 &= ~SET_BIT0 981 982 //**** CAPCON4 F2H **** 983 #define set_CAP23 CAPCON4 |= SET_BIT3 984 #define set_CAP22 CAPCON4 |= SET_BIT2 985 #define set_CAP21 CAPCON4 |= SET_BIT1 986 #define set_CAP20 CAPCON4 |= SET_BIT0 987 988 #define clr_CAP23 CAPCON4 &= ~SET_BIT3 989 #define clr_CAP22 CAPCON4 &= ~SET_BIT2 990 #define clr_CAP21 CAPCON4 &= ~SET_BIT1 991 #define clr_CAP20 CAPCON4 &= ~SET_BIT0 992 993 //**** SPCR F3H PAGE0 **** 994 #define set_SSOE SPCR |= SET_BIT7 995 #define set_SPIEN SPCR |= SET_BIT6 996 #define set_LSBFE SPCR |= SET_BIT5 997 #define set_MSTR SPCR |= SET_BIT4 998 #define set_CPOL SPCR |= SET_BIT3 999 #define set_CPHA SPCR |= SET_BIT2 1000 #define set_SPR1 SPCR |= SET_BIT1 1001 #define set_SPR0 SPCR |= SET_BIT0 1002 1003 #define clr_SSOE SPCR &= ~SET_BIT7 1004 #define clr_SPIEN SPCR &= ~SET_BIT6 1005 #define clr_LSBFE SPCR &= ~SET_BIT5 1006 #define clr_MSTR SPCR &= ~SET_BIT4 1007 #define clr_CPOL SPCR &= ~SET_BIT3 1008 #define clr_CPHA SPCR &= ~SET_BIT2 1009 #define clr_SPR1 SPCR &= ~SET_BIT1 1010 #define clr_SPR0 SPCR &= ~SET_BIT0 1011 1012 //**** SPCR2 F3H PAGE1 **** SFRS must set as 1 to modify this register 1013 #define set_SPIS1 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;SPCR2|=SET_BIT1;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 1014 #define set_SPIS0 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x00;SPCR2|=SET_BIT1;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 1015 1016 #define clr_SPIS1 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x00;SPCR2&=~SET_BIT1;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 1017 #define clr_SPIS0 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x00;SPCR2&=~SET_BIT0;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 1018 1019 //**** SPSR F4H **** 1020 #define set_SPIF SPSR |= SET_BIT7 1021 #define set_WCOL SPSR |= SET_BIT6 1022 #define set_SPIOVF SPSR |= SET_BIT5 1023 #define set_MODF SPSR |= SET_BIT4 1024 #define set_DISMODF SPSR |= SET_BIT3 1025 1026 #define clr_SPIF SPSR &= ~SET_BIT7 1027 #define clr_WCOL SPSR &= ~SET_BIT6 1028 #define clr_SPIOVF SPSR &= ~SET_BIT5 1029 #define clr_MODF SPSR &= ~SET_BIT4 1030 #define clr_DISMODF SPSR &= ~SET_BIT3 1031 1032 //**** SPDR F5H **** 1033 1034 //**** AINDIDS F6H **** 1035 #define set_P11DIDS AINDIDS |= SET_BIT7 1036 #define set_P03DIDS AINDIDS |= SET_BIT6 1037 #define set_P04DIDS AINDIDS |= SET_BIT5 1038 #define set_P05DIDS AINDIDS |= SET_BIT4 1039 #define set_P06DIDS AINDIDS |= SET_BIT3 1040 #define set_P07DIDS AINDIDS |= SET_BIT2 1041 #define set_P30DIDS AINDIDS |= SET_BIT1 1042 #define set_P17DIDS AINDIDS |= SET_BIT0 1043 1044 #define clr_P11DIDS AINDIDS &= ~SET_BIT7 1045 #define clr_P03DIDS AINDIDS &= ~SET_BIT6 1046 #define clr_P04DIDS AINDIDS &= ~SET_BIT5 1047 #define clr_P05DIDS AINDIDS &= ~SET_BIT4 1048 #define clr_P06DIDS AINDIDS &= ~SET_BIT3 1049 #define clr_P07DIDS AINDIDS &= ~SET_BIT2 1050 #define clr_P30DIDS AINDIDS &= ~SET_BIT1 1051 #define clr_P17DIDS AINDIDS &= ~SET_BIT0 1052 1053 //**** EIPH F7H **** 1054 #define set_PT2H EIPH |= SET_BIT7 1055 #define set_PSPIH EIPH |= SET_BIT6 1056 #define set_PFBH EIPH |= SET_BIT5 1057 #define set_PWDTH EIPH |= SET_BIT4 1058 #define set_PPWMH EIPH |= SET_BIT3 1059 #define set_PCAPH EIPH |= SET_BIT2 1060 #define set_PPIH EIPH |= SET_BIT1 1061 #define set_PI2CH EIPH |= SET_BIT0 1062 1063 #define clr_PT2H EIPH &= ~SET_BIT7 1064 #define clr_PSPIH EIPH &= ~SET_BIT6 1065 #define clr_PFBH EIPH &= ~SET_BIT5 1066 #define clr_PWDTH EIPH &= ~SET_BIT4 1067 #define clr_PPWMH EIPH &= ~SET_BIT3 1068 #define clr_PCAPH EIPH &= ~SET_BIT2 1069 #define clr_PPIH EIPH &= ~SET_BIT1 1070 #define clr_PI2CH EIPH &= ~SET_BIT0 1071 1072 /**** SCON_1 F8H ****/ 1073 #define set_FE_1 FE_1 = 1 1074 #define set_SM1_1 SM1_1 = 1 1075 #define set_SM2_1 SM2_1 = 1 1076 #define set_REN_1 REN_1 = 1 1077 #define set_TB8_1 TB8_1 = 1 1078 #define set_RB8_1 RB8_1 = 1 1079 #define set_TI_1 TI_1 = 1 1080 #define set_RI_1 RI_1 = 1 1081 1082 #define clr_FE_1 FE_1 = 0 1083 #define clr_SM1_1 SM1_1 = 0 1084 #define clr_SM2_1 SM2_1 = 0 1085 #define clr_REN_1 REN_1 = 0 1086 #define clr_TB8_1 TB8_1 = 0 1087 #define clr_RB8_1 RB8_1 = 0 1088 #define clr_TI_1 TI_1 = 0 1089 #define clr_RI_1 RI_1 = 0 1090 1091 //**** PDTEN F9H **** 1092 #define set_PDT45EN BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;PDTEN|= SET_BIT2 ;EA=BIT_TMP; 1093 #define set_PDT23EN BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;PDTEN|= SET_BIT1 ;EA=BIT_TMP; 1094 #define set_PDT01EN BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;PDTEN|= SET_BIT0 ;EA=BIT_TMP; 1095 1096 #define clr_PDT45EN BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;PDTEN &= ~SET_BIT2 ;EA=BIT_TMP; 1097 #define clr_PDT23EN BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;PDTEN &= ~SET_BIT1 ;EA=BIT_TMP; 1098 #define clr_PDT01EN BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;PDTEN &= ~SET_BIT0 ;EA=BIT_TMP; 1099 1100 //**** PDTCNT FAH **** 1101 1102 //**** PMEN FBH **** 1103 #define set_PMEN5 PMEN |= SET_BIT5 1104 #define set_PMEN4 PMEN |= SET_BIT4 1105 #define set_PMEN3 PMEN |= SET_BIT3 1106 #define set_PMEN2 PMEN |= SET_BIT2 1107 #define set_PMEN1 PMEN |= SET_BIT1 1108 #define set_PMEN0 PMEN |= SET_BIT0 1109 1110 #define clr_PMEN5 PMEN &= ~SET_BIT5 1111 #define clr_PMEN4 PMEN &= ~SET_BIT4 1112 #define clr_PMEN3 PMEN &= ~SET_BIT3 1113 #define clr_PMEN2 PMEN &= ~SET_BIT2 1114 #define clr_PMEN1 PMEN &= ~SET_BIT1 1115 #define clr_PMEN0 PMEN &= ~SET_BIT0 1116 1117 //**** PMD FCH **** 1118 #define set_PMD7 PMD |= SET_BIT7 1119 #define set_PMD6 PMD |= SET_BIT6 1120 #define set_PMD5 PMD |= SET_BIT5 1121 #define set_PMD4 PMD |= SET_BIT4 1122 #define set_PMD3 PMD |= SET_BIT3 1123 #define set_PMD2 PMD |= SET_BIT2 1124 #define set_PMD1 PMD |= SET_BIT1 1125 #define set_PMD0 PMD |= SET_BIT0 1126 1127 #define clr_PMD7 PMD &= ~SET_BIT7 1128 #define clr_PMD6 PMD &= ~SET_BIT6 1129 #define clr_PMD5 PMD &= ~SET_BIT5 1130 #define clr_PMD4 PMD &= ~SET_BIT4 1131 #define clr_PMD3 PMD &= ~SET_BIT3 1132 #define clr_PMD2 PMD &= ~SET_BIT2 1133 #define clr_PMD1 PMD &= ~SET_BIT1 1134 #define clr_PMD0 PMD &= ~SET_BIT0 1135 1136 //**** EIP1 FEH **** 1137 #define set_PWKT EIP1 |= SET_BIT2 1138 #define set_PT3 EIP1 |= SET_BIT1 1139 #define set_PS_1 EIP1 |= SET_BIT0 1140 1141 #define clr_PWKT EIP1 &= ~SET_BIT2 1142 #define clr_PT3 EIP1 &= ~SET_BIT1 1143 #define clr_PS_1 EIP1 &= ~SET_BIT0 1144 1145 //**** EIPH1 FFH **** 1146 #define set_PWKTH EIPH1 |= SET_BIT2 1147 #define set_PT3H EIPH1 |= SET_BIT1 1148 #define set_PSH_1 EIPH1 |= SET_BIT0 1149 1150 #define clr_PWKTH EIPH1 &= ~SET_BIT2 1151 #define clr_PT3H EIPH1 &= ~SET_BIT1 1152 #define clr_PSH_1 EIPH1 &= ~SET_BIT0
1 /*-------------------------------------------------------------------------- 2 N76E003 Function_define.h V1.02 3 4 All function define inital setting file for Nuvoton N76E003 5 --------------------------------------------------------------------------*/ 6 7 #include <intrins.h> 8 #include <stdio.h> 9 10 #define nop _nop_(); 11 12 13 //16 --> 8 x 2 14 #define HIBYTE(v1) ((UINT8)((v1)>>8)) //v1 is UINT16 15 #define LOBYTE(v1) ((UINT8)((v1)&0xFF)) 16 //8 x 2 --> 16 17 #define MAKEWORD(v1,v2) ((((UINT16)(v1))<<8)+(UINT16)(v2)) //v1,v2 is UINT8 18 //8 x 4 --> 32 19 #define MAKELONG(v1,v2,v3,v4) (UINT32)((v1<<24)+(v2<<16)+(v3<<8)+v4) //v1,v2,v3,v4 is UINT8 20 //32 --> 16 x 2 21 #define YBYTE1(v1) ((UINT16)((v1)>>16)) //v1 is UINT32 22 #define YBYTE0(v1) ((UINT16)((v1)&0xFFFF)) 23 //32 --> 8 x 4 24 #define TBYTE3(v1) ((UINT8)((v1)>>24)) //v1 is UINT32 25 #define TBYTE2(v1) ((UINT8)((v1)>>16)) 26 #define TBYTE1(v1) ((UINT8)((v1)>>8)) 27 #define TBYTE0(v1) ((UINT8)((v1)&0xFF)) 28 29 #define SET_BIT0 0x01 30 #define SET_BIT1 0x02 31 #define SET_BIT2 0x04 32 #define SET_BIT3 0x08 33 #define SET_BIT4 0x10 34 #define SET_BIT5 0x20 35 #define SET_BIT6 0x40 36 #define SET_BIT7 0x80 37 #define SET_BIT8 0x0100 38 #define SET_BIT9 0x0200 39 #define SET_BIT10 0x0400 40 #define SET_BIT11 0x0800 41 #define SET_BIT12 0x1000 42 #define SET_BIT13 0x2000 43 #define SET_BIT14 0x4000 44 #define SET_BIT15 0x8000 45 46 #define CLR_BIT0 0xFE 47 #define CLR_BIT1 0xFD 48 #define CLR_BIT2 0xFB 49 #define CLR_BIT3 0xF7 50 #define CLR_BIT4 0xEF 51 #define CLR_BIT5 0xDF 52 #define CLR_BIT6 0xBF 53 #define CLR_BIT7 0x7F 54 55 #define CLR_BIT8 0xFEFF 56 #define CLR_BIT9 0xFDFF 57 #define CLR_BIT10 0xFBFF 58 #define CLR_BIT11 0xF7FF 59 #define CLR_BIT12 0xEFFF 60 #define CLR_BIT13 0xDFFF 61 #define CLR_BIT14 0xBFFF 62 #define CLR_BIT15 0x7FFF 63 64 #define FAIL 1 65 #define PASS 0 66 67 /***************************************************************************************** 68 * For GPIO INIT setting 69 *****************************************************************************************/ 70 //------------------- Define Port as Quasi mode ------------------- 71 #define P00_Quasi_Mode P0M1&=~SET_BIT0;P0M2&=~SET_BIT0 72 #define P01_Quasi_Mode P0M1&=~SET_BIT1;P0M2&=~SET_BIT1 73 #define P02_Quasi_Mode P0M1&=~SET_BIT2;P0M2&=~SET_BIT2 74 #define P03_Quasi_Mode P0M1&=~SET_BIT3;P0M2&=~SET_BIT3 75 #define P04_Quasi_Mode P0M1&=~SET_BIT4;P0M2&=~SET_BIT4 76 #define P05_Quasi_Mode P0M1&=~SET_BIT5;P0M2&=~SET_BIT5 77 #define P06_Quasi_Mode P0M1&=~SET_BIT6;P0M2&=~SET_BIT6 78 #define P07_Quasi_Mode P0M1&=~SET_BIT7;P0M2&=~SET_BIT7 79 #define P10_Quasi_Mode P1M1&=~SET_BIT0;P1M2&=~SET_BIT0 80 #define P11_Quasi_Mode P1M1&=~SET_BIT1;P1M2&=~SET_BIT1 81 #define P12_Quasi_Mode P1M1&=~SET_BIT2;P1M2&=~SET_BIT2 82 #define P13_Quasi_Mode P1M1&=~SET_BIT3;P1M2&=~SET_BIT3 83 #define P14_Quasi_Mode P1M1&=~SET_BIT4;P1M2&=~SET_BIT4 84 #define P15_Quasi_Mode P1M1&=~SET_BIT5;P1M2&=~SET_BIT5 85 #define P16_Quasi_Mode P1M1&=~SET_BIT6;P1M2&=~SET_BIT6 86 #define P17_Quasi_Mode P1M1&=~SET_BIT7;P1M2&=~SET_BIT7 87 #define P30_Quasi_Mode P3M1&=~SET_BIT0;P3M2&=~SET_BIT0 88 //------------------- Define Port as Push Pull mode ------------------- 89 #define P00_PushPull_Mode P0M1&=~SET_BIT0;P0M2|=SET_BIT0 90 #define P01_PushPull_Mode P0M1&=~SET_BIT1;P0M2|=SET_BIT1 91 #define P02_PushPull_Mode P0M1&=~SET_BIT2;P0M2|=SET_BIT2 92 #define P03_PushPull_Mode P0M1&=~SET_BIT3;P0M2|=SET_BIT3 93 #define P04_PushPull_Mode P0M1&=~SET_BIT4;P0M2|=SET_BIT4 94 #define P05_PushPull_Mode P0M1&=~SET_BIT5;P0M2|=SET_BIT5 95 #define P06_PushPull_Mode P0M1&=~SET_BIT6;P0M2|=SET_BIT6 96 #define P07_PushPull_Mode P0M1&=~SET_BIT7;P0M2|=SET_BIT7 97 #define P10_PushPull_Mode P1M1&=~SET_BIT0;P1M2|=SET_BIT0 98 #define P11_PushPull_Mode P1M1&=~SET_BIT1;P1M2|=SET_BIT1 99 #define P12_PushPull_Mode P1M1&=~SET_BIT2;P1M2|=SET_BIT2 100 #define P13_PushPull_Mode P1M1&=~SET_BIT3;P1M2|=SET_BIT3 101 #define P14_PushPull_Mode P1M1&=~SET_BIT4;P1M2|=SET_BIT4 102 #define P15_PushPull_Mode P1M1&=~SET_BIT5;P1M2|=SET_BIT5 103 #define P16_PushPull_Mode P1M1&=~SET_BIT6;P1M2|=SET_BIT6 104 #define P17_PushPull_Mode P1M1&=~SET_BIT7;P1M2|=SET_BIT7 105 #define P30_PushPull_Mode P3M1&=~SET_BIT0;P3M2|=SET_BIT0 106 #define GPIO1_PushPull_Mode P1M1&=~SET_BIT0;P1M2|=SET_BIT0 107 //------------------- Define Port as Input Only mode ------------------- 108 #define P00_Input_Mode P0M1|=SET_BIT0;P0M2&=~SET_BIT0 109 #define P01_Input_Mode P0M1|=SET_BIT1;P0M2&=~SET_BIT1 110 #define P02_Input_Mode P0M1|=SET_BIT2;P0M2&=~SET_BIT2 111 #define P03_Input_Mode P0M1|=SET_BIT3;P0M2&=~SET_BIT3 112 #define P04_Input_Mode P0M1|=SET_BIT4;P0M2&=~SET_BIT4 113 #define P05_Input_Mode P0M1|=SET_BIT5;P0M2&=~SET_BIT5 114 #define P06_Input_Mode P0M1|=SET_BIT6;P0M2&=~SET_BIT6 115 #define P07_Input_Mode P0M1|=SET_BIT7;P0M2&=~SET_BIT7 116 #define P10_Input_Mode P1M1|=SET_BIT0;P1M2&=~SET_BIT0 117 #define P11_Input_Mode P1M1|=SET_BIT1;P1M2&=~SET_BIT1 118 #define P12_Input_Mode P1M1|=SET_BIT2;P1M2&=~SET_BIT2 119 #define P13_Input_Mode P1M1|=SET_BIT3;P1M2&=~SET_BIT3 120 #define P14_Input_Mode P1M1|=SET_BIT4;P1M2&=~SET_BIT4 121 #define P15_Input_Mode P1M1|=SET_BIT5;P1M2&=~SET_BIT5 122 #define P16_Input_Mode P1M1|=SET_BIT6;P1M2&=~SET_BIT6 123 #define P17_Input_Mode P1M1|=SET_BIT7;P1M2&=~SET_BIT7 124 #define P30_Input_Mode P3M1|=SET_BIT0;P3M2&=~SET_BIT0 125 //-------------------Define Port as Open Drain mode ------------------- 126 #define P00_OpenDrain_Mode P0M1|=SET_BIT0;P0M2|=SET_BIT0 127 #define P01_OpenDrain_Mode P0M1|=SET_BIT1;P0M2|=SET_BIT1 128 #define P02_OpenDrain_Mode P0M1|=SET_BIT2;P0M2|=SET_BIT2 129 #define P03_OpenDrain_Mode P0M1|=SET_BIT3;P0M2|=SET_BIT3 130 #define P04_OpenDrain_Mode P0M1|=SET_BIT4;P0M2|=SET_BIT4 131 #define P05_OpenDrain_Mode P0M1|=SET_BIT5;P0M2|=SET_BIT5 132 #define P06_OpenDrain_Mode P0M1|=SET_BIT6;P0M2|=SET_BIT6 133 #define P07_OpenDrain_Mode P0M1|=SET_BIT7;P0M2|=SET_BIT7 134 #define P10_OpenDrain_Mode P1M1|=SET_BIT0;P1M2|=SET_BIT0 135 #define P11_OpenDrain_Mode P1M1|=SET_BIT1;P1M2|=SET_BIT1 136 #define P12_OpenDrain_Mode P1M1|=SET_BIT2;P1M2|=SET_BIT2 137 #define P13_OpenDrain_Mode P1M1|=SET_BIT3;P1M2|=SET_BIT3 138 #define P14_OpenDrain_Mode P1M1|=SET_BIT4;P1M2|=SET_BIT4 139 #define P15_OpenDrain_Mode P1M1|=SET_BIT5;P1M2|=SET_BIT5 140 #define P16_OpenDrain_Mode P1M1|=SET_BIT6;P1M2|=SET_BIT6 141 #define P17_OpenDrain_Mode P1M1|=SET_BIT7;P1M2|=SET_BIT7 142 #define P30_OpenDrain_Mode P3M1|=SET_BIT0;P3M2|=SET_BIT0 143 //--------- Define all port as quasi mode --------- 144 #define Set_All_GPIO_Quasi_Mode P0M1=0;P0M2=0;P1M1=0;P1M2=0;P3M1=0;P3M2=0 145 146 #define set_GPIO1 P12=1 147 #define clr_GPIO1 P12=0 148 static bit BIT_TMP; 149 /**************************************************************************** 150 Enable INT port 0~3 151 ***************************************************************************/ 152 #define Enable_INT_Port0 PICON &= 0xFB; 153 #define Enable_INT_Port1 PICON |= 0x01; 154 #define Enable_INT_Port2 PICON |= 0x02; 155 #define Enable_INT_Port3 PICON |= 0x03; 156 /***************************************************************************** 157 Enable each bit low level trig mode 158 *****************************************************************************/ 159 #define Enable_BIT7_LowLevel_Trig PICON&=0x7F;PINEN|=0x80;PIPEN&=0x7F 160 #define Enable_BIT6_LowLevel_Trig PICON&=0x7F;PINEN|=0x40;PIPEN&=0xBF 161 #define Enable_BIT5_LowLevel_Trig PICON&=0xBF;PINEN|=0x20;PIPEN&=0xDF 162 #define Enable_BIT4_LowLevel_Trig PICON&=0xBF;PINEN|=0x10;PIPEN&=0xEF 163 #define Enable_BIT3_LowLevel_Trig PICON&=0xDF;PINEN|=0x08;PIPEN&=0xF7 164 #define Enable_BIT2_LowLevel_Trig PICON&=0xEF;PINEN|=0x04;PIPEN&=0xFB 165 #define Enable_BIT1_LowLevel_Trig PICON&=0xF7;PINEN|=0x02;PIPEN&=0xFD 166 #define Enable_BIT0_LowLevel_Trig PICON&=0xFD;PINEN|=0x01;PIPEN&=0xFE 167 /***************************************************************************** 168 Enable each bit high level trig mode 169 *****************************************************************************/ 170 #define Enable_BIT7_HighLevel_Trig PICON&=0x7F;PINEN&=0x7F;PIPEN|=0x80 171 #define Enable_BIT6_HighLevel_Trig PICON&=0x7F;PINEN&=0xBF;PIPEN|=0x40 172 #define Enable_BIT5_HighLevel_Trig PICON&=0xBF;PINEN&=0xDF;PIPEN|=0x20 173 #define Enable_BIT4_HighLevel_Trig PICON&=0xBF;PINEN&=0xEF;PIPEN|=0x10 174 #define Enable_BIT3_HighLevel_Trig PICON&=0xDF;PINEN&=0xF7;PIPEN|=0x08 175 #define Enable_BIT2_HighLevel_Trig PICON&=0xEF;PINEN&=0xFB;PIPEN|=0x04 176 #define Enable_BIT1_HighLevel_Trig PICON&=0xF7;PINEN&=0xFD;PIPEN|=0x02 177 #define Enable_BIT0_HighLevel_Trig PICON&=0xFD;PINEN&=0xFE;PIPEN|=0x01 178 /***************************************************************************** 179 Enable each bit falling edge trig mode 180 *****************************************************************************/ 181 #define Enable_BIT7_FallEdge_Trig PICON|=0x80;PINEN|=0x80;PIPEN&=0x7F 182 #define Enable_BIT6_FallEdge_Trig PICON|=0x80;PINEN|=0x40;PIPEN&=0xBF 183 #define Enable_BIT5_FallEdge_Trig PICON|=0x40;PINEN|=0x20;PIPEN&=0xDF 184 #define Enable_BIT4_FallEdge_Trig PICON|=0x40;PINEN|=0x10;PIPEN&=0xEF 185 #define Enable_BIT3_FallEdge_Trig PICON|=0x20;PINEN|=0x08;PIPEN&=0xF7 186 #define Enable_BIT2_FallEdge_Trig PICON|=0x10;PINEN|=0x04;PIPEN&=0xFB 187 #define Enable_BIT1_FallEdge_Trig PICON|=0x08;PINEN|=0x02;PIPEN&=0xFD 188 #define Enable_BIT0_FallEdge_Trig PICON|=0x04;PINEN|=0x01;PIPEN&=0xFE 189 /***************************************************************************** 190 Enable each bit rasing edge trig mode 191 *****************************************************************************/ 192 #define Enable_BIT7_RasingEdge_Trig PICON|=0x80;PINEN&=0x7F;PIPEN|=0x80 193 #define Enable_BIT6_RasingEdge_Trig PICON|=0x80;PINEN&=0xBF;PIPEN|=0x40 194 #define Enable_BIT5_RasingEdge_Trig PICON|=0x40;PINEN&=0xDF;PIPEN|=0x20 195 #define Enable_BIT4_RasingEdge_Trig PICON|=0x40;PINEN&=0xEF;PIPEN|=0x10 196 #define Enable_BIT3_RasingEdge_Trig PICON|=0x20;PINEN&=0xF7;PIPEN|=0x08 197 #define Enable_BIT2_RasingEdge_Trig PICON|=0x10;PINEN&=0xFB;PIPEN|=0x04 198 #define Enable_BIT1_RasingEdge_Trig PICON|=0x08;PINEN|=0xFD;PIPEN&=0x02 199 #define Enable_BIT0_RasingEdge_Trig PICON|=0x04;PINEN|=0xFE;PIPEN&=0x01 200 201 202 /***************************************************************************************** 203 * For TIMER VALUE setting is base on " option -> C51 -> Preprocesser Symbols -> Define " 204 *****************************************************************************************/ 205 #ifdef FOSC_110592 // if Fsys = 11.0592MHz 206 #define TIMER_DIV12_VALUE_10us 65536-9 //9*12/11.0592 = 10 uS, // Timer divider = 12 for TM0/TM1 207 #define TIMER_DIV12_VALUE_1ms 65536-923 //923*12/11.0592 = 1 mS // Timer divider = 12 208 #define TIMER_DIV12_VALUE_10ms 65536-9216 //18432*12/22118400 = 10 ms // Timer divider = 12 209 #define TIMER_DIV4_VALUE_10us 65536-28 //28*4/11.0592 = 10 uS // Timer divider = 4 for TM2/TM3 210 #define TIMER_DIV4_VALUE_1ms 65536-2765 //2765*4/11.0592 = 1 mS // Timer divider = 4 211 #define TIMER_DIV4_VALUE_100us 65536-277 //553*4/22118400 = 100 us // Timer divider = 4 212 #define TIMER_DIV4_VALUE_200us 65536-553 //1106*4/22118400 = 200 us // Timer divider = 4 213 #define TIMER_DIV4_VALUE_500us 65536-1383 //2765*4/22118400 = 500 us // Timer divider = 4 214 #define TIMER_DIV16_VALUE_10ms 65536-6912 //1500*16/22118400 = 10 ms // Timer divider = 16 215 #define TIMER_DIV64_VALUE_30ms 65536-5184 //10368*64/22118400 = 30 ms // Timer divider = 64 216 #define TIMER_DIV128_VALUE_100ms 65536-8640 //17280*128/22118400 = 100 ms // Timer divider = 128 217 #define TIMER_DIV128_VALUE_200ms 65536-17280 //34560*128/22118400 = 200 ms // Timer divider = 128 218 #define TIMER_DIV256_VALUE_500ms 65536-21600 //43200*256/22118400 = 500 ms // Timer divider = 256 219 #define TIMER_DIV512_VALUE_1s 65536-21600 //43200*512/22118400 = 1 s // Timer divider = 512 220 #endif 221 #ifdef FOSC_160000 // if Fsys = 16MHz 222 #define TIMER_DIV12_VALUE_10us 65536-13 //13*12/16000000 = 10 uS, // Timer divider = 12 for TM0/TM1 223 #define TIMER_DIV12_VALUE_100us 65536-130 //130*12/16000000 = 10 uS, // Timer divider = 12 224 #define TIMER_DIV12_VALUE_1ms 65536-1334 //1334*12/16000000 = 1 mS, // Timer divider = 12 225 #define TIMER_DIV12_VALUE_10ms 65536-13334 //13334*12/16000000 = 10 mS // Timer divider = 12 226 #define TIMER_DIV12_VALUE_40ms 65536-53336 //53336*12/16000000 = 40 ms // Timer divider = 12 227 #define TIMER_DIV4_VALUE_10us 65536-40 //40*4/16000000 = 10 uS, // Timer divider = 4 for TM2/TM3 228 #define TIMER_DIV4_VALUE_100us 65536-400 //400*4/16000000 = 100 us // Timer divider = 4 229 #define TIMER_DIV4_VALUE_200us 65536-800 //800*4/16000000 = 200 us // Timer divider = 4 230 #define TIMER_DIV4_VALUE_500us 65536-2000 //2000*4/16000000 = 500 us // Timer divider = 4 231 #define TIMER_DIV4_VALUE_1ms 65536-4000 //4000*4/16000000 = 1 mS, // Timer divider = 4 232 #define TIMER_DIV16_VALUE_10ms 65536-10000 //10000*16/16000000 = 10 ms // Timer divider = 16 233 #define TIMER_DIV64_VALUE_30ms 65536-7500 //7500*64/16000000 = 30 ms // Timer divider = 64 234 #define TIMER_DIV128_VALUE_100ms 65536-12500 //12500*128/16000000 = 100 ms // Timer divider = 128 235 #define TIMER_DIV128_VALUE_200ms 65536-25000 //25000*128/16000000 = 200 ms // Timer divider = 128 236 #define TIMER_DIV256_VALUE_500ms 65536-31250 //31250*256/16000000 = 500 ms // Timer divider = 256 237 #define TIMER_DIV512_VALUE_1s 65536-31250 //31250*512/16000000 = 1 s. // Timer Divider = 512 238 #endif 239 #ifdef FOSC_184320 // if Fsys = 18.432MHz 240 #define TIMER_DIV12_VALUE_10us 65536-15 //15*12/18.432 = 10 uS, Timer Clock = Fsys/12 241 #define TIMER_DIV12_VALUE_1ms 65536-1536 //1536*12/18.432 = 1 mS, Timer Clock = Fsys/12 242 #define TIMER_DIV4_VALUE_10us 65536-46 //46*4/18.432 = 10 uS, Timer Clock = Fsys/4 243 #define TIMER_DIV4_VALUE_1ms 65536-4608 //4608*4/18.432 = 1 mS, Timer Clock = Fsys/4 244 #endif 245 #ifdef FOSC_200000 // if Fsys = 20 MHz 246 #define TIMER_DIV12_VALUE_10us 65536-17 //17*12/20000000 = 10 uS, Timer Clock = Fsys/12 247 #define TIMER_DIV12_VALUE_1ms 65536-1667 //1667*12/20000000 = 1 mS, Timer Clock = Fsys/12 248 #define TIMER_DIV4_VALUE_10us 65536-50 //50*4/20000000 = 10 uS, Timer Clock = Fsys/4 249 #define TIMER_DIV4_VALUE_1ms 65536-5000 //5000*4/20000000 = 1 mS, Timer Clock = Fsys/4 250 #endif 251 #ifdef FOSC_221184 // if Fsys = 22.1184 MHz 252 #define TIMER_DIV12_VALUE_10us 65536-18 //18*12/22118400 = 10 uS, // Timer divider = 12 253 #define TIMER_DIV12_VALUE_1ms 65536-1843 //1843*12/22118400 = 1 mS, // Timer divider = 12 254 #define TIMER_DIV12_VALUE_10ms 65536-18432 //18432*12/22118400 = 10 ms // Timer divider = 12 255 #define TIMER_DIV4_VALUE_10us 65536-56 //9*4/22118400 = 10 uS, // Timer divider = 4 256 #define TIMER_DIV4_VALUE_1ms 65536-5530 //923*4/22118400 = 1 mS, // Timer divider = 4 257 #define TIMER_DIV4_VALUE_100us 65536-553 //553*4/22118400 = 100 us // Timer divider = 4 258 #define TIMER_DIV4_VALUE_200us 65536-1106 //1106*4/22118400 = 200 us // Timer divider = 4 259 #define TIMER_DIV4_VALUE_500us 65536-2765 //2765*4/22118400 = 500 us // Timer divider = 4 260 #define TIMER_DIV16_VALUE_10ms 65536-13824 //1500*16/22118400 = 10 ms // Timer divider = 16 261 #define TIMER_DIV64_VALUE_30ms 65536-10368 //10368*64/22118400 = 30 ms // Timer divider = 64 262 #define TIMER_DIV128_VALUE_100ms 65536-17280 //17280*128/22118400 = 100 ms // Timer divider = 128 263 #define TIMER_DIV128_VALUE_200ms 65536-34560 //34560*128/22118400 = 200 ms // Timer divider = 128 264 #define TIMER_DIV256_VALUE_500ms 65536-43200 //43200*256/22118400 = 500 ms // Timer divider = 256 265 #define TIMER_DIV512_VALUE_1s 65536-43200 //43200*512/22118400 = 1 s // Timer divider = 512 266 #endif 267 #ifdef FOSC_240000 // if Fsys = 20 MHz 268 #define TIMER_DIV12_VALUE_10us 65536-20 //20*12/24000000 = 10 uS, // Timer divider = 12 269 #define TIMER_DIV12_VALUE_1ms 65536-2000 //2000*12/24000000 = 1 mS, // Timer divider = 12 270 #define TIMER_DIV12_VALUE_10ms 65536-20000 //2000*12/24000000 = 10 mS // Timer divider = 12 271 #define TIMER_DIV4_VALUE_10us 65536-60 //60*4/24000000 = 10 uS, // Timer divider = 4 272 #define TIMER_DIV4_VALUE_100us 65536-600 //600*4/24000000 = 100 us // Timer divider = 4 273 #define TIMER_DIV4_VALUE_200us 65536-1200 //1200*4/24000000 = 200 us // Timer divider = 4 274 #define TIMER_DIV4_VALUE_500us 65536-3000 //3000*4/24000000 = 500 us // Timer divider = 4 275 #define TIMER_DIV4_VALUE_1ms 65536-6000 //6000*4/24000000 = 1 mS, // Timer divider = 4 276 #define TIMER_DIV16_VALUE_10ms 65536-15000 //15000*16/24000000 = 10 ms // Timer divider = 16 277 #define TIMER_DIV64_VALUE_30ms 65536-11250 //11250*64/24000000 = 30 ms // Timer divider = 64 278 #define TIMER_DIV128_VALUE_100ms 65536-18750 //37500*128/24000000 = 200 ms // Timer divider = 128 279 #define TIMER_DIV128_VALUE_200ms 65536-37500 //37500*128/24000000 = 200 ms // Timer divider = 128 280 #define TIMER_DIV256_VALUE_500ms 65536-46875 //46875*256/24000000 = 500 ms // Timer divider = 256 281 #define TIMER_DIV512_VALUE_1s 65536-46875 //46875*512/24000000 = 1 s. // Timer Divider = 512 282 #endif 283 //-------------------- Timer0 function define -------------------- 284 #define TIMER1_MODE0_ENABLE TMOD&=0x0F 285 #define TIMER1_MODE1_ENABLE TMOD&=0x0F;TMOD|=0x10 286 #define TIMER1_MODE2_ENABLE TMOD&=0x0F;TMOD|=0x20 287 #define TIMER1_MODE3_ENABLE TMOD&=0x0F;TMOD|=0x30 288 //-------------------- Timer1 function define -------------------- 289 #define TIMER0_MODE0_ENABLE TMOD&=0xF0 290 #define TIMER0_MODE1_ENABLE TMOD&=0xF0;TMOD|=0x01 291 #define TIMER0_MODE2_ENABLE TMOD&=0xF0;TMOD|=0x02 292 #define TIMER0_MODE3_ENABLE TMOD&=0xF0;TMOD|=0x03 293 //-------------------- Timer2 function define -------------------- 294 #define TIMER2_DIV_4 T2MOD|=0x10;T2MOD&=0x9F 295 #define TIMER2_DIV_16 T2MOD|=0x20;T2MOD&=0xAF 296 #define TIMER2_DIV_32 T2MOD|=0x30;T2MOD&=0xBF 297 #define TIMER2_DIV_64 T2MOD|=0x40;T2MOD&=0xCF 298 #define TIMER2_DIV_128 T2MOD|=0x50;T2MOD&=0xDF 299 #define TIMER2_DIV_256 T2MOD|=0x60;T2MOD&=0xEF 300 #define TIMER2_DIV_512 T2MOD|=0x70 301 #define TIMER2_Auto_Reload_Delay_Mode T2CON&=~SET_BIT0;T2MOD|=SET_BIT7;T2MOD|=SET_BIT3 302 #define TIMER2_Compare_Capture_Mode T2CON|=SET_BIT0;T2MOD&=~SET_BIT7;T2MOD|=SET_BIT2 303 304 #define TIMER2_CAP0_Capture_Mode T2CON&=~SET_BIT0;T2MOD=0x89 305 #define TIMER2_CAP1_Capture_Mode T2CON&=~SET_BIT0;T2MOD=0x8A 306 #define TIMER2_CAP2_Capture_Mode T2CON&=~SET_BIT0;T2MOD=0x8B 307 308 //-------------------- Timer2 Capture define -------------------- 309 //--- Falling Edge ----- 310 #define IC0_P12_CAP0_FallingEdge_Capture CAPCON1&=0xFC;CAPCON3&=0xF0;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4 311 #define IC1_P11_CAP0_FallingEdge_Capture CAPCON1&=0xFC;CAPCON3&=0xF0;CAPCON3|=0x01;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4 312 #define IC2_P10_CAP0_FallingEdge_Capture CAPCON1&=0xFC;CAPCON3&=0xF0;CAPCON3|=0x02;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4 313 #define IC3_P00_CAP0_FallingEdge_Capture CAPCON1&=0xFC;CAPCON3&=0xF0;CAPCON3|=0x03;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4 314 #define IC3_P04_CAP0_FallingEdge_Capture CAPCON1&=0xFC;CAPCON3&=0xF0;CAPCON3|=0x04;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4 315 #define IC4_P01_CAP0_FallingEdge_Capture CAPCON1&=0xFC;CAPCON3&=0xF0;CAPCON3|=0x05;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4 316 #define IC5_P03_CAP0_FallingEdge_Capture CAPCON1&=0xFC;CAPCON3&=0xF0;CAPCON3|=0x06;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4 317 #define IC6_P05_CAP0_FallingEdge_Capture CAPCON1&=0xFC;CAPCON3&=0xF0;CAPCON3|=0x07;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4 318 #define IC7_P15_CAP0_FallingEdge_Capture CAPCON1&=0xFC;CAPCON3&=0xF0;CAPCON3|=0x08;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4 319 320 #define IC0_P12_CAP1_FallingEdge_Capture CAPCON1&=0xF3;CAPCON3&=0x0F;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5 321 #define IC1_P11_CAP1_FallingEdge_Capture CAPCON1&=0xF3;CAPCON3&=0x0F;CAPCON3|=0x10;CAPCON0|=SET_BIT5;CAPCON0|=SET_BIT5 322 #define IC2_P10_CAP1_FallingEdge_Capture CAPCON1&=0xF3;CAPCON3&=0x0F;CAPCON3|=0x20;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5 323 #define IC3_P00_CAP1_FallingEdge_Capture CAPCON1&=0xF3;CAPCON3&=0x0F;CAPCON3|=0x30;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5 324 #define IC3_P04_CAP1_FallingEdge_Capture CAPCON1&=0xF3;CAPCON3&=0x0F;CAPCON3|=0x40;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5 325 #define IC4_P01_CAP1_FallingEdge_Capture CAPCON1&=0xF3;CAPCON3&=0x0F;CAPCON3|=0x50;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5 326 #define IC5_P03_CAP1_FallingEdge_Capture CAPCON1&=0xF3;CAPCON3&=0x0F;CAPCON3|=0x60;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5 327 #define IC6_P05_CAP1_FallingEdge_Capture CAPCON1&=0xF3;CAPCON3&=0x0F;CAPCON3|=0x70;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5 328 #define IC7_P15_CAP1_FallingEdge_Capture CAPCON1&=0xF3;CAPCON3&=0x0F;CAPCON3|=0x80;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5 329 330 #define IC0_P12_CAP2_FallingEdge_Capture CAPCON1&=0x0F;CAPCON4&=0xF0;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6 331 #define IC1_P11_CAP2_FallingEdge_Capture CAPCON1&=0x0F;CAPCON4&=0xF0;CAPCON4|=0x10;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6 332 #define IC2_P10_CAP2_FallingEdge_Capture CAPCON1&=0x0F;CAPCON4&=0xF0;CAPCON4|=0x20;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6 333 #define IC3_P00_CAP2_FallingEdge_Capture CAPCON1&=0x0F;CAPCON4&=0xF0;CAPCON4|=0x30;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6 334 #define IC3_P04_CAP2_FallingEdge_Capture CAPCON1&=0x0F;CAPCON4&=0xF0;CAPCON4|=0x40;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6 335 #define IC4_P01_CAP2_FallingEdge_Capture CAPCON1&=0x0F;CAPCON4&=0xF0;CAPCON4|=0x50;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6 336 #define IC5_P03_CAP2_FallingEdge_Capture CAPCON1&=0x0F;CAPCON4&=0xF0;CAPCON4|=0x60;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6 337 #define IC6_P05_CAP2_FallingEdge_Capture CAPCON1&=0x0F;CAPCON4&=0xF0;CAPCON4|=0x70;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6 338 #define IC7_P15_CAP2_FallingEdge_Capture CAPCON1&=0x0F;CAPCON4&=0xF0;CAPCON4|=0x80;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6 339 340 //----- Rising edge ---- 341 #define IC0_P12_CAP0_RisingEdge_Capture CAPCON1&=0xFC;CAPCON1|=0x01;CAPCON3&=0xF0CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4; 342 #define IC1_P11_CAP0_RisingEdge_Capture CAPCON1&=0xFC;CAPCON1|=0x01;CAPCON3&=0xF0;CAPCON3|=0x01;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4; 343 #define IC2_P10_CAP0_RisingEdge_Capture CAPCON1&=0xFC;CAPCON1|=0x01;CAPCON3&=0xF0;CAPCON3|=0x02;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4; 344 #define IC3_P00_CAP0_RisingEdge_Capture CAPCON1&=0xFC;CAPCON1|=0x01;CAPCON3&=0xF0;CAPCON3|=0x03;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4; 345 #define IC3_P04_CAP0_RisingEdge_Capture CAPCON1&=0xFC;CAPCON1|=0x01;CAPCON3&=0xF0;CAPCON3|=0x04;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4; 346 #define IC4_P01_CAP0_RisingEdge_Capture CAPCON1&=0xFC;CAPCON1|=0x01;CAPCON3&=0xF0;CAPCON3|=0x05;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4; 347 #define IC5_P03_CAP0_RisingEdge_Capture CAPCON1&=0xFC;CAPCON1|=0x01;CAPCON3&=0xF0;CAPCON3|=0x06;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4; 348 #define IC6_P05_CAP0_RisingEdge_Capture CAPCON1&=0xFC;CAPCON1|=0x01;CAPCON3&=0xF0;CAPCON3|=0x07;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4; 349 #define IC7_P15_CAP0_RisingEdge_Capture CAPCON1&=0xFC;CAPCON1|=0x01;CAPCON3&=0xF0;CAPCON3|=0x08;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4; 350 351 #define IC0_P12_CAP1_RisingEdge_Capture CAPCON1&=0xF3;CAPCON1|=0x04;CAPCON3&=0x0FCAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5; 352 #define IC1_P11_CAP1_RisingEdge_Capture CAPCON1&=0xF3;CAPCON1|=0x04;CAPCON3&=0x0F;CAPCON3|=0x10;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5; 353 #define IC2_P10_CAP1_RisingEdge_Capture CAPCON1&=0xF3;CAPCON1|=0x04;CAPCON3&=0x0F;CAPCON3|=0x20;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5; 354 #define IC3_P00_CAP1_RisingEdge_Capture CAPCON1&=0xF3;CAPCON1|=0x04;CAPCON3&=0x0F;CAPCON3|=0x30;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5; 355 #define IC3_P04_CAP1_RisingEdge_Capture CAPCON1&=0xF3;CAPCON1|=0x04;CAPCON3&=0x0F;CAPCON3|=0x40;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5; 356 #define IC4_P01_CAP1_RisingEdge_Capture CAPCON1&=0xF3;CAPCON1|=0x04;CAPCON3&=0x0F;CAPCON3|=0x50;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5; 357 #define IC5_P03_CAP1_RisingEdge_Capture CAPCON1&=0xF3;CAPCON1|=0x04;CAPCON3&=0x0F;CAPCON3|=0x60;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5; 358 #define IC6_P05_CAP1_RisingEdge_Capture CAPCON1&=0xF3;CAPCON1|=0x04;CAPCON3&=0x0F;CAPCON3|=0x70;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5; 359 #define IC7_P15_CAP1_RisingEdge_Capture CAPCON1&=0xF3;CAPCON1|=0x04;CAPCON3&=0x0F;CAPCON3|=0x80;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5; 360 361 #define IC0_P12_CAP3_RisingEdge_Capture CAPCON1&=0x0F;CAPCON1|=0x10;CAPCON4&=0xF0;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6; 362 #define IC1_P11_CAP3_RisingEdge_Capture CAPCON1&=0x0F;CAPCON1|=0x10;CAPCON4&=0xF0;CAPCON4|=0x01;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6; 363 #define IC2_P10_CAP3_RisingEdge_Capture CAPCON1&=0x0F;CAPCON1|=0x10;CAPCON4&=0xF0;CAPCON4|=0x02;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6; 364 #define IC3_P00_CAP3_RisingEdge_Capture CAPCON1&=0x0F;CAPCON1|=0x10;CAPCON4&=0xF0;CAPCON4|=0x03;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6; 365 #define IC3_P04_CAP3_RisingEdge_Capture CAPCON1&=0x0F;CAPCON1|=0x10;CAPCON4&=0xF0;CAPCON4|=0x04;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6; 366 #define IC4_P01_CAP3_RisingEdge_Capture CAPCON1&=0x0F;CAPCON1|=0x10;CAPCON4&=0xF0;CAPCON4|=0x05;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6; 367 #define IC5_P03_CAP3_RisingEdge_Capture CAPCON1&=0x0F;CAPCON1|=0x10;CAPCON4&=0xF0;CAPCON4|=0x06;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6; 368 #define IC6_P05_CAP3_RisingEdge_Capture CAPCON1&=0x0F;CAPCON1|=0x10;CAPCON4&=0xF0;CAPCON4|=0x07;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6; 369 #define IC7_P15_CAP3_RisingEdge_Capture CAPCON1&=0x0F;CAPCON1|=0x10;CAPCON4&=0xF0;CAPCON4|=0x08;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6; 370 371 //-----BOTH edge ---- 372 #define IC0_P12_CAP0_BothEdge_Capture CAPCON1&=0xFC;CAPCON1|=0x02;CAPCON3&=0xF0;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4 373 #define IC1_P11_CAP0_BothEdge_Capture CAPCON1&=0xFC;CAPCON1|=0x02;CAPCON3&=0xF0;CAPCON3|=0x01;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4 374 #define IC2_P10_CAP0_BothEdge_Capture CAPCON1&=0xFC;CAPCON1|=0x02;CAPCON3&=0xF0;CAPCON3|=0x02;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4 375 #define IC3_P00_CAP0_BothEdge_Capture CAPCON1&=0xFC;CAPCON1|=0x02;CAPCON3&=0xF0;CAPCON3|=0x03;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4 376 #define IC3_P04_CAP0_BothEdge_Capture CAPCON1&=0xFC;CAPCON1|=0x02;CAPCON3&=0xF0;CAPCON3|=0x04;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4 377 #define IC4_P01_CAP0_BothEdge_Capture CAPCON1&=0xFC;CAPCON1|=0x02;CAPCON3&=0xF0;CAPCON3|=0x05;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4 378 #define IC5_P03_CAP0_BothEdge_Capture CAPCON1&=0xFC;CAPCON1|=0x02;CAPCON3&=0xF0;CAPCON3|=0x06;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4 379 #define IC6_P05_CAP0_BothEdge_Capture CAPCON1&=0xFC;CAPCON1|=0x02;CAPCON3&=0xF0;CAPCON3|=0x07;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4 380 #define IC7_P15_CAP0_BothEdge_Capture CAPCON1&=0xFC;CAPCON1|=0x02;CAPCON3&=0xF0;CAPCON3|=0x08;CAPCON0|=SET_BIT4;CAPCON2|=SET_BIT4 381 382 #define IC0_P12_CAP1_BothEdge_Capture CAPCON1&=0xF3;CAPCON1|=0x08;CAPCON3&=0x0F;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5 383 #define IC1_P11_CAP1_BothEdge_Capture CAPCON1&=0xF3;CAPCON1|=0x08;CAPCON3&=0x0F;CAPCON3|=0x10;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5; 384 #define IC2_P10_CAP1_BothEdge_Capture CAPCON1&=0xF3;CAPCON1|=0x08;CAPCON3&=0x0F;CAPCON3|=0x20;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5; 385 #define IC3_P00_CAP1_BothEdge_Capture CAPCON1&=0xF3;CAPCON1|=0x08;CAPCON3&=0x0F;CAPCON3|=0x30;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5; 386 #define IC3_P04_CAP1_BothEdge_Capture CAPCON1&=0xF3;CAPCON1|=0x08;CAPCON3&=0x0F;CAPCON3|=0x40;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5; 387 #define IC4_P01_CAP1_BothEdge_Capture CAPCON1&=0xF3;CAPCON1|=0x08;CAPCON3&=0x0F;CAPCON3|=0x50;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5; 388 #define IC5_P03_CAP1_BothEdge_Capture CAPCON1&=0xF3;CAPCON1|=0x08;CAPCON3&=0x0F;CAPCON3|=0x60;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5; 389 #define IC6_P05_CAP1_BothEdge_Capture CAPCON1&=0xF3;CAPCON1|=0x08;CAPCON3&=0x0F;CAPCON3|=0x70;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5; 390 #define IC7_P15_CAP1_BothEdge_Capture CAPCON1&=0xF3;CAPCON1|=0x08;CAPCON3&=0x0F;CAPCON3|=0x80;CAPCON0|=SET_BIT5;CAPCON2|=SET_BIT5; 391 392 #define IC0_P12_CAP3_BothEdge_Capture CAPCON1&=0x0F;CAPCON1|=0x20;CAPCON4&=0xF0;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6; 393 #define IC1_P11_CAP3_BothEdge_Capture CAPCON1&=0x0F;CAPCON1|=0x20;CAPCON4&=0xF0;CAPCON4|=0x01;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6; 394 #define IC2_P10_CAP3_BothEdge_Capture CAPCON1&=0x0F;CAPCON1|=0x20;CAPCON4&=0xF0;CAPCON4|=0x02;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6; 395 #define IC3_P00_CAP3_BothEdge_Capture CAPCON1&=0x0F;CAPCON1|=0x20;CAPCON4&=0xF0;CAPCON4|=0x03;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6; 396 #define IC3_P04_CAP3_BothEdge_Capture CAPCON1&=0x0F;CAPCON1|=0x20;CAPCON4&=0xF0;CAPCON4|=0x04;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6; 397 #define IC4_P01_CAP3_BothEdge_Capture CAPCON1&=0x0F;CAPCON1|=0x20;CAPCON4&=0xF0;CAPCON4|=0x05;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6; 398 #define IC5_P03_CAP3_BothEdge_Capture CAPCON1&=0x0F;CAPCON1|=0x20;CAPCON4&=0xF0;CAPCON4|=0x06;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6; 399 #define IC6_P05_CAP3_BothEdge_Capture CAPCON1&=0x0F;CAPCON1|=0x20;CAPCON4&=0xF0;CAPCON4|=0x07;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6; 400 #define IC7_P15_CAP3_BothEdge_Capture CAPCON1&=0x0F;CAPCON1|=0x20;CAPCON4&=0xF0;CAPCON4|=0x08;CAPCON0|=SET_BIT6;CAPCON2|=SET_BIT6; 401 402 #define TIMER2_IC2_DISABLE CAPCON0&=~SET_BIT6 403 #define TIMER2_IC1_DISABLE CAPCON0&=~SET_BIT5 404 #define TIMER2_IC0_DISABLE CAPCON0&=~SET_BIT4 405 406 /***************************************************************************************** 407 * For PWM setting 408 *****************************************************************************************/ 409 //--------- PMW clock source select define --------------------- 410 #define PWM_CLOCK_FSYS CKCON&=0xBF 411 #define PWM_CLOCK_TIMER1 CKCON|=0x40 412 //--------- PWM clock devide define ---------------------------- 413 #define PWM_CLOCK_DIV_2 PWMCON1|=0x01;PWMCON1&=0xF9 414 #define PWM_CLOCK_DIV_4 PWMCON1|=0x02;PWMCON1&=0xFA 415 #define PWM_CLOCK_DIV_8 PWMCON1|=0x03;PWMCON1&=0xFB 416 #define PWM_CLOCK_DIV_16 PWMCON1|=0x04;PWMCON1&=0xFC 417 #define PWM_CLOCK_DIV_32 PWMCON1|=0x05;PWMCON1&=0xFD 418 #define PWM_CLOCK_DIV_64 PWMCON1|=0x06;PWMCON1&=0xFE 419 #define PWM_CLOCK_DIV_128 PWMCON1|=0x07 420 //--------- PWM I/O select define ------------------------------ 421 #define PWM5_P15_OUTPUT_ENABLE BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;SFRS|=0x01;PIOCON1|=0x20;TA=0xAA;TA=0x55;SFRS&=0xFE;EA=BIT_TMP //P1.5 as PWM5 output enable 422 #define PWM5_P03_OUTPUT_ENABLE PIOCON0|=0x20 //P0.3 as PWM5 423 #define PWM4_P01_OUTPUT_ENABLE PIOCON0|=0x10 //P0.1 as PWM4 output enable 424 #define PWM3_P04_OUTPUT_ENABLE BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;SFRS|=0x01;PIOCON1|=0x08;TA=0xAA;TA=0x55;SFRS&=0xFE;EA=BIT_TMP //P0.4 as PWM3 output enable 425 #define PWM3_P00_OUTPUT_ENABLE PIOCON0|=0x08 //P0.0 as PWM3 426 #define PWM2_P05_OUTPUT_ENABLE BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;SFRS|=0x01;PIOCON1|=0x04;TA=0xAA;TA=0x55;SFRS&=0xFE;EA=BIT_TMP //P1.0 as PWM2 output enable 427 #define PWM2_P10_OUTPUT_ENABLE PIOCON0|=0x04 //P1.0 as PWM2 428 #define PWM1_P14_OUTPUT_ENABLE BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;SFRS|=0x01;PIOCON1|=0x02;TA=0xAA;TA=0x55;SFRS&=0xFE;EA=BIT_TMP //P1.4 as PWM1 output enable 429 #define PWM1_P11_OUTPUT_ENABLE PIOCON0|=0x02 //P1.1 as PWM1 430 #define PWM0_P12_OUTPUT_ENABLE PIOCON0|=0x01 //P1.2 as PWM0 output enable 431 #define ALL_PWM_OUTPUT_ENABLE PIOCON0=0xFF;PIOCON1=0xFF 432 #define PWM5_P15_OUTPUT_DISABLE BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;SFRS|=0x01;PIOCON1&=0xDF;TA=0xAA;TA=0x55;SFRS&=0xFE;EA=BIT_TMP //P1.5 as PWM5 output disable 433 #define PWM5_P03_OUTPUT_DISABLE PIOCON0&=0xDF //P0.3 as PWM5 434 #define PWM4_P01_OUTPUT_DISABLE PIOCON0&=0xEF //P0.1 as PWM4 output disable 435 #define PWM3_P04_OUTPUT_DISABLE BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;SFRS|=0x01;PIOCON1&=0xF7;TA=0xAA;TA=0x55;SFRS&=0xFE;EA=BIT_TMP //P0.4 as PWM3 output disable 436 #define PWM3_P00_OUTPUT_DISABLE PIOCON0&=0xF7 //P0.0 as PWM3 437 #define PWM2_P05_OUTPUT_DISABLE BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;SFRS|=0x01;PIOCON1&=0xFB;TA=0xAA;TA=0x55;SFRS&=0xFE;EA=BIT_TMP //P1.0 as PWM2 output disable 438 #define PWM2_P10_OUTPUT_DISABLE PIOCON0&=0xFB //P1.0 as PWM2 439 #define PWM1_P14_OUTPUT_DISABLE BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;SFRS|=0x01;PIOCON1&=0xFD;TA=0xAA;TA=0x55;SFRS&=0xFE;EA=BIT_TMP //P1.4 as PWM1 output disable 440 #define PWM1_P11_OUTPUT_DISABLE PIOCON0&=0xFD //P1.1 as PWM1 441 #define PWM0_P12_OUTPUT_DISABLE PIOCON0&=0xFE //P1.2 as PWM0 output disable 442 #define ALL_PWM_OUTPUT_DISABLE PIOCON0=0x00;PIOCON1=0x00 443 //--------- PWM I/O Polarity Control --------------------------- 444 #define PWM5_OUTPUT_INVERSE PNP|=0x20 445 #define PWM4_OUTPUT_INVERSE PNP|=0x10 446 #define PWM3_OUTPUT_INVERSE PNP|=0x08 447 #define PWM2_OUTPUT_INVERSE PNP|=0x04 448 #define PWM1_OUTPUT_INVERSE PNP|=0x02 449 #define PWM0_OUTPUT_INVERSE PNP|=0x01 450 #define PWM_OUTPUT_ALL_INVERSE PNP=0xFF 451 #define PWM5_OUTPUT_NORMAL PNP&=0xDF 452 #define PWM4_OUTPUT_NORMAL PNP&=0xEF 453 #define PWM3_OUTPUT_NORMAL PNP&=0xF7 454 #define PWM2_OUTPUT_NORMAL PNP&=0xFB 455 #define PWM1_OUTPUT_NORMAL PNP&=0xFD 456 #define PWM0_OUTPUT_NORMAL PNP&=0xFE 457 #define PWM_OUTPUT_ALL_NORMAL PNP=0x00 458 //--------- PWM type define ------------------------------------ 459 #define PWM_EDGE_TYPE PWMCON1&=~SET_BIT4 460 #define PWM_CENTER_TYPE PWMCON1|=SET_BIT4 461 //--------- PWM mode define ------------------------------------ 462 #define PWM_IMDEPENDENT_MODE PWMCON1&=0x3F 463 #define PWM_COMPLEMENTARY_MODE PWMCON1|=0x40;PWMCON1&=0x7F 464 #define PWM_SYNCHRONIZED_MODE PWMCON1|=0x80;PWMCON1&=0xBF 465 #define PWM_GP_MODE_ENABLE PWMCON1|=0x20 466 #define PWM_GP_MODE_DISABLE PWMCON1&=0xDF 467 //--------- PMW interrupt setting ------------------------------ 468 #define PWM_FALLING_INT BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PWMINTC&=0xCF;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 469 #define PWM_RISING_INT BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PWMINTC|=0x10;PWMCON0&=0xDF;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 470 #define PWM_CENTRAL_POINT_INT BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PWMINTC|=0x20;PWMCON0&=0xEF;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 471 #define PWM_PERIOD_END_INT BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PWMINTC|=0x30;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 472 //--------- PWM interrupt pin select --------------------------- 473 #define PWM_INT_PWM0 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PWMINTC&=0xF8;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 474 #define PWM_INT_PWM1 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PWMINTC&=0xF8;PWMINTC|=0x01;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 475 #define PWM_INT_PWM2 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PWMINTC&=0xF8;PWMINTC|=0x02;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 476 #define PWM_INT_PWM3 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PWMINTC&=0xF8;PWMINTC|=0x03;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 477 #define PWM_INT_PWM4 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PWMINTC&=0xF8;PWMINTC|=0x04;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 478 #define PWM_INT_PWM5 BIT_TMP=EA;TA=0xAA;TA=0x55;SFRS=0x01;PWMINTC&=0xF8;PWMINTC|=0x05;TA=0xAA;TA=0x55;SFRS=0x00;EA=BIT_TMP 479 //--------- PWM Dead time setting ------------------------------ 480 #define PWM45_DEADTIME_ENABLE BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;PDTEN|=0x04;EA=BIT_TMP 481 #define PWM34_DEADTIME_ENABLE BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;PDTEN|=0x02;EA=BIT_TMP 482 #define PWM01_DEADTIME_ENABLE BIT_TMP=EA;EA=0;TA=0xAA;TA=0x55;PDTEN|=0x01;EA=BIT_TMP 483 484 /***************************************************************************************** 485 * For ADC INIT setting 486 *****************************************************************************************/ 487 #define Enable_ADC_AIN0 ADCCON0&=0xF0;P17_Input_Mode;AINDIDS=0x00;AINDIDS|=SET_BIT0;ADCCON1|=SET_BIT0 //P17 488 #define Enable_ADC_AIN1 ADCCON0&=0xF0;ADCCON0|=0x01;P30_Input_Mode;AINDIDS=0x00;AINDIDS|=SET_BIT1;ADCCON1|=SET_BIT0 //P30 489 #define Enable_ADC_AIN2 ADCCON0&=0xF0;ADCCON0|=0x02;P07_Input_Mode;AINDIDS=0x00;AINDIDS|=SET_BIT2;ADCCON1|=SET_BIT0 //P07 490 #define Enable_ADC_AIN3 ADCCON0&=0xF0;ADCCON0|=0x03;P06_Input_Mode;AINDIDS=0x00;AINDIDS|=SET_BIT3;ADCCON1|=SET_BIT0 //P06 491 #define Enable_ADC_AIN4 ADCCON0&=0xF0;ADCCON0|=0x04;P05_Input_Mode;AINDIDS=0x00;AINDIDS|=SET_BIT4;ADCCON1|=SET_BIT0 //P05 492 #define Enable_ADC_AIN5 ADCCON0&=0xF0;ADCCON0|=0x05;P04_Input_Mode;AINDIDS=0x00;AINDIDS|=SET_BIT5;ADCCON1|=SET_BIT0 //P04 493 #define Enable_ADC_AIN6 ADCCON0&=0xF0;ADCCON0|=0x06;P03_Input_Mode;AINDIDS=0x00;AINDIDS|=SET_BIT6;ADCCON1|=SET_BIT0 //P03 494 #define Enable_ADC_AIN7 ADCCON0&=0xF0;ADCCON0|=0x07;P11_Input_Mode;AINDIDS=0x00;AINDIDS|=SET_BIT7;ADCCON1|=SET_BIT0 //P11 495 #define Enable_ADC_BandGap ADCCON0|=SET_BIT3;ADCCON0&=0xF8;ADCCON1|=SET_BIT0 //Band-gap 1.22V 496 497 #define PWM0_FALLINGEDGE_TRIG_ADC ADCCON0&=~SET_BIT5;ADCCON0&=~SET_BIT4;ADCCON1&=~SET_BIT3;ADCCON1&=~SET_BIT2;ADCCON1|=SET_BIT1 498 #define PWM2_FALLINGEDGE_TRIG_ADC ADCCON0&=~SET_BIT5;ADCCON0|=SET_BIT4;ADCCON1&=~SET_BIT3;ADCCON1&=~SET_BIT2;ADCCON1|=SET_BIT1 499 #define PWM4_FALLINGEDGE_TRIG_ADC ADCCON0|=SET_BIT5;ADCCON0&=~SET_BIT4;ADCCON1&=~SET_BIT3;ADCCON1&=~SET_BIT2;ADCCON1|=SET_BIT1 500 #define PWM0_RISINGEDGE_TRIG_ADC ADCCON0&=~SET_BIT5;ADCCON0&=~SET_BIT4;ADCCON1&=~SET_BIT3;ADCCON1|=SET_BIT2;ADCCON1|=SET_BIT1 501 #define PWM2_RISINGEDGE_TRIG_ADC ADCCON0&=~SET_BIT5;ADCCON0|=SET_BIT4;ADCCON1&=~SET_BIT3;ADCCON1|=SET_BIT2;ADCCON1|=SET_BIT1 502 #define PWM4_RISINGEDGE_TRIG_ADC ADCCON0|=SET_BIT5;ADCCON0&=~SET_BIT4;ADCCON1&=~SET_BIT3;ADCCON1|=SET_BIT2;ADCCON1|=SET_BIT1 503 #define PWM0_CENTRAL_TRIG_ADC ADCCON0&=~SET_BIT5;ADCCON0&=~SET_BIT4;ADCCON1|=SET_BIT3;ADCCON1&=~SET_BIT2;ADCCON1|=SET_BIT1 504 #define PWM2_CENTRAL_TRIG_ADC ADCCON0&=~SET_BIT5;ADCCON0|=SET_BIT4;ADCCON1|=SET_BIT3;ADCCON1&=~SET_BIT2;ADCCON1|=SET_BIT1 505 #define PWM4_CENTRAL_TRIG_ADC ADCCON0|=SET_BIT5;ADCCON0&=~SET_BIT4;ADCCON1|=SET_BIT3;ADCCON1&=~SET_BIT2;ADCCON1|=SET_BIT1 506 #define PWM0_END_TRIG_ADC ADCCON0&=~SET_BIT5;ADCCON0&=~SET_BIT4;ADCCON1|=SET_BIT3;ADCCON1|=SET_BIT2;ADCCON1|=SET_BIT1 507 #define PWM2_END_TRIG_ADC ADCCON0&=~SET_BIT5;ADCCON0|=SET_BIT4;ADCCON1|=SET_BIT3;ADCCON1|=SET_BIT2;ADCCON1|=SET_BIT1 508 #define PWM4_END_TRIG_ADC ADCCON0|=SET_BIT5;ADCCON0&=~SET_BIT4;ADCCON1|=SET_BIT3;ADCCON1|=SET_BIT2;ADCCON1|=SET_BIT1 509 510 #define P04_FALLINGEDGE_TRIG_ADC ADCCON0|=0x30;ADCCON1&=0xF3;ADCCON1|=SET_BIT1;ADCCON1&=~SET_BIT6 511 #define P13_FALLINGEDGE_TRIG_ADC ADCCON0|=0x30;ADCCON1&=0xF3;ADCCON1|=SET_BIT1;ADCCON1|=SET_BIT6 512 #define P04_RISINGEDGE_TRIG_ADC ADCCON0|=0x30;ADCCON1&=~SET_BIT3;ADCCON1|=SET_BIT2;ADCCON1|=SET_BIT1;ADCCON1&=~SET_BIT6 513 #define P13_RISINGEDGE_TRIG_ADC ADCCON0|=0x30;ADCCON1&=~SET_BIT3;ADCCON1|=SET_BIT2;ADCCON1|=SET_BIT1;ADCCON1|=SET_BIT6 514 515 /***************************************************************************************** 516 * For SPI INIT setting 517 *****************************************************************************************/ 518 #define SPICLK_DIV2 clr_SPR0;clr_SPR1 519 #define SPICLK_DIV4 set_SPR0;clr_SPR1 520 #define SPICLK_DIV8 clr_SPR0;set_SPR1 521 #define SPICLK_DIV16 set_SPR0;set_SPR1 522 #define Enable_SPI_Interrupt set_ESPI;set_EA 523 #define SS P15
以上是关于单片机成长之路(51基础篇) - 023 N76e003 系统时钟切换到外部时钟的主要内容,如果未能解决你的问题,请参考以下文章
单片机成长之路(51基础篇) - 018 keil51的STARTUP.A51
单片机成长之路(51基础篇) - 015 关于sdcc的多文件编译范例二
单片机成长之路(51基础篇) - 008 C51 的标示符和关键字