2¡¢Ñ¡Ôñ²Ëµ¥ProjectµÄÏÂÀ²Ëµ¥Options for TargetÑ¡Ïî¡£ÔÚµ¯³öµÄ´°¿ÚÖУ¬Ñ¡ÔñoutputÑ¡ÏÔÚCreat HEX FileµÄ¹´Ñ¡ÏîÖУ¬¹´Ñ¡¡£ÕâÑù²ÅÄÜÉú³ÉHEXÎļþ¡£
3¡¢Ñ¡Ôñ²Ëµ¥ProjectµÄÏÂÀ²Ëµ¥Build targetÑ¡Ïî,ÈçÎÞ´íÎó»òÌØ±ð¾¯¸æ£¬±àÒëÁ´½ÓÍê³Éºó¾Í»á²úÉúÏàÓ¦¹¤³ÌµÄHEXÎļþÁË¡£
4¡¢Èç¹ûÎÞ·ÂÕæ¹¤³Ìʱ£¬¿ÉÌø¹ýÏÂÁв½Öè¡£ÓÐÏàÓ¦µÄ·ÂÕæ¹¤³ÌÎļþʱ£¬¿É½øÐÐÏÂÁв½Ö裺
a¡¢Ë«»÷´ò¿ªP_PROTEUSÎļþ¼ÐÖеĺó׺ΪDSNµÄ·ÂÕæ¹¤³ÌÎļþ¡£
b¡¢ÔÚ´¦ÀíÆ÷оƬAT89C52Æ÷¼þÉÏ£¬Êó±êÓÒ¼üµ¥»÷£¬Ñ¡ÔñEdit PropertiesÑ¡Ï»òÕßË«»÷AT89C52оƬ£¬ÔÚProgram FileµÄä¯ÀÀÑ¡ÏîÖÐÌí¼ÓÉÏÃæ²½ÖèÖÐÉú³ÉµÄHEXÎļþ¡£µã»÷OK£¬Íê³ÉHEXÎļþÌí¼Ó¡£
c¡¢Ñ¡Ôñ²Ëµ¥DebugµÄÏÂÀ²Ëµ¥Start/Restart DebuggingÑ¡Ïî¡£´Ëʱ³ÌÐòÒÑ´¦ÓÚµ÷ÊÔ״̬£¬Í¬ÑùÔÙ´ÎÑ¡Ôñ²Ëµ¥Debug,Ñ¡ÔñExecuteÑ¡Ï³ÌÐò¿ªÊ¼ÔËÐС£¿Éͨ¹ýÈË»ú½Ó¿Ú¹Û²ì³ÌÐòµÄЧ¹û¡£
5¡¢Á¬½ÓISPÏÂÔØÆ÷Ò»¶Ëµ½USB½Ó¿Ú£¬ÁíÒ»¶ËÁ¬µ½Ä¿±ê°å¡£´ò¿ªÊµÑę́µçÔ´£¬²Î¿¼²úƷ˵Ã÷ÊéÖеÄISPÏÂÔØÈí¼þʹÓ÷½·¨¶Ô³ÌÐò½øÐÐÏÂÔØ¡£
[³ÌÐò¼°×¢ÊÍ]
#include
#define uchar unsigned char //Êý¾ÝÀàÐͺ궨Òå #define uint unsigned int
/*********************Òý½Å¶¨Òå********************/ #define LED P0
/*********************ÑÓʱº¯Êý********************/ void delayms(uchar ms) // ÑÓʱ×Ó³ÌÐò { unsigned char i; while(ms--) { for(i = 0; i < 120; i++); } }
/*********************Ö÷º¯Êý**********************/ void main(void) { LED = 0xfe; //³õʼ»¯P0¿Ú while(1) { //ÑÓʱ delayms(250); LED = _crol_(LED,1); //Ñ»·ÓÒÒÆ1룬µãÁÁÏÂÒ»¸öLED
}
}
[ʵÑéÏÖÏó¼°½á¹û]
ʵÏÖLEDÁ÷Ë®µÆ
ʵÑéÈý
ÍⲿÖжϼÆÊýʵÑé
[ʵÑéÄ¿µÄ]
ÕÆÎÕµ¥Æ¬»úÍⲿÖжϵÄÉèÖã¬ÖжϺ¯ÊýµÄ´¦Àí¡£
[ʵÑéÄÚÈÝ]
MCU-AT89S52 P00~P07 P10~P13 P32 8λ¹²ÑôÊýÂë¹Ü SA~SH C0~C3 8λ¶ÀÁ¢°´¼ü K1
[ʵÑéÒªÇó]
ÔÚµ¥Æ¬»ú½ÓÒ»¸ö°´¼ü×÷ΪÍⲿµÄÖжÏÊäÈëÐźţ¬Í¨¹ýÊýÂë¹ÜÏÔʾÖжϴÎÊý¡£
[ʵÑé²½Öè]
1¡¢´ò¿ªUv4 IDE»·¾³£¬Ñ¡Ôñ²Ëµ¥ProjectµÄÏÂÀ²Ëµ¥Open ProjectÑ¡Ïî, ¼ÓÔØºó׺ÃûΪuvprojµÄ¹¤³ÌÎļþ¡£
2¡¢Ñ¡Ôñ²Ëµ¥ProjectµÄÏÂÀ²Ëµ¥Options for TargetÑ¡Ïî¡£ÔÚµ¯³öµÄ´°¿ÚÖУ¬Ñ¡ÔñoutputÑ¡ÏÔÚCreat HEX FileµÄ¹´Ñ¡ÏîÖУ¬¹´Ñ¡¡£ÕâÑù²ÅÄÜÉú³ÉHEXÎļþ¡£
3¡¢Ñ¡Ôñ²Ëµ¥ProjectµÄÏÂÀ²Ëµ¥Build targetÑ¡Ïî,ÈçÎÞ´íÎó»òÌØ±ð¾¯¸æ£¬±àÒëÁ´½ÓÍê³Éºó¾Í»á²úÉúÏàÓ¦¹¤³ÌµÄHEXÎļþÁË¡£
[³ÌÐò¼°×¢ÊÍ]
#include
#define uchar unsigned char #define uint unsigned int
/**********************¹²ÑôÊýÂë¹Ü±àÂë±í***************************/ unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0, // 0, 1, 2, 3
0x99,0x92,0x82,0xf8,0x80,0x90, 0xff};// 4, 5, 6, 7, 8, 9, off
unsigned char dis_buf[4]; // ÏÔʾ»º³åÇø uint int0_cnt=0; //¼ÆÊý³õʼ»¯
/**********************º¯Êý¶¨Òå***********************************/ void update_disbuf(); void delayms(uint j);
/**********************Ö÷º¯Êý*************************************/ void main(void) { IE=0X81; //¿ª×ÜÖжϺÍÍâÖжÏ0 IT0=1; //ϽµÑØ´¥·¢ P0=0x00; //³õʼ»¯io¿Ú P1=1; dis_buf[0]=dis_code[0]; //»º³åÆ÷³õʼ»¯ dis_buf[1]=dis_code[0]; dis_buf[2]=dis_code[0]; dis_buf[3]=dis_code[0]; while(1) { P0=dis_buf[3]; P1=0x01; // ÏÔʾǧλ delayms(5); P0=0xff;
P0=dis_buf[2]; // ÏÔʾ°Ùλ P1=0x02; delayms(5); P0=0xff; P0=dis_buf[1]; // ÏÔʾʮλ P1=0x04; delayms(5); P0=0xff;
P0=dis_buf[0]; // ÏÔʾ¸öλ P1=0x08; delayms(5); P0=0xff; } }
/*********************INT0Öжϴ¦Àíº¯Êý*****************************/ void ex_int0()interrupt 0 { EX0=0; //¹Ø±ÕÖÐ¶Ï int0_cnt++; //¼ÆÊýÆ÷¼Ó1
if(int0_cnt>9999) //ÅÐ¶Ï int0_cnt=0; dis_buf[3]=dis_code[int0_cnt/1000]; //·ÖÀë³öǧλÊý dis_buf[2]=dis_code[int0_cnt00/100]; //·ÖÀë³ö°ÙλÊý dis_buf[1]=dis_code[int0_cnt0/10]; //·ÖÀë³öʮλÊý dis_buf[0]=dis_code[int0_cnt]; //·ÖÀë³ö¸öλÊý EX0=1; //¿ªÖÐ¶Ï }
/*********************ÑÓʱº¯Êý*************************************/ void delayms(uint j) { uchar i; for(;j>0;j--) { i=250; while(--i); i=249; while(--i); }
}
[ʵÑéÏÖÏó¼°½á¹û]
ͨ¹ýÒ»¸ö°´¼üÀ´ÌṩÖжÏÐźţ¬µ«ÊÇÓÉÓÚ°´¼üÓж¶¶¯ÏÖÏó£¬ËùÒÔÿ°´Ò»´ÎÓпÉÄܲúÉú¶à´Î¼ÆÊýÂö³å£¬µ±ÓÐÍⲿÖжÏʱ£¨Óð´¼üK1Ä£ÄâÍⲿÖжϣ©£¬¼ÆÊýÆ÷¼Ó1.
ʵÑéËÄ
¼ÆÊýÆ÷ʵÑé
[ʵÑéÄ¿µÄ]
1.ÕÆÎÕ¶¨Ê±Æ÷£¬¼ÆÊýÆ÷µÄ¼Ä´æÆ÷ÉèÖᣠ2.ѧ»á¶¨Ê±Æ÷ÖжϺ¯ÊýµÄ´¦Àí¡£
[ʵÑéÄÚÈÝ]
MCU-AT89S52 P00~P07 P20~P23 P34-ƵÂÊÊäÈë 8λ¹²ÑôÊýÂë¹Ü SA~SH C0~C3 [ʵÑéÒªÇó]
ÀûÓö¨Ê±Æ÷ºÍ¼ÆÊýÆ÷×é³ÉÒ»¸ö²âƵµç·¡£Í¨¹ýÊýÂë¹ÜÏÔʾ¡£
[ʵÑé²½Öè]
1¡¢´ò¿ªUv4 IDE»·¾³£¬Ñ¡Ôñ²Ëµ¥ProjectµÄÏÂÀ²Ëµ¥Open ProjectÑ¡Ïî, ¼ÓÔØºó׺ÃûΪuvprojµÄ¹¤³ÌÎļþ¡£
2¡¢Ñ¡Ôñ²Ëµ¥ProjectµÄÏÂÀ²Ëµ¥Options for TargetÑ¡Ïî¡£ÔÚµ¯³öµÄ´°¿ÚÖУ¬Ñ¡ÔñoutputÑ¡ÏÔÚCreat HEX FileµÄ¹´Ñ¡ÏîÖУ¬¹´Ñ¡¡£ÕâÑù²ÅÄÜÉú³ÉHEXÎļþ¡£ 3¡¢Ñ¡Ôñ²Ëµ¥ProjectµÄÏÂÀ²Ëµ¥Build targetÑ¡Ïî,ÈçÎÞ´íÎó»òÌØ±ð¾¯¸æ£¬±àÒëÁ´½ÓÍê³Éºó¾Í»á²úÉúÏàÓ¦¹¤³ÌµÄHEXÎļþÁË¡£
[³ÌÐò¼°×¢ÊÍ]
#include
#define uchar unsigned char //Êý¾ÝÀàÐͺ궨Òå #define uint unsigned int #define out P0 //IO¶Ë¿Ú¶¨Òå
/*******¹²ÑôÊýÂë¹Ü 0 £¬ 1 £¬2 £¬3 £¬ 4 £¬5 £¬6 £¬ 7£¬ 8 £¬9 ******/ uchar code seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x01};
uint i = 0; //È«¾Ö±äÁ¿ uint cnt=0;
/***********Ö÷º¯Êý*******************************************************/ void main(void) { int j; TMOD=0x15; // ¶¨Ê±Æ÷0¹¤×÷ÓÚ¼ÆÊý·½Ê½£¬¹¤×÷·½Ê½1£¬16λ¼ÆÊý // ¶¨Ê±Æ÷1¹¤×÷ÓÚ¶¨Ê±·½Ê½£¬¹¤×÷·½Ê½1£¬16λ¶¨Ê± TH0=0; // ÇåÁã¼ÆÊýÆ÷ TL0=0; TH1=0x4C; // 12M¾§Õñ¹¤×÷Ï£¬¶¨Ê±50ms TL1=0x00; TR0=1; // Æô¶¯¶¨Ê±Æ÷0 TR1=1; // Æô¶¯¶¨Ê±Æ÷1 IE=0x88; // ´ò¿ª¶¨Ê±ÖжÏ1ºÍ×ÜÖÐ¶Ï while(1) { P2=0x00; // Êä³ö°Ùλ