unsigned char sbstatus @ 0x23;8 I( K$ n$ t! T% Z; n5 f. G2 ]2 R
bit volatile ADCY@((unsigned)&sbstatus*8+0; 0 G/ }" F- m6 W* m6 ?! |9 r( x4 ^7 E$ d# z* Z
unsigned short YEAR; ) S h J) ^0 H |: NADCY=0;0 ^' r/ E X$ a0 U2 D& i
7 `# D" y! Z/ [' n. ufor(;;) $ o. x% f' Z3 Z2 \. k7 \0 z{1 r! o* }9 `: H ^( h# I" H
& E a$ m* C3 c) t( u4 T0 a0 O SEC=SEC+1;' T3 ~* K% ~4 {5 R3 ~+ ~! w1 A
if(SEC>=2020) % t P; e6 O. A3 h U0 U7 u% i ADCY=1; , w: Y: l% c5 H4 k+ }* ]" r0 z0 B1 y7 C5 f
} # [( g: f) p$ l. [; ^ 2 ]) `5 I4 S6 `0 k' m7 i) x; d( ?4 E
请教一下大神们:unsigned short YEAR;改为unsigned char YEAR;就可以编译通过,是不是比较的数据只能用一个8位数据?用16位的数据是不可以直接比较的。我用PICC9.86编译 . T: x9 l/ y+ F: e
这就不是单片机的问题,而是编译器的问题,只能查编译器手册。' u8 e) r- g8 x6 d* Q$ \1 N' G9 A' v
另外,PIC16系列单片机在设计之初就没想到过用什么高级语言,而是用最少的晶体管数量实现全部功能。所以这种单片机c语言编译器生成的机器码惨不忍睹,比51这种过时结构还要烂。反正规模都不大,还不如直接上汇编。