3.12ҪעÒ⣬λµÄÂß¼ÔËËãÆäÖÐÒ»¸ö²Ù×÷Êý±ØÐëÔÚC¡£
ORG 0000H MOV C,20H ANL C,2FH CPL C
ORL C,/2FH CPL C
ANL C,53H MOV P1.0,C SJMP $ END
3.13 ÓÃλ²Ù×÷Ö¸ÁîʵÏÖÏÂÃæµÄÂß¼·½³Ì(¡Á±íʾÂß¼³Ë£¬+±íʾÂß¼¼Ó)£º P1.2=(ACC.3¡ÁP1.4¡Á-ACC.5)+(-B.4¡Á-P1.5) 3.13 ORG 0000H MOV C£¬ACC.3 ANL C¡£P1.4 ANL C,/ACC.5 MOV 20H£¬C MOV C£¬B.4 CPL C
ANL C,/P1.5 ORL C£¬20H MOV P1.2,C SJMP $
END
3.14 ÊÔ±àдһ¸öÈý×Ö½ÚÎÞ·ûºÅÊý³ËÒ»×ֽڵij˷¨³ÌÐò¡£
3.14 ÉèÒ»×Ö½Ú³ËÊý´æ·ÅÔÚR1£¬Èý×ֽڵı»³ËÊý´æ·ÅÔÚdata¿ªÊ¼µÄÄÚ²¿RAMµ¥Ôª£¬ÇÒµÍ×Ö½Ú´æ·ÅÔÚµÍλµØÖ·µ¥Ôª£¬R0×÷Ϊ±»³ËÊýºÍ»ýµÄµØÖ·Ö¸Õ룬ÓÃMULÖ¸ÁîÍê³ÉÒ»×Ö½Ú³ËÒ»×Ö½Ú£¬Ã¿Ò»´Î²¿·Ö»ýµÄµÍλ¼ÓÉÏÒ»´Î²¿·Ö»ýµÄ¸ß룬ÆäºÍµÄ½øÎ»¼ÓÔÚ±¾´Î²¿·Ö»ýµÄ¸ßλÉÏ,²¢Ôݴ棬Èý×Ö½Ú³ËÒ»×Ö½Ú¹²ÐèÕâÑù3´Î³Ë¡¢¼Ó¡¢´æ²Ù×÷£®ÒÔR7×÷Ñ»·3´ÎµÄ¼ÆÊý¼Ä´æÆ÷¡£ ORG 0000H MOV R7£¬#03H MOV R0,#data
MOV R2,#0 NEXT£ºMOV A£¬@R0
13
MOV B,R1 MUL AB ADD A£¬R2 MOV @RO£¬A
MOV A,#O ADDC£»A,B MOV R2,A INC R0
DJNZ R7£¬NEXT MOV @R0£¬B SJMP $ END
µÚ4Õ µ¥Æ¬»úµÄCÓïÑÔ
4.1 ¸ÄÕýÏÂÃæ³ÌÐòµÄ´íÎó¡£
4.1 1£º#include
3£º{a=c£» ¢Ù±äÁ¿a£¬c±ØÐëÏȶ¨ÒåÔÙÒýÓÃ
4£ºint a=7£¬c£» ¢ÚµÚ5¾äµ÷Óú¯Êýºó±ØÐë¼Ó·ÖºÅ £® 5£ºdelay() ¢Ûmain()º¯ÊýûÓз´´óÀ¨ºÅ
6£ºvoid delay()£» ¢Ü±»µ÷º¯Êýdelay()ÔÚmain()ºóÃæ£¬±ØÐëÔÚÇ°ÃæÏÈÉùÃ÷ 7£º{
8£ºchar i£» ¢ÝµÚ6¾äº¯Êý˵Ã÷Óï¾äºóµÄ·ÖºÅӦȥµô 9£ºfor(i=O£»i<£º255£»i++)£» 10£º}
4.2 ÊÔ˵Ã÷ΪʲôxdataÐ͵ÄÖ¸Õ볤¶ÈÒªÓÃ2¸ö×Ö½Ú?
4.2 ÒòΪxdataÊÇÍⲿÊý¾Ý´æ´¢Æ÷£¬×î´ó¿ÉÓÐ64KBµÄ´æ´¢µ¥Ôª£¬xdataÖ¸ÕëÊDZíʾÍⲿÊý¾Ý´æ´¢µ¥ÔªµÄµØÖ·£¬Òª±íʾ64KB¸öµ¥ÔªµØÖ·£¬ËùÒÔ±ØÐëÓÃ2¸ö×Ö½Ú£¬¹²16λ±íʾ¡£
4.3 ¶¨Òå±äÁ¿a¡¢b¡¢c; aΪÄÚ²¿RAMµÄ¿ÉÎ»Ñ°Ö·ÇøµÄ×Ö·û±äÁ¿; bΪÍⲿÊý¾Ý´æ´¢Çø¸¡µãÐͱäÁ¿£»cΪָÏòintÐÍxdataÇøµÄÖ¸Õë¡£ 4.3 bdata char a£» xdata float b£º
xdata int~c£»
4.4 ±à³Ì½«8XX51µÄÄÚ²¿Êý¾Ý´æ´¢Æ÷20Hµ¥ÔªºÍ35Hµ¥ÔªµÄÊý¾ÝÏà³Ë£¬½á¹û´æµ½ÍⲿÊý¾Ý´æ´¢Æ÷ÖÐ(λÖò»¹Ì¶¨)¡£ 4.4 main()
{char data*pl£¬*p2£» xdata int a£» p1=0x20£» p2=0x35£» a=*p1*(*p2)£»
}
4.5 ½«ÈçÏ»ã±à³ÌÐòÒë³ÉC³ÌÐò(µÈЧ¼´¿É)¡£ ORG 0000H MOV P1,#04H
14
MOV R6,#0AH MOV R0,#30H CLR P1.O SETB P1.3 ACALL TLC SJMP $
TLC£ºMOV A,#0 CLR P1.3 MOV R5,#08
LOOP: MOV C,P1.2 RLC A SETB P1.0 CLR P1.O DJNZ R5,LOOP MOV @RO,A INC R0
DJNZ R6,TLC2543 RET END
4.5 #include(reg51£®h)
#define uchar unsigned char sbit P1_0=P1^0;
sbit Pl_l=P1^1£» sbit P1_2=P1^2; sbit P1_3=P1^3£» sbit msb=ACC^7; sbit lsb=ACC^0; uchar tlc(void); main( ){ uchar *P; P1=0x04; P=0x30; P1_0=0£»
Pl_3=1£»
for(i=O£»i<10£»i++) {*P=tlc( )£» P++£º}
}
uchar tlc(void){ uchar i£¬y£» ACC=0; Pl_3=0;
for(i=0£ºi<8£ºi++){
P1_1=msb£» /*·¢³öACCµÄµÍλ*/
15
y=ACC<<1£» /*ACCÓÒÒÆ1λ*/
lsb=P1_2£» /*½ÓÊÕһλ·ÅÔÚACCµÄ¸ßλ*/ P1_0=1£» P1_0=O; }
return y£» } 4.6 8051µÄƬÄÚÊý¾Ý´æ´¢Æ÷25Hµ¥ÔªÖзÅÓÐÒ»¸ö0¡«10µÄÕûÊý£¬±à³ÌÇóÆäƽ·½¸ù(¾«È·µ½5λÓÐЧÊý×Ö)£¬½«Æ½·½¸ù·Åµ½30Hµ¥ÔªÎªÊ×Ö·µÄÄÚ´æ¡£ 4.6 ·½·¨l£ºÊ¹Óòé±í·¨
float code tab[11]={0£¬1£¬1£®4142£¬1.7321£¬2£¬2.2361£¬ 2.4495£¬2.6458£¬2.8284£¬3,3.1623}£º main()
{char data*P1; float data*P2; P1=0x25; P2=0x30;
*P2=tab[*P1]£» }
·½·¨2£ºÊ¹Óÿ⺯Êý
#lnclude
P1=0x25;
*P2=sqrt(*P1); }
4.7 Íê³ÉÂß¼±í´ïʽP1.2=P1.4¡ÁACC.0+ACC.7(¡°¡Á¡±±íʾÂß¼Ó룬¡°+¡±±íʾÂß¼»ò)¡£ 4.7 #include
{P12=¡«(P1^4&ACC^0)|ACC^7£»}
4.8 ½«ÍⲿRAMµÄ10H¡«15Hµ¥ÔªµÄÄÚÈÝ´«Ë͵½ÄÚ²¿RAMµÄ10H¡«15Hµ¥Ôª¡£ 4.8 #lnclude
{
char pdata *m; char data *n; P2=0;
for(m=0x10£»m<=0x15£»m++) {n=m£»*n=*m£»}
}
4.9 ÄÚ²¿RAMµÄ20H¡¢21HºÍ22H¡¢23Hµ¥Ôª·Ö±ð´æ·Å×ÅÁ½¸öÎÞ·ûºÅµÄ16λÊý£¬½«ÆäÖеĴóÊýÖÃÓÚ24HºÍ25Hµ¥Ôª¡£
16