unsigned int z _at_ 0x24; void main() {
z=(x>y)?x:y; }
µÚ4Õ µ¥Æ¬»úµÄC51ÓïÑÔ Ï°Ìâ
1£®CÓïÑÔµÄÓŵãÊÇʲô£¿C³ÌÐòµÄÖ÷Òª½á¹¹ÌصãÊÇʲô£¿
´ð£ºCÓïÑÔÊÇÒ»Öָ߼¶ÓïÑÔ£¬Ñ§Ï°±ÈµÍ¼¶ÈÝÒ×£¬²»ÐèÒª¾ßÌå×éÖ¯¡¢·ÖÅä´æ´¢Æ÷×ÊÔ´ºÍ´¦Àí¶Ë¿ÚÊý¾Ý£¬¿ÉÒÔÖ±½ÓÇý¶¯µ¥Æ¬»úµÄËùÓÐ×ÊÔ´¡£
C³ÌÐòÒÔº¯ÊýΪµ¥Î»£¬ÓÉÒ»¸öÖ÷º¯ÊýºÍÈô¸É¸öÆäËûº¯Êý¹¹³É£¬Ö÷º¯ÊýÊdzÌÐòµÄÈë¿Ú£¬ÆäËûº¯ÊýÓÉÖ÷º¯ÊýÖ±½Ó»ò¼ä½Óµ÷ÓᣳÌÐò¿ÉÒÔÓÉÒ»¸öÎļþ»ò¶à¸öÎļþ×é³É¡£ÎļþÀàÐÍ°üÀ¨Í·ÎļþºÍCÓïÑÔÔ´Îļþ£¬Ò²¿ÉÒÔÊÇ»ã±àÓïÑÔÎļþ£¬C³ÌÐò¿ÉÓë»ã±àÓïÑÔ»ìºÏ±à³Ì¡£
2£®C51ÓïÑԵıäÁ¿¶¨Òå°üº¬ÄÄЩ¹Ø¼üÒòËØ£¿ÎªºÎÕâÑù¿¼ÂÇ£¿ ´ð£ºCÓïÑԵıäÁ¿¶¨Òå¸ñʽÈçÏ£º
[´æ´¢ÖÖÀà] Êý¾ÝÀàÐÍ [´æ´¢ÀàÐÍ] ±äÁ¿Ãû ÆäÖУº
´æ´¢ÖÖÀàÓë±ê×¼CÓïÑÔÏàͬ£¬°üÀ¨£º×Ô¶¯ÐÍ(auto)¡¢ÍⲿÐÍ(extern)¡¢¾²Ì¬ÐÍ(static)¡¢¼Ä´æÆ÷ÐÍ(register)¡£
Êý¾ÝÀàÐͳýÁË°üº¬±ê×¼CÓïÑÔÀàÐ͵Ä×Ö·ûÐÍ(char)£¬ÕûÐÍ(int)£¬³¤ÕûÐÍ(long)£¬¸¡µãÐÍ(float)£¬Ë«¾«¶ÈÐÍ(double)Í⣬»¹Óжþ½øÖÆλÐÍ(bit)£¬ÌØÊ⹦ÄܼĴæÆ÷ÐÍ(sfr)£¬SFR¿ÉλѰַµÄλÀàÐÍ(sbit)¡£
´æ´¢ÀàÐÍ°üÀ¨£ºÆ¬ÄÚRAMÇø(data)¡¢Æ¬ÄÚ¿ÉλѰַÇø(bdata)£¬Æ¬ÄÚRAM¼ä½ÓÑ°Ö·Çø(idata)£¬Æ¬ÍâRAMҳѰַÇø(pdata)£¬Æ¬ÍâRAMÇø(xdata)¡¢ROMÇø(code)¡£
Ö»ËùÒԱȱê×¼CÓïÑÔ¶àÁË´æ´¢ÀàÐÍ£¬¾ÍÊÇÒòΪMCS£51µ¥Æ¬»úµÄ´æ´¢½á¹¹ÖÐÓÐËĸöÎïÀí´æ´¢¿Õ¼ä(ƬÄÚRAM¡¢Æ¬ÄÚROM£¬Æ¬ÍâRAM£¬Æ¬ÍâROM)£¬Èý¸öÂß¼µØÖ·¿Õ¼ä(ƬÄÚRAM£¬Æ¬ÍâRAM£¬ROM)£¬¶øÇÒÓжàÖÖÑ°Ö··½Ê½£¨Ö±½ÓÑ°Ö·¡¢¼ä½ÓÑ°Ö·¡¢Ò³ÃæÑ°Ö·¡¢Î»Ñ°Ö·£©ËùÖ£¬ËùÒÔÔÚ¶¨Òå±äÁ¿Ê±£¬Òª¸ù¾ÝÆäËùÔÚλÖúÍÑ°Ö··½Ê½Ã÷È·Ö¸¶¨´æ´¢ÀàÐÍ¡£
3£®C51Óë»ã±àÓïÑÔµÄÌصã¸÷ÓÐÄÄЩ£¿ÔõÑùʵÏÖÁ½ÕßµÄÓÅÊÆ»¥²¹£¿
´ð£ºC51Êǽṹ»¯ÓïÑÔ£¬´úÂë½ô´Õ£»½Ó½ü×ÔÈ»ÓïÑÔ£¬³ÌÐò¿É¶ÁÐÔÇ¿£¬Ò×ÓÚµ÷ÊÔ¡¢Î¬»¤£»¿âº¯Êý·á¸»£¬±à³Ì¹¤×÷Á¿Ð¡£¬¿Éʹ²úÆ·¿ª·¢ÖÜÆڶ̣»¾ßÓлúÆ÷¼¶¿ØÖÆÄÜÁ¦£¬¹¦ÄܺÜÇ¿£¬ÊʺÏÓÚǶÈëʽϵͳ¿ª·¢£»»ã±àÖ¸ÁîÎ޹أ¬Ò×ÓÚÕÆÎÕ£¬ÉÏÊÖ¿ì¡£
»ã±àÓïÑÔÓŵãÊDZàдµÄ³ÌÐò´úÂ뾫Á¶¡¢Ö´ÐÐËٶȿ죬ÔÚÏàͬ¹¦ÄÜÏ£¬»ã±àÓïÑÔ³ÌÐò¿ÉÄܱÈCÓïÑÔ³ÌÐòЧÂʸߡ£È±µãÊǶԳÌÐòÔ±ÒªÇó¸ß£¬±ØÐë¶Ôµ¥Æ¬»úµÄÓ²¼þ½á¹¹·Ç³£ÊìϤ²ÅÄܱà³Ì£¬²»±ãÓÚ±àд±È½Ï¸´ÔӵijÌÐò¡£ ¿É¸ù¾ÝÐèÒª¶ÔÒªÇóʱ¼äÐÔºÜÇ¿µÄ´úÂëÓûã±àÓïÑÔ±àд£¬ÆäËü²¿·ÖÓÃCÓïÑÔ±àд£¬Á½Õß»ìºÏ±à³Ì¾Í¿ÉÒÔʵÏÖÓÅÊÆ»¥²¹¡£
4£®Ö¸³öÏÂÃæ³ÌÐòµÄÓï·¨´íÎó£º #include
main(){ a=C£»
int a=7,C delay(10)
void delay();{ cgar i£»
for(i=O; i<=255; ¡±++¡±); } ´ð£º
#include
a=C£» //aºÍC±ØÐëÏȶ¨Òå²Å¿ÉʹÓà int a=7,C //ȱ·ÖºÅ£¬Ó¦¸ÃÌáÔÚʹÓÃǰ˵Ã÷
delay(10) //ÑÓʱ×Ó³ÌÐò±ØÐëÏȶ¨Ò壬»òÏÈÓк¯ÊýÔÐÍ˵Ã÷ void delay();{
//×÷Ϊº¯Êý¶¨Ò壬Óк¯Êý¶¨Òå²»ÄÜǶÌ×µÄÎÊÌ⣬
//¼´²»ÄÜÔÚÒ»¸öº¯ÊýÄÚ¶¨ÒåÁíÒ»¸öº¯Êý£¬¶øÇÒ¡°{¡±Ç°²»Ó¦ÓзֺÅ
//×÷Ϊº¯ÊýÔÐÍ˵Ã÷£¬Ó¦¸Ã·ÅÔÚº¯Êýµ÷ÓÃ֮ǰ,ÇÒÆäºó²»Ó¦¸Ã½Óº¯ÊýÌå
cgar i£» //×Ö·ûÐÍÓ¦¸ÃÊÇunsigned char for(i=O; i<=255; ¡±++¡±);// ¡±++¡±Ó¦¸Ä³Éi++
}
//Ö÷º¯ÊýûÓнáÊø£¬È±¡±}¡±
5£®¶¨Òå±äÁ¿a£¬b£¬c£¬ÆäÖÐaΪÄÚ²¿RAMµÄ¿ÉλѰַÇøµÄ×Ö·û±äÁ¿£¬bΪÍⲿÊý¾Ý´æ´¢Çø¸¡µãÐͱäÁ¿£¬cΪָÏò int ÐÍ xdata ÇøµÄÖ¸Õë¡£ ´ð£º char bdata a; float xdata b; int xdata *c; 6£®±à³Ì½«8051µÄÄÚ²¿Êý¾Ý´æ´¢Æ÷20Hµ¥ÔªºÍ35Hµ¥ÔªµÄÊý¾ÝÏà³Ë£¬½á¹û´æµ½ÍⲿÊý¾Ý´æ´¢Æ÷ÖÐ(ÈÎÒâλÖÃ)¡£
½â£º·½·¨Ò»£ºÓÃǶÈëʽ»ã±àÓïÑÔʵÏÖ #include
{ #pragma asm MOV A,20H MOV B,35H MUL AB
MOV DPTR,#1234H MOVX @DPTR,A INC DPTR MOV A,B
MOVX @DPTR,A #pragma endasm
}
·½·¨¶þ£ºµ¥ÓÃCÓïÑÔ±à³ÌʵÏÖ #include
unsigned int xdata x; unsigned char *ptr,a,b; ptr=0x25; a=*ptr; ptr=0x30; b=*ptr; x=a*b; }
7£®8051µÄƬÄÚÊý¾Ý´æ´¢Æ÷25Hµ¥ÔªÖдæ·ÅÓÐÒ»¸ö0¡«10µÄÕûÊý£¬±à³ÌÇóÆäƽ·½¸ù(¾«È·µ½5λÓÐЧÊý×Ö)£¬½«Æ½·½¸ù·Åµ½30Hµ¥ÔªÎªÊ×Ö·µÄÄÚ´æÖС£ ½â£º·½·¨Ò»£ºÓÃCÓïÑÔÓë»ã±àÓïÑÔ»ìºÏ±à³ÌʵÏÖ //ÓÃCÓïÑÔ±àдµÄÖ÷º¯ÊýMAIN.C #include
char a=0x25,c; float f;
c=getdata(a); f=sqrt(c); }
;Óûã±àÓïÑÔ±àдµÄÈ¡Êý¾Ý×Óº¯Êý£¬Ö»ÓÐÒ»¸öµØÖ·²ÎÊýÔÚR7ÖУ¬·µ»ØֵΪָ¶¨µØÖ·µ¥ÔªÖеÄÄÚÈÝ£¬ÓÃR7·µ»ØÖ÷º¯Êý¡£ PUBLIC _GETDATA DE SEGMENT CODE RSEG DE
_GETDATA: MOV A,R7 ;È¡µØÖ·²ÎÊý MOV R0,A MOV A,@R0 MOV R7,A ;·µ»ØµØÖ·µ¥ÔªÖеÄÄÚÈÝ EXIT: RET END
·½·¨¶þ£ºµ¥ÓÃCÓïÑÔ±à³ÌʵÏÖ //MAIN.C
#include
#include
char n; char *ptr; float *ptr2; float f; ptr=0x25; n=*ptr; f=sqrt(n); ptr2=0x30; *ptr2=f; }
8£®½«ÍⲿRAM 10H¡«15Hµ¥ÔªµÄÄÚÈÝ´«Ë͵½ÄÚ²¿RAM 10H¡«15Hµ¥Ôª¡£ ½â£º·½·¨Ò»£º²ÉÓÃCÓïÑÔÓë»ã±àÓïÑÔ»ìºÏ±à³Ì //ÓÃCÓïÑÔ±àдµÄÖ÷º¯ÊýMAIN.C #include
char movdata(char,char); void main() {
char a=0x10,b=0x06; movdata(a,b); }
;Óûã±àÓïÑÔ±àдµÄÒƶ¯Êý¾Ý×Óº¯ÊýMOVDATA£¬ÆäÖеÚÒ»¸ö²ÎÊýÔÚR7ÖÐΪÊ×µØÖ·£¬µÚ¶þ¸ö²ÎÊýÔÚR5ÖÐΪ×Ö½ÚÊý PUBLIC _MOVDATA DE SEGMENT CODE RSEG DE
_MOVDATA: MOV A,R7 ;È¡²ÎÊý MOV R0,A LOOP: MOVX A,@R0 MOV @R0,A DJNZ R5,LOOP EXIT: RET END
·½·¨¶þ£ºµ¥ÓÃCÓïÑÔ±à³ÌʵÏÖ //MAIN.C
#include
char n=6;
char *ptr1=0x10;