{ int xdata c; c=DBYTE[0x20]*DBYTE[0x35]; }
10.5 #include
#include
unsigned char * pData=&DBYTE[0x30]; TLC() {
unsigned char k,i; unsigned char d=0; for(k=10;k>0;k--) { P1_3=0; for(i=8;i>0;i--) { d<<=1; d|=P1_2; P1_0=1; P1_0=0; } *pData=d; pData++; } }
main() {
P1=0x04; P1_0=0; P1_3=1; TLC(); while(1);
} 10.6 略 10.7 略
10.8 #include
main() {
char i;
for(i=0x10;i<0x16;i++) DBYTE[i]=XBYTE[i]; }
10.9 #include
z=(unsigned int *)0x24; if(*x>*y) *z=*x; else *z=*y; while(1); }
10.10 #include
main() {
unsigned char *pBCD=(unsigned char *)0x21; unsigned long *pBinary=(unsigned long *)0x30; unsigned char *pLen=(unsigned char *)0x20; *pBinary=0; while(*pLen) { (*pLen)--; *pBinary*=10; *pBinary+=*(pBCD+*pLen);
} //程序认为BCD码是低位放在低地址的 }
10.11 #include
main() {
unsigned int *pBinary=(unsigned int *)0x30; unsigned char *pBCD=(unsigned char *)0x21; unsigned char *pLen=(unsigned char *)0x20; *pLen=0;
while(*pBinary) { *pBCD=*pBinary; (*pLen)++; pBCD++; *pBinary/=10;
} //程序将BCD码的低位放在低地址 }
第11章、RTX51实时操作系统 略
第12章、以MCU为核心的嵌入式系统的设计与调试
12.1 参见教材第12.2节
12.2 提示,.利用定时/计数器定时100ms,中断10次达1秒,满60秒,分加1秒清0;满60分,小时加1分清
0,同时分,秒均有十位数和个位数,按十进制进位,并送显示,显示可采用6个数码管(或八个数码管),校对可用按键中断方式或按键的查询进行加1校对,用并行口接驱动器(非门或三极管)驱动扬声器进行闹钟,如果采用89C51/S51做,由于片内己有程序存储器,四个口用户均可使用.
12.3 提示,两个定时器同时使用,一个定时器产生节拍,另一个定时器产生音符。 12.4-12.5 略
第13章、单片机实验指导 略