»ùÓÚ8086µÄµç×ÓÍòÄêÀú´òÓ¡¸å ÏÂÔØ±¾ÎÄ

¹¤×÷ÓÚ·½Ê½Èý£¬OUT0Êä³öËùÐèÆµÂÊ£¬Óë8255£¨U10£©Ð¾Æ¬µÄC¿ÚÏàÁ¬£¬ÊµÏÖ¶¨Ê±£»B¿ÚCLK1ͬÑùÓëÐźÅÔ´ÏàÁ¬£¬¹¤×÷ÓÚ·½Ê½Ò»£¬ÓÃÒÔ²úÉúÕûµã±¨Ê±µÄÐźš£

8253µÄÕûÌå½á¹¹Í¼Èçͼ2Ëùʾ¡£

ͼ2 8253Á¬½Óͼ

µÚÈýÕ ϵͳÉè¼Æ

3.1 ×ÜÌåÉè¼Æ

ϵͳ×ÜÉè¼ÆÍ¼¼ûͼ3¡£

ʱ¼äÊý¾Ý 8 2 5 5 CLK(¶¨Ê±) A

ͼ3×ÜÌåÉè¼ÆÍ¼

8 0 8 6 CPU ÊýÂë¹Ü Êý¾Ý 8253 ϵͳÔËÐкó£¬ÓÉ8253²úÉúʱÖÓÐźţ¬ÊäÈë8255A(U10)µÄC¿Ú£¬É¨ÃèC¿ÚµÄ

4

״̬£¬µ±É¨Ãèµ½Ò»¸öʱÖÓÐźŵÄʱºò£¬¿ØÖÆÃë¼ÓÒ»£¬ÕâÑù¾ÍʵÏÖÁ˶¨Ê±¡£

3.2 Ó²¼þµç·Éè¼Æ

8086CPUÓëÈýƬ74LS373ºÍÁ½Æ¬74LS245×é³É×îСϵͳ£¬Ê¹8086¹¤×÷ÔÚ×îСϵͳģʽ£¬ÈýƬ74LS373µÄÊä³ö×÷Ϊ8086µÄµØÖ·×ÜÏߣ¨A0-A19£©,Á½Æ¬74LS245µÄÊä³ö×÷Ϊ8086µÄÊý¾Ý×ÜÏߣ¨D0-D15£©¡£

ÒÔһƬ74LS138×÷ΪƬѡ£¬74LS138µÄÊäÈëÊÇA12-A15£¬Êä³öΪIO0~IO7£¬·Ö±ð×÷ΪÁ½Æ¬8255AºÍ8253µÄƬѡÐźš£

µÚһƬ8255A£¨U10£©µÄA¿ÚºÍB¿ÚºÍC¿Ú¶¼¹¤×÷ÔÚ·½Ê½0£¨»ù±¾ÊäÈëÊä³öģʽ£©£¬ÆäÖÐA¿ÚºÍB¿ÚÊä³ö£¬C¿ÚÊäÈ루ɨÃèʱÖÓÐźţ©£¬A¿Ú×÷ΪÄêÔÂÈÕÊä³öÊýÂë¹ÜµÄƬѡÐźţ¬B¿ÚÊä³öÄêÔÂÈÕµ½°ËλÊýÂë¹Ü¡£

µÚ¶þƬ8255A£¨U8£©µÄA¿ÚºÍB¿ÚºÍC¿Ú¶¼¹¤×÷ÔÚ·½Ê½0£¨»ù±¾ÊäÈëÊä³öģʽ£©£¬ÆäÖÐA¿Ú²»Óã¬B¿ÚºÍC¿ÚÊäÈ룬C¿ÚÓÃÀ´×÷Ϊʱ·ÖÃëºÍÐÇÆÚÊä³öÊýÂë¹ÜµÄƬѡÐźţ¬B¿ÚÓÃÀ´Êä³öʱ·ÖÃëºÍÐÇÆÚµ½ÊýÂë¹Ü¡£

8253µÄ0¿ÚÊä³öʱÖÓÐźÅÁ¬½Óµ½µÚһƬ8255A(U10)µÄC¿Ú£¬¹¤×÷ÔÚ·½Ê½3£¬ÓÃÒÔ¶¨Ê±¡£1¿ÚÓÃÒÔ²úÉúÄÖÖÓÐźţ¬¹¤×÷ÔÚ·½Ê½0£¬Çý¶¯·äÃùÆ÷·¢Éù¡£

°ËλÊýÂë¹ÜÓÃÒÔÏÔʾÄêÔÂÈÕ£¬Æ¬Ñ¡ÐźŽÓÈë8255A(U10)µÄA¿Ú£¬ÏÔʾÐźŽÓÈë8255A(U10)µÄB¿Ú¡£

Èý¸öÁ½Î»ÊýÂë¹ÜºÍÒ»¸öµ¥Î»ÊýÂë¹ÜÓÃÀ´ÏÔʾʱ·ÖÃëºÍÐÇÆÚ£¬Æ¬Ñ¡ÐźŶ¼½ÓÈë8255A(U8)µÄC¿Ú£¬ÏÔʾÐźŽÓÈë8255A(U8)µÄB¿Ú¡£ Ó²¼þµç·Á¬½Óͼ£º

5

3.3 Èí¼þ±à³ÌÉè¼Æ

3.3.1 »ã±à³ÌÐòÁ÷³Ìͼ

¿ªÊ¼

ÅжÏÈòÄê¡¢Ô´ó¡¢ÔÂͼ3 »ã±à³ÌÐòÁ÷ С£¬Ê±¼ä´¦Àí ³õʼ»¯Á½Æ¬8255ºÍ8253 дÈëÊý¾Ý²úÉúƬѡÐźźÍʱ¼äÐźŠËÍÈëÊýÂë¹ÜÏÔʾ 6

3.3.2 ³ÌÐò½âÎö

//µÚһƬ8255

#define IOCON 8006H #define IOA 8000H #define IOB 8002H #define IOC 8004H

//µÚ¶þƬ8255

#define IOCON1 9006H #define IOA1 9000H #define IOB1 9002H #define IOC1 9004H //8253

#define A_0 0xA000 #define A_1 0xA002 #define A_2 0xA004 #define A_CON 0xA006

int table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; int xqing[]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};//ÐÇÆÚ1..7 int shuma[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //±äÁ¿ÉùÃ÷

int n1;//Äê·ÝµÄǧλ int n2;//Äê·ÝµÄ°Ùλ int n3;//Äê·ÝµÄʮλ int n4;//Äê·ÝµÄ¸öλ int nianx;

int y1;//Ô·ݵÄʮλ int y2;//Ô·ݵĸöλ int yuex;

int t1;//ÌìµÄʮλ int t2;//ÌìµÄ¸öλ int tianx;

int s1;//СʱµÄʮλ int s2;//СʱµÄ¸öλ int f1;//·ÖÖÓµÄʮλ int f2;//·ÖÖӵĸöλ int fenx;

int m1;//ÃëµÄʮλ int m2;//ÃëµÄ¸öλ int miaox; int xq;//ÐÇÆÚ

7

//¹²Ñô¼«±àÂë0..9