µ¥Æ¬»ú¿Îºó´ð°¸9 ÏÂÔØ±¾ÎÄ

ϰÌâ9

1. ijϵͳƬÍâRAMµÄƬѡµç·Èçͼ9-38Ëùʾ£ºRAM¹²7·£¬ÓÐ2K¡Á8λºÍ1K¡Á8λÁ½ÖÖоƬ£¬ÆäƬѡÐźŶ¼ÊÇµÍµçÆ½ÓÐЧ¡£ÇëΪ¸÷·RAMоƬעÃ÷ËüµÄÈÝÁ¿ºÍµØÖ··¶Î§¡£

A15A14E3E1E274LS138A13A12A11A10Y0Y1Y2Y4Y5µÚһ·Ƭѡ¶ËµÚ¶þ·Ƭѡ¶ËµÚÈý·Ƭѡ¶Ë¡Ý1¡Ý1¡Ý1¡Ý1µÚËÄ·Ƭѡ¶ËµÚÎå·Ƭѡ¶ËµÚÁù·Ƭѡ¶ËµÚÆß·Ƭѡ¶ËCBA

ͼ9-38 µÚ1Ìâͼ

½â£ºµÚһ·оƬµÄµØÖ·Îª8000H-87FFH£»

µÚ¶þ·оƬµÄµØÖ·Îª8800H-8FFFH£» µÚÈý·оƬµÄµØÖ·Îª9000H-97FFH£» µÚËÄ·оƬµÄµØÖ·ÎªA000H-A3FFH£» µÚÎå·оƬµÄµØÖ·ÎªA400H-A7FFH£» µÚÁù·оƬµÄµØÖ·ÎªA800H-ABFFH£» µÚÆß·оƬµÄµØÖ·ÎªAC00H-AFFFH¡£

2. ¶ÔAT89C51µ¥Æ¬»úÍâÀ©4Ƭ¾²Ì¬RAM62128оƬ£¬Çë»­³öÓ²¼þµç·ͼ£¬Ð´³öÿƬоƬµÄµØÖ·¡£ ½â£º

GP2.7P2.6P2.0-P2.5ALEAT89C51G74LS373Q0-Q7D0-D7OE8P0.0-P0.78WRRDY3Y2B74LS139Y1AY0688A0-A7A8-A1362128(1)CED0-D7OE8WE6868686EAA0-A7A8-A1362128(2)CED0-D7OE8WEA0-A7A8-A1362128(3)CED0-D7OE8WEA0-A7A8-A1362128(4)CED0-D7OE8WE62128(1)£º0000H-3FFFH£¬62128(2)£º4000H-7FFFH£¬62128(3)£º8000H-BFFFH£¬ 62128(4)£ºC000H-FFFFH

3. 8255AÓм¸ÖÖ¹¤×÷·½Ê½?ÈçºÎ½øÐÐÑ¡Ôñ?

½â£º8255A¹²ÓÐÈýÖÖ¹¤×÷·½Ê½£¬Ó÷½Ê½¿ØÖÆ×ÖÀ´Ñ¡Ôñ¡£

4. ÏÖÓÐһƬAT89C51µ¥Æ¬»ú£¬À©Õ¹ÁËһƬ8255A£¬Èô°Ñ8255AµÄB¿ÚÓÃ×÷ÊäÈ룬ÿһλ½ÓÒ»¸ö¿ª¹Ø£¬A¿ÚÓÃ×÷Êä³ö£¬Ã¿Ò»Î»½ÓÒ»¸ö·¢¹â¶þ¼«¹Ü£¬ÇëÓÃproteusÈí¼þ»­³öµç·ԭÀíͼ£¬²¢±àд³öB¿Úijһλ¿ª¹Ø½ÓµÍµçƽʱ£¬A¿ÚÏàӦλ·¢¹â¶þ¼«¹Ü±»µãÁÁµÄ³ÌÐò¡£ ½â£ºµç·ÈçÏÂͼ£º

³ÌÐòÈçÏ£º #include #include #include #define uint unsigned int #define uchar unsigned char

//PA,PB,PC¼°ÃüÁî¶Ë¿ÚµØÖ·¶¨Òå #define PA XBYTE[0x0000] #define PB XBYTE[0x0001] #define PC XBYTE[0x0002] #define COM XBYTE[0x0003]

void main() {

uchar k;

COM=0x82;//¿ØÖÆ×Ö while(1)

}

{ k = PB; PA = k; }

5. °´ÕÕͼ9-18Ëùʾ8255ÓëAT89C52µÄÁ¬½Óͼ£¬ÓÃ8255C¿ÚµÄPC3Òý½ÅÏòÍâÊä³öÁ¬ÐøµÄÕý·½²¨Ðźţ¬ÆµÂÊΪ500Hz¡£ÊÔ±à³Ì£¬²¢ÓÃproteus·ÂÕæÑéÖ¤¡£

½â£ºÀûÓö¨Ê±Æ÷0£¬Ã¿1msÖжÏÒ»´Î£¬ÔÚÖжϷþÎñ³ÌÐòÖиıäPC3µÄ״̬¡£ ³ÌÐòÈçÏ£º #include #include #define PA8255

XBYTE[0xe000] /* ¶¨Òå8255A¿ÚµØÖ· */

#define PB8255 XBYTE[0xe001] /* ¶¨Òå8255B¿ÚµØÖ· */ #define PC8255 XBYTE[0xe002] /* ¶¨Òå8255C¿ÚµØÖ· */ #define COM8255 void timer0init(); bit k;

unsigned char aa; void init8255(void) ; void main (void) {

timer0init(); init8255();

XBYTE[0xe003] /* ¶¨Òå8255¿ØÖƼĴæÆ÷µØÖ· */

COM8255=0x07; /*PC3ÖÃ1*/ k=0; }

void init8255(void) { }

void timer0init() {

TMOD=0x01; //ÉèÖÃT0Ϊ¶¨Ê±Æ÷ģʽ£¬¹¤×÷ÔÚ·½Ê½1

COM8255=0x80;/*¹¤×÷·½Ê½Ñ¡Ôñ×ÖËÍÈë8255¿ØÖƼĴæÆ÷£¬ÉèÖÃA¡¢B¡¢C¿ÚΪ»ù±¾I/OÊä³ö·½Ê½ */

while (1);

}

TH0=(65536-1000)/256; TL0=(65536-1000)%6; ET0=1; //ÔÊÐíT0ÖÐ¶Ï TR0=1; // Æô¶¯T0

EA=1; //¿ª×ÜÖжÏ

void timer0() interrupt 1//¶¨Ê±Æ÷0ÿ1msÖжÏÒ»´Î {

TH0=(65536-1000)/256; TL0=(65536-1000)%6;

if(k==0) {

COM8255=0x06;/*PC3Çå0*/ k=~k; } else {

COM8255=0x07;/*PC3ÖÃ1*/ k=~k; } }

6. ΪʲôҪ½øÐа´¼üÏû¶¶?°´¼üÏû¶¶µÄ·½·¨Óм¸ÖÖ?

½â£º°´¼üÊÇÀûÓûúе´¥µãµÄºÏ¡¢¶ÏÀ´ÊµÏÖ¼üµÄ±ÕºÏÓëÊÍ·Å£¬ÓÉÓÚµ¯ÐÔ×÷Ó㬻úе´¥µãÔڱպϼ°¶Ï¿ªË²¼ä»áÓж¶¶¯µÄ¹ý³Ì£¬´Ó¶øÊ¹¼üÊäÈëµçѹµÄÐźÅÒ²´æÔÚ¶¶¶¯ÏÖÏó¡£

È¥³ý¶¶¶¯µÄ·½·¨Ò»°ãÓÐÓ²¼þºÍÈí¼þÁ½ÖÖ¡£Ó²¼þ·½·¨¾ÍÊÇÔÚ°´¼üÊä³öͨµÀÉÏÌí¼ÓÈ¥¶¶¶¯µç·£¬´Ó¸ù±¾ÉϱÜÃâµçѹ¶¶¶¯µÄ²úÉú£¬È¥¶¶¶¯µç·¿ÉÒÔÊǵ¥ÎÈ̬µç·»òÕßÂ˲¨µç·¡£Èí¼þ·½·¨Í¨³£ÊÇÔÚ¼ì²âµ½Óмü°´ÏÂʱÑÓ³Ù10¡«20msµÄʱ¼ä£¬´ý¶¶¶¯ÆÚ¹ýÈ¥ºó£¬Ôٴμì²â°´¼üµÄ״̬£¬Èç¹ûÈÔȻΪ±ÕºÏ״̬£¬²ÅÈÏΪÊÇÓмü°´Ï£¬·ñÔòÈÏΪÊÇÒ»¸öÈŶ¯Ðźš£°´¼üÊͷŵĹý³ÌÓë´ËÏàͬ£¬¶¼ÒªÀûÓÃÑÓʱ½øÐÐÏû¶¶´¦Àí¡£ÓÉÓÚÈ˵İ´¼üËÙ¶ÈÓ뵥Ƭ»úµÄÔËÐÐËÙ¶ÈÏà±ÈÒªÂýºÜ¶à£¬ËùÒÔ£¬Èí¼þÑÓʱµÄ·½·¨¼òµ¥¿ÉÐУ¬¶øÇÒ²»ÐèÒªÔö¼ÓÓ²¼þµç·£¬³É±¾µÍ£¬Òò¶ø±»¹ã·º²ÉÓá£

7. °´¼üÊäÈë³ÌÐòÓ¦¾ß±¸ÄÄЩ¹¦ÄÜ? ½â£º¾ßÓÐÏÂÁй¦ÄÜ£º

(1) È·¶¨¼üÊÇ·ñ±ÕºÏ;£¨2£©°´¼üÏû¶¶´¦Àí£»(3)È·¶¨±ÕºÏ¼üµÄλÖã»(4)È·¶¨°´¼üÊÇ·ñÉϷã»(5) ¶Ô°´¼ü½øÐд¦Àí¡£

8. ÀûÓÃLEDÏÔʾÆ÷Éè¼ÆÒ»¸öͳ¼Æ°´¼ü´ÎÊýµÄϵͳ£¬Äܹ»ÊµÊ±½«µ±Ç°°´¼ü´ÎÊýÒÔÊ®½øÖÆÐÎʽÏÔʾÔÚ2λLEDÏÔʾÆ÷ÉÏ¡£

(1)ËùÉè¼ÆµÄ Proteus·ÂÕæµç·Èçͼ5-13Ëùʾ¡£

ͼ5-13 ¼ÆÊýÆ÷µÄ·ÂÕæµç·ÓëЧ¹ûͼ

Á½Î»ÊýÂë¹ÜÓ뵥Ƭ»úÏàÁ¬Ê±£¬¿ÉÒÔ²ÉÓþ²Ì¬ÏÔʾ·½Ê½£¬Ò²¿ÉÒÔ²ÉÓö¯Ì¬ÏÔʾ·½Ê½¡£ÕâÀï²ÉÓö¯Ì¬ÏÔʾ·½Ê½£¬½«Á½¸öÊýÂë¹ÜµÄ¶ÎÂëÁ¬½Óµ½µ¥Æ¬»úµÄP0¿Ú£¬P0¿Úͨ¹ý470¦¸µÄÉÏÀ­µç×è½Ó+5V£¬Á½¸öÊýÂë¹ÜµÄλѡÓÉP2.6ºÍP2.7Ñ¡ÖС£Í¼5-13ÖÐÊýÂë¹ÜÊǹ²Òõ¼«µÄ¡£ (2) ³ÌÐòÉè¼ÆÈçÏ£º

#include #define uchar unsigned char sbit key=P3^0; sbit ge= P2^7; sbit shi=P2^6;

uchar dd; // ddΪÏÔʾµÄÊý×Ö

uchar f0; // f0Ϊ¼ü°´Ï¹ýµÄ±êÖ¾ uchar time=0,count=0;

uchar code dis[] ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//¶ÎÂë /*************ÑÓʱ³ÌÐò*************/ void delay(uchar N) {

uchar i,j; for(i=0;i

/***************ÏÔʾ³ÌÐò*************/ void display(void) {

P0=dis[dd];

//ÏÔʾ¸öλ

ge=0; delay(3); ge=1;

P0=dis[dd/10]; //ÏÔʾʮλ shi=0; delay(3); shi=1; }

/****************Ö÷³ÌÐò***************/ void main() {

dd=0; //¿ªÊ¼ÏÔʾµÄÊý×ÖΪ0

f0=1; //f0Ϊ°´Ï¹ý¼üµÄ±ê־룬Èç¹û°´Ï¹ý¼ü£¬f0=0£¬·ñÔòf0=1 while(1) {

while (key==1)//¼üδ°´Ï£¬ÏÔʾ

{

display();

if (f0==0)

{ dd=dd+1; f0=1; }

}

while (key==0)//¼ü°´Ï£¬ÏÔʾ£¬±êÖ¾f0=0 { } } (3) ·ÂÕæÐ§¹û

0¡«99¼ÆÊýÆ÷µÄ·ÂÕæÐ§¹ûͼÈçͼ5-13Ëùʾ£¬Í¼ÖÐÏÔʾµÄÊÇ23¡£

9. LCD1602ÓëAT89C52µ¥Æ¬»úÁ¬½ÓµÄ·ÂÕæµç·Èçͼ9-36Ëùʾ¡£ÓÃCÓïÑÔ±à³Ì£¬ÊµÏÖµÚÒ»ÐдÓÓÒ²àÒÆÈë¡°Hello everyone¡±£¬Í¬Ê±µÚ¶þÐдÓÓÒ²àÒÆÈë¡°Welcome to here!¡±£¬ÒÆÈëËÙ¶È×Ô¶¨£¬È»ºóÍ£ÁôÔÚÆÁÄ»ÉÏ¡£

display(); f0=0;

}

½â£º³ÌÐòÉè¼ÆÈçÏ£º³ÌÐòÈçÏ£º #include #define uchar unsigned char #define uint unsigned int

uchar code table[]=%uchar code table1[]=\sbit lcden=P3^4;//Òº¾§Ê¹ÄܶË

sbit lcdrs=P3^5; //Òº¾§Êý¾ÝÃüÁîÑ¡Ôñ¶Ë uchar num;

void delay(uint z)//ÑÓʱ×Ó³ÌÐò { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }

void write_com(uchar com)//дÃüÁÊý {

lcdrs=0;//Ñ¡ÔñдÃüÁîģʽ

P0=com;//½«ÒªÐ´µÄÃüÁî×ÖË͵½Êý¾Ý×ÜÏßÉÏ delay(5);//ÉÔ΢×öÑÓʱÒÔ´ýÊý¾ÝÎȶ¨

lcden=1;//ʹÄܶ˸øÒ»¸ö¸ßÂö³å£¬ÒòΪ³õʼ»¯º¯ÊýÖÐÒѽ«lcdenÖÃΪ0 delay(5);//ÉÔ×öÑÓʱ

lcden=0;//½«Ê¹ÄܶËÖÃ0ÒÔÍê³É¸ßÂö³å }

void write_data(uchar date) { lcdrs=1; P0=date; delay(5);

lcden=1; delay(5); lcden=0; } void init() { lcden=0;

write_com(0x38);//ÉèÖÃ16¡Á2ÏÔʾ£¬5¡Á7µãÕó£¬8λÊý¾Ý½Ó¿Ú write_com(0x0f); //ÉèÖÿªÏÔʾ£¬²»ÏÔʾ¹â±ê write_com(0x06);//дһ¸ö×Ö·ûºóµØÖ·Ö¸Õë¼Ó1 write_com(0x01);//ÏÔʾÇå0£¬Êý¾ÝÖ¸ÕëÇå0 }

void main() { init();

write_com(0x80+0x10);//ÏȽ«Êý¾ÝÖ¸Õ붨λµ½µÚÒ»ÐеÚÒ»¸ö×Ö´¦ for(num=0;num<15;num++)//×ö¼ò¶ÌÑÓʱ {

write_data(table[num]); delay(5); }

write_com(0x80+0x50);//дµÚ¶þÐÐÊ±ÖØÐ¶¨Î»Êý¾ÝÖ¸Õë for(num=0;num<16;num++) {

write_data(table1[num]); delay(20); }

for(num=0;num<16;num++) {

}

write_com(0x1c); delay(100);

while(1); }