Keil C51 vs ±ê×¼C
ÉîÈëÀí½â²¢Ó¦ÓÃC51¶Ô±ê×¼ANSICµÄÀ©Õ¹ÊÇѧϰC51µÄ¹Ø¼üÖ®Ò»¡£ÒòΪ´ó¶àÊýÀ©Õ¹¹¦Äܶ¼ÊÇÖ±½ÓÕë¶Ô8051ϵÁÐCPUÓ²¼þµÄ¡£´óÖÂÓÐÒÔÏÂ8 Àࣺ 8051´æ´¢ÀàÐͼ°´æ´¢ÇøÓòl; ´æ´¢Ä£Ê½l´æ´¢Æ÷ÀàÐÍÉùÃ÷l±äÁ¿ÀàÐÍÉùÃ÷l λ±äÁ¿ÓëλѰַl ÌØÊ⹦ÄܼĴæÆ÷(SFR)l C51Ö¸Õël º¯ÊýÊôÐÔ¾ßÌå˵Ã÷ÈçÏÂ(8031ΪȱʡCPU)¡£
µÚÒ»½Ú Keil C51À©Õ¹¹Ø¼ü×Ö
C51 V4.0°æ±¾ÓÐÒÔÏÂÀ©Õ¹¹Ø¼ü×Ö(¹²19¸ö)£º_at_ ; idata; sfr16; alien; interrupt; smallbdata; large; _task_; Code; bit; pdatausing; reentrant xdata; compact sbit; data; sfr
µÚ¶þ½Ú ÄÚ´æÇøÓò(Memory Areas)£º
1. Pragram Area£º
ÓÉCode˵Ã÷¿ÉÓжà´ï64kBytesµÄ³ÌÐò´æ´¢Æ÷
2. Internal Data Memory
ÄÚ²¿Êý¾Ý´æ´¢Æ÷¿ÉÓÃÒÔϹؼü×Ö˵Ã÷£ºdata£ºÖ±½ÓÑ°Ö·Çø£¬ÎªÄÚ²¿RAMµÄµÍ128 ×Ö½Ú 00H¡«7FH£¬idata£º¼ä½ÓÑ°Ö·Çø£¬°üÀ¨Õû¸öÄÚ²¿RAMÇø 00H¡«FFH£¬bdata£º¿ÉÎ»Ñ°Ö·Çø£¬20H¡«2FH
3. External Data Memory
ÍⲿRAMÊÓʹÓÃÇé¿ö¿ÉÓÉÒÔϹؼü×Ö±êʶ£ºxdata£º¿ÉÖ¸¶¨¶à´ï64KBµÄÍⲿֱ½ÓÑ°Ö·Çø£¬µØÖ··¶Î§0000H¡«0FFFFHpdata£ºÄÜ·ÃÎÊ1Ò³(25bBytes)µÄÍⲿRAM£¬Ö÷ÒªÓÃÓÚ½ô´Õģʽ(Compact Model)¡£
4. Speciac Function Register Memory
8051Ìṩ128BytesµÄSFRÑ°Ö·Çø£¬ÕâÇøÓò¿ÉλѰ Ö·¡¢×Ö½ÚѰַ»ò×ÖѰַ£¬ÓÃÒÔ¿ØÖƶ¨Ê±Æ÷¡¢¼ÆÊýÆ÷¡¢´®¿Ú¡¢I/O¼°ÆäËü²¿¼þ£¬¿ÉÓÉÒÔϼ¸Öֹؼü×Ö˵Ã÷£ºsfr£º×Ö½ÚѰַ ±ÈÈç sfr P0=0x80;ΪPO¿ÚµØÖ·Îª80H£¬£½;ºóH¡«FFHÖ®¼äµÄ³£Êý¡£sfr16£º×ÖѰַ£¬Èçsfr16 T2=0xcc;Ö¸¶¨Timer2¿ÚµØÖ·T2L=0xcc T2H=0xCDsbit£ºÎ»Ñ°Ö·£¬Èçsbit EA=0xAF;Ö¸¶¨µÚ0xAFλΪEA£¬¼´ÖжÏÔÊÐí»¹¿ÉÒÔÓÐÈç϶¨Òå·½·¨£ºsbit 0V=PSW^2£»(¶¨Òå0VΪPSWµÄµÚ2λ)sbit 0V£½0XDO^2£»(ͬÉÏ)»òbit 0V-£½0xD2(ͬÉÏ)¡£
µÚÈý½Ú ´æ´¢Ä£Ê½
´æ´¢Ä£Ê½¾ö¶¨ÁËûÓÐÃ÷È·Ö¸¶¨´æ´¢ÀàÐ͵ıäÁ¿£¬º¯Êý²ÎÊýµÈµÄȱʡ´æ´¢ÇøÓò£¬¹²ÈýÖÖ£º
1. Smallģʽ
ËùÓÐȱʡ±äÁ¿²ÎÊý¾ù×°ÈëÄÚ²¿RAM£¬ÓŵãÊÇ·ÃÎÊËٶȿ죬ȱµãÊǿռäÓÐÏÞ£¬Ö»ÊÊÓÃÓÚС³ÌÐò¡£
2. Compactģʽ
ËùÓÐȱʡ±äÁ¿¾ùλÓÚÍⲿRAMÇøµÄÒ»Ò³(256Bytes)£¬¾ßÌåÄÄÒ»Ò³¿ÉÓÉP2¿ÚÖ¸¶¨£¬ÔÚSTARTUP.A51ÎļþÖÐ˵Ã÷£¬Ò²¿ÉÓÃpdataÖ¸¶¨£¬ÓŵãÊǿռä½ÏSmallΪ¿íÔ£ËٶȽÏSmallÂý£¬½ÏlargeÒª¿ì£¬ÊÇÒ»ÖÖÖмä״̬¡£
3. largeģʽ
ËùÓÐȱʡ±äÁ¿¿É·ÅÔÚ¶à´ï64KBµÄÍⲿRAMÇø£¬ÓŵãÊǿռä´ó£¬¿É´æ±äÁ¿¶à£¬È±µãÊÇËٶȽÏÂý¡£Ì
Ïà¹ØÎĵµ£º
×î½üÒ»¸öÅóÓÑ×¼±¸°ÑC´úÂëÔÚECLIPSEÉϱàÒ룬ÒÔǰһֱ¸ãµÄJAVA£¬Ò²ÖªµÀECLIPSEÖ§³ÖC¹¤³Ì£¬µ«ÊÇ×Ô¼º´ÓÀ´Ã»¸ã¹ý£¬ËùÒÔ¾Í×Ô¼ºÏÈ´ÓÍøÂçÉÏÕÒ×ÊÁÏ£¬Ö÷Òª·½·¨ÈçÏÂ
1¡¢°²×°JDKºÍEclipse
ÕâÀï¾Í²»¶à˵£¬¾ßÌåÇë¼û£ºhttp://blog.chinaunix.net/u/16292/showart_223309.html
Îҵݲװ»·¾³ÊÇjdk1.5£¬eclipse3.2.1
2¡¢°²×°C++µÄE ......
ÓÃcÓïÑÔ×öÁ˸öͨѶ¼£¬ÏµÍ³Ò»ÔËÐÐʱ±ã½«Êý¾ÝÎļþ¼ÓÔØ½øÄڴ棬²¢ÓÃÁ´±í´æ´¢¡£Í˳öϵͳʱ£¬×Ô¶¯½«Á´±íÖеÄËùÓнڵãÔÙ´æÈëÎļþ¡£
¿ÉÊÇÏÖÔÚ£¬Ã¿´ÎÍ˳öϵͳ£¬ÎļþÀï¶¼»á±ÈÁ´±í¶à´æ´¢Ò»Ìõ¼Ç¼¡£
È磺ÏÖÔÚÖ»ÓÐÁ½Ìõ¼Ç¼£¬Í˳öºóÔÚÆô¶¯Ê±Ò»²éѯ£¬¾Í»á¶àÒ»ÌõÂҼǼ£¨ÏµÍ³×Ô¼º¼ÓµÄ£©¡£
¼ÓÔØÎļþµÄ²¿·Ö´úÂëÈçÏ£º
/*ÅжÏÎļþÊÇ·ñ ......
1,·ÀÖ¹Ò»¸öÍ·Îļþ±»Öظ´°üº¬
#ifndef COMDEF_H
#define COMDEF_H
//Í·ÎļþÄÚÈÝ
#endif
2,ÖØÐ¶¨ÒåһЩÀàÐÍ,·ÀÖ¹ÓÉÓÚ¸÷ÖÖÆ½Ì¨ºÍ±àÒëÆ÷µÄ²»Í¬,¶ø²úÉúµÄÀàÐÍ×Ö½ÚÊý²îÒì,·½±ãÒÆÖ²¡£
typedef unsigned char boolean; /* Boolean value type. */
typedef ......
±àÒ룬±àÒë³ÌÐò¶ÁȡԴ³ÌÐò£¨×Ö·ûÁ÷£©£¬¶ÔÖ®½øÐдʷ¨ºÍÓï·¨µÄ·ÖÎö£¬½«¸ß¼¶ÓïÑÔÖ¸Áîת»»Îª¹¦ÄܵÈЧµÄ»ã±à´úÂ룬ÔÙÓÉ»ã±à³ÌÐòת»»Îª»úÆ÷ÓïÑÔ£¬²¢ÇÒ°´ÕÕ²Ù×÷ϵͳ¶Ô¿ÉÖ´ÐÐÎļþ¸ñʽµÄÒªÇóÁ´½ÓÉú³É¿ÉÖ´ÐгÌÐò¡£
CÔ´³ÌÐòÍ·Îļþ££>Ô¤±àÒë´¦Àí(cpp)££>±àÒë³ÌÐò±¾Éí££>ÓÅ»¯³ÌÐò££>»ã±à³ÌÐò££>Á´½Ó³ÌÐò--> ......
1.Çø±ð(Ö÷ÒªµÄ):Ö¸ÕëÐèÒªÔö¼ÓÒ»´Î¶îÍâµÄÌáÈ¡²Ù×÷
±àÒëÆ÷Ϊÿ¸ö±äÁ¿·ÖÅäÒ»¸öµØÖ·(×óÖµ)¡£Õâ¸öµØÖ·±àÒëʱ¿ÉÖª£¬¶øÇҸñäÁ¿ÔÚÔËÐÐʱһֱ±£´æÓÚÕâ¸öµØÖ·¡£Ïà·´£¬´æ´¢ÓÚ±äÁ¿ÖеÄÖµ(ËüµÄÓÒÖµ)Ö»ÓÐÔÚÔËÐÐʱ²Å¿ÉÖª¡£Èç¹ûÐèÒªÓõ½±äÁ¿Öд洢µÄÖµ£¬±àÒëÆ÷¾Í·¢³öÖ¸Áî´ÓµØÖ·¶ÁÈë±äÁ¿Öµ²¢½«Ëü´æÓڼĴæÆ÷ÖС£
  ......