7£®C51רÓÃÖ¸Õ붨ÒåµÄÒ»°ã¸ñʽÊÇʲô£¿ÈçºÎÈ·¶¨×¨ÓÃÖ¸Õ붨ÒåµÄÖ¸Ïò¿Õ¼äºÍÖ¸Õë±äÁ¿±¾Éí´æ´¢µÄ¿Õ¼ä£¿
´ð:[´æ´¢ÀàÐÍ] Êý¾ÝÀàÐÍ Ö¸Ïò´æ´¢Çø *[Ö¸Õë´æ´¢Çø] Ö¸ÕëÃû1 [,*[Ö¸Õë´æ´¢Çø] Ö¸ÕëÃû2,?]
*µÄ×óÃæÊÇÖ¸Ïò´æ´¢Çø£¬*µÄÓÒÃæÊÇÖ¸Õë´æ´¢Çø
8£®C51º¯Êý¶¨ÒåµÄÒ»°ãÐÎʽÊÇʲô£¿ÈçºÎ¶¨ÒåÖжϴ¦Àí³ÌÐò£¿ÈçºÎÑ¡Ôñ¹¤×÷¼Ä´æÆ÷×飿
´ð:·µ»ØÀàÐÍ º¯ÊýÃû£¨ÐÎ²Î±í£© [º¯Êýģʽ] [reentrant] [interrupt m] [using n] {
¾Ö²¿±äÁ¿¶¨Òå Ö´ÐÐÓï¾ä }
[interrupt m]×Ö¶ÎÖеÄm¶¨ÒåÖжϴ¦Àí³ÌÐòµÄÖжϺŠ[using n]×Ö¶ÎÖеÄnÑ¡Ôñ¹¤×÷¼Ä´æÆ÷×é
9£®ÔÚC51ÖУ¬¶Ô»ã±àÓïÑÔº¯ÊýµÄÃüÃû¹æÔòÊÇÔõÑùµÄ£¬¾ßÌåµØËµ£º²»´«µÝ²ÎÊýµÄº¯ÊýÃû¸ñʽÊÇʲô£¿Í¨¹ý¼Ä´æÆ÷´«µÝ²ÎÊýµÄº¯ÊýÃû¸ñʽÊÇʲô£¿´«µÝ²ÎÊýÖØÈ뺯ÊýµÄº¯ÊýÃû¸ñʽÊÇʲô£¿
´ð:?PR£¿º¯ÊýÃû£¿Ä£¿éÃû //²»´«µÝ²ÎÊý
?PR£¿_º¯ÊýÃû£¿Ä£¿éÃû //ͨ¹ý¼Ä´æÆ÷´«µÝ²ÎÊý
?PR£¿_?º¯ÊýÃû£¿Ä£¿éÃû //¶ÔÖØÈ뺯Êýͨ¹ý¶ÑÕ»´«µÝ²ÎÊý
10£®ÔÚC51ÖУ¬º¯Êý·µ»ØÖµ´«µÝµÄ¹æÔòÊÇʲô£¿ ´ð:£¨1£©µ÷ÓÃʱ²ÎÊýµÄ´«µÝ ·ÖÈýÖÖÇé¿ö£ºÉÙÓÚµÈÓÚ3¸ö²ÎÊýʱͨ¹ý¼Ä´æÆ÷´«µÝ£¨¼Ä´æÆ÷²»¹»ÓÃʱͨ¹ý´æ´¢Çø´«µÝ£©£¬¶àÓÚ3¸öʱÓÐÒ»²¿·Öͨ¹ý´æ´¢Çø´«µÝ£¬¶ÔÓÚÖØÈ뺯Êý²ÎÊýͨ¹ý¶ÑÕ»´«µÝ¡£Í¨¹ý¼Ä´æÆ÷´«µÝËÙ¶È×î¿ì¡£ £¨2£©º¯Êý·µ»ØÖµµÄ´«µÝ
µ±º¯ÊýÓзµ»ØÖµÊ±£¬Æä´«µÝ¶¼ÊÇͨ¹ý¼Ä´æÆ÷
11£®ÔÚC51ÖУ¬ÔõÑùǶÈë»ã±àÓïÑÔ³ÌÐò£¿ÔõÑù½øÐд¦ÀíʵÏÖ»ìºÏ±à³Ì£¿ ´ð:Æä·½·¨ÊÇÓñàÒë¿ØÖÆÖ¸Áî¡°#pragma src¡±¡¢¡°#pragma asm¡±ºÍ¡°#pragma endasm¡±ÊµÏÖ¡£±àÒë¿ØÖÆÃüÁî¡°#pragma src¡±ÊÇ¿ØÖƱàÒëÆ÷½«CÔ´Îļþ±àÒë³É»ã±àÎļþ£¬¡°#pragma src¡±Òª·ÅÔÚÎļþµÄ¿ªÊ¼£»¡°#pragma asm¡±ºÍ¡°#pragma endasm¡±Ö¸Ê¾»ã±àÓïÑÔ³ÌÐòµÄ¿ªÊ¼ºÍ½áÊø£¬·Ö±ð·ÅÔÚ»ã±à³ÌÐò¶ÎµÄÇ°ÃæºÍºóÃæ¡£ ¶ÔÓÚº¯ÊýµÄµ÷Ó÷½·¨£¬Óëµ÷Óûã±àÓïÑÔÖеĺ¯ÊýÒ»Ñù£¬
ÔÚCÓïÑÔÎļþÖе÷Óûã±àÓïÑÔÖеĺ¯Êý£¬±ØÐëÏÈÉùÃ÷ÔÙµ÷Óá£ÉùÃ÷¸ñʽÈçÏ£º extern ·µ»ØÖµÀàÐÍ º¯ÊýÃû£¨²ÎÊý±í£©£»
12£®ÔÚC51ÖÐÈçºÎ¶¨ÒåÄ£¿éÃû£¿ÔÚC51ÎļþÖеÄÄ£¿éÃûÊÇʲô£¿ ´ð:Ä£¿é¶¨Òå¸ñʽÈçÏ£º NAME Ä£¿éÃû
9
13£®ÔÚ»ã±àÓïÑÔÎļþÖУºÔõÑùÉùÃ÷º¯Êý¶Î£¿ÔõÑùÉùÃ÷¹«¹²º¯Êý£¿ÔõÑùÉùÃ÷ÒýÓú¯Êý£¿ÔõÑùÉùÃ÷ÒýÓñäÁ¿£¿¶¨Ò庯ÊýµÄ¸ñʽÊÇʲô£¿ ´ð:¶Ô±¾Ä£¿é¶¨ÒåµÄº¯Êý¶Î×÷ÉùÃ÷£¬Æä¸ñʽΪ£º ?PR?º¯ÊýÃû£¿Ä£¿éÃû SEGMENT CODE ¹«¹²º¯ÊýÉùÃ÷¡£ÉùÃ÷¸ñʽΪ£º PUBLIC º¯ÊýÃû
ÒýÓÃÉùÃ÷¡£ÉùÃ÷¸ñʽΪ£º EXTRN CODE£¨º¯ÊýÃû£© ÒýÓÃÉùÃ÷¡£ÉùÃ÷¸ñʽΪ£º
EXTRN ´æ´¢ÇøÓòÀàÐÍ£¨±äÁ¿Ãû£© »ã±àÓïÑÔº¯ÊýµÄ¸ñʽÈçÏ£º RSEG ?PR?º¯ÊýÃû?Ä£¿éÃû º¯ÊýÃû£º
14£®ÔÚC51ÖÐÔõÑù°Ñº¯Êý¶¨Ò嵽ȷ¶¨µÄλÖã¿ ´ð:¶Ôº¯ÊýµÄ¶¨Î»·½·¨£¬ CSEG AT 001BH
15£®ÈçºÎÔÚC51ÎļþºÍ»ã±àÓïÑÔÎļþÖÐÏ໥µ÷ÓöԷ½ÎļþÖеĺ¯Êý£¿
´ð:»ã±àÓïÑÔÎļþÖжÔÓÚº¯ÊýµÄµ÷Ó÷½·¨£¬Óëµ÷Óûã±àÓïÑÔÖеĺ¯ÊýÒ»Ñù£¬È磺 LCALL DISPLAY
ÔÚCÓïÑÔÎļþÖе÷Óûã±àÓïÑÔÖеĺ¯Êý£¬±ØÐëÏÈÉùÃ÷ÔÙµ÷Óá£ÉùÃ÷¸ñʽÈçÏ£º extern ·µ»ØÖµÀàÐÍ º¯ÊýÃû£¨²ÎÊý±í£©£»
ÀýÈ磺 extern unsigned char right_shift ( char, char );
16£®ÔÚC51ÖУ¬ÈçºÎ·ÃÎÊDATA¿Õ¼ä¡¢PDATA¿Õ¼ä¡¢XDATA¿Õ¼ä¡¢CODE¿Õ¼äij¸öÈ·¶¨µØÖ·µ¥Ôª£¿
´ð:ÓÃÖ¸Õ붨ÒåµÄ·ÃÎÊ´æ´¢Æ÷µÄºê
ʹÓÃʱÐèÒªÓÃÔ¤´¦ÀíÃüÁî°Ñ¸ÃÍ·Îļþ°üº¬µ½ÎļþÖУ¬ÐÎʽΪ£º#include
£¨1£©°´×Ö½Ú·ÃÎÊ´æ´¢Æ÷ºêµÄÐÎʽ ºêÃû[µØÖ·]
£¨2£©°´ÕûÐÍÊý·ÃÎÊ´æ´¢Æ÷ºêµÄÐÎʽ ºêÃû[ϱê]
17£®ÔÚij³ÌÐòÖÐÐèÒª¶¨ÒåÈçϱäÁ¿£º
£¨1£©¶¨ÒåÊýÂë¹ÜµÄÏÔʾ0~9µÄ¹²Òõ¼«ÏÔʾ´úÂ루0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07, 0x7f, 0x6f£©Êý×édis_code£¬½«Æä¶¨ÒåÔÚCODEÇø¡£
£¨2£©¶¨Ò嶨ʱÆ÷/¼ÆÊýÆ÷0µÄ¸³¼ÆÊýÖµµÄ¸ß¡¢µÍ×Ö½Ú±äÁ¿TL0_LºÍTH0_H£¬½«Æä¶¨ÒåÔÚDATAÈ¥ÇøµÄ0x30¡¢0x31´¦¡£
£¨3£©¶¨Ò峤¶ÈΪ20µÄÎÞ·ûºÅ×Ö·ûÐÍÊý×édata_bufÓÚIDATAÇøÖС£ £¨4£©¶¨Ò峤¶ÈΪ100µÄÎÞ·ûºÅ×Ö·ûÐÍÊý×édata_arrayÓÚXDATAÇøÖС£ £¨5£©Ïȶ¨ÒåÒ»¸öÎÞ·ûºÅ×Ö·ûÐͱäÁ¿statusÓÚBDATAÇøÖУ¬ÔÙ¶¨Òå8¸öÓëstatus
10
µÄ8¸öλ¶ÔÓ¦µÄλ±äÁ¿flag_lamp1¡¢flag_lamp2¡¢flag_machine1¡¢flag_machine2¡¢flag_port1¡¢flag_port2¡¢flag_calcu1ºÍcalcu2£¨´ÓµÍλµ½¸ß룩¡£
´ð:£¨1£©unsigned char code dis_code[10]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f};
£¨2£©unsigned char data TL0_L _at_ 0x30, TH0_H _at_ 0x31; £¨3£©unsigned char idata data_buf[20]£» £¨4£©unsigned char xdata data_array[100]£» £¨5£©unsigned char bdata status£» sbit flag_lamp1=status^0; sbit flag_lamp2=status^1; sbit flag_machine1=status^2; sbit flag_machine2=status^3; sbit flag_port1=status^4; sbit flag_port2=status^5; sbit flag_calcu1=status^6; sbit flag_calcu2=status^7;
18£®ÔÚ89C52µ¥Æ¬»úÖÐÔö¼ÓÁ˶¨Ê±Æ÷/¼ÆÊýÆ÷2£¨T2£©£¬ÐÞ¸ÄÍ·Îļþ¡°REG51.H¡±£¬Ìí¼ÓÈçÏÂÄÚÈÝ£º
£¨1£©ÌØÊ⹦ÄܼĴæÆ÷T2CON¡¢T2MOD¡¢RCAP2L¡¢RCAP2H¡¢TL2¡¢TH2£¬µØÖ··Ö±ðΪ0xc8~ 0xcd¡£ £¨2£©¶ÔT2CONµÄ8¸öλ·Ö±ð¶¨Òåλ±äÁ¿CP_RL2¡¢C_T2¡¢TR2¡¢EXEN2¡¢TCLK¡¢RCLK¡¢EXF2¡¢ºÍTF2£¨´ÓµÍλµ½¸ß룩¡£
£¨3£©¶¨Òåλ±äÁ¿T2¡¢T2EX¶ÔÓ¦ÓÚP1¿ÚµÄµÚ0λºÍµÚ1λ£»¶¨Òåλ±äÁ¿ET2¶ÔÓ¦ÓÚEIµÄµÚ5λ£»¶¨Òåλ±äÁ¿PT2¶ÔÓ¦ÓÚIPµÄµÚ5λ£»
£¨4£©¶ÔP1¿ÚµÄ8¸öλ·Ö±ð¶¨Òåλ±äÁ¿P0_0¡¢P0_1¡¢P0_2¡¢P0_3¡¢P0_4¡¢P0_5¡¢P0_6ºÍP0_7£¨´ÓµÍλµ½¸ß룩¡£ ´ð:£¨1£© sfr T2CON=0xc8; sfr T2MOD=0xc9; sfr RCAP2L=0xca; sfr RCAP2H=0xcb; sfr TL2=0xcc; sfr TH2=0xcd; £¨2£©
sbit CP_RL2=T2CON^0; sbit C_T2=T2CON^1; sbit TR2=T2CON^2; sbit EXEN2=T2CON^3; sbit TCLK=T2CON^4; sbit RCLK=T2CON^5; sbit EXF2=T2CON^6; sbit TF2=T2CON^7;
11
£¨3£©
sbit T2=P1^0; sbit T2EX=P1^1; sbit ET2=EI^5; sbit PT2=IP^5; £¨4£©
sbit P0_0=P0^0; sbit P0_1=P0^1; sbit P0_2=P0^2; sbit P0_3=P0^3; sbit P0_4=P0^4; sbit P0_5=P0^5; sbit P0_6=P0^6; sbit P0_7=P0^7; 19£®±àдһC51º¯Êý£¬°Ñ´Ó¼üÅÌÊäÈëµÄ5λʮ½øÖÆÊýÊýת»»³ÉÒ»¸öÎÞ·ûºÅÕûÐÍÊý£¨¼ÙÉè䳬³öÕûÐÍÊý·¶Î§£©¡£Éè´Ó¼üÅÌÊäÈëµÄÊý´æ·ÅÔÚÒ»ÎÞ·ûºÅÊý×éÖУ¬µÍλÊýΪµÍϱêÔªËØ¡£
unsigned char data key_buffer[5]; unsigned int trans_int(void) {
unsigned char data i; unsigned int data temp=0; for(i=0;i<5;i++) {
temp=temp*10+key_buffer[i]-0x30; }
return temp; }
20£®±àдһC51º¯Êý£¬°ÑÒ»ÕûÐÍÊý°´Ê®½øÖÆÊý½«Æä¸÷λ·ÖÀ룬·ÖÀëºó·ÅÔÚÒ»ÎÞ·ûºÅÊý×éÖУ¬±ãÓÚÏÔʾ¡£ÒªÇó°ÑµÍλÊý×÷ΪµÍϱêÔªËØ¡£ unsigned char data shu[5]; void main(unsigned int x) {
unsigned int temp; unsigned char i; for(i=0;i<4;i++) {
shu[i]=temp; temp=temp/10;
}
shu[4]=temp; }
12