¹ØÓÚµ¥Æ¬»úCÓïÑÔ»ã±àʵÀý

ÓÃAT89S51µ¥Æ¬»úµÄ¶¨Ê±/¼ÆÊýÆ÷T0²úÉúÒ»ÃëµÄ¶¨Ê±Ê±¼ä£¬×÷ΪÃë¼ÆÊýʱ¼ä£¬µ±Ò»Ãë²úÉúʱ£¬Ãë¼ÆÊý¼Ó1£¬Ãë¼ÆÊýµ½60ʱ£¬×Ô¶¯´Ó0¿ªÊ¼¡£Ó²¼þµç·ÈçÏÂͼËùʾ 2£® µç·ԭÀíͼ

ͼ4.15.1

3£® ϵͳ°åÉÏÓ²¼þÁ¬Ïß

<1£® °Ñ¡°µ¥Æ¬»úϵͳ¡±ÇøÓòÖеÄP0.0/AD0£­P0.7/AD7¶Ë¿ÚÓÃ8оÅÅÏßÁ¬½Óµ½¡°ËÄ·¾²Ì¬ÊýÂëÏÔʾ

Ä£¿é¡±ÇøÓòÖеÄÈÎÒ»¸öa£­h¶Ë¿ÚÉÏ£»ÒªÇó£ºP0.0/AD0¶ÔÓ¦×Åa£¬P0.1/AD1¶ÔÓ¦×Åb£¬¡­¡­£¬

P0.7/AD7¶ÔÓ¦×Åh¡£ <2£® °Ñ¡°µ¥Æ¬»úϵͳ¡±ÇøÓòÖеÄP2.0/A8£­P2.7/A15¶Ë¿ÚÓÃ8оÅÅÏßÁ¬½Óµ½¡°ËÄ·¾²Ì¬ÊýÂëÏÔʾģ

¿é¡±ÇøÓòÖеÄÈÎÒ»¸öa£­h¶Ë¿ÚÉÏ£»ÒªÇó£ºP2.0/A8¶ÔÓ¦×Åa£¬P2.1/A9¶ÔÓ¦×Åb£¬¡­¡­£¬

P2.7/A15¶ÔÓ¦×Åh¡£ 4£® ³ÌÐòÉè¼ÆÄÚÈÝ

AT89S51µ¥Æ¬»úµÄÄÚ²¿16λ¶¨Ê±/¼ÆÊýÆ÷ÊÇÒ»¸ö¿É±à³Ì¶¨Ê±/¼ÆÊýÆ÷£¬Ëü¼È¿ÉÒÔ¹¤×÷ÔÚ13λ¶¨Ê±·½Ê½£¬Ò²¿ÉÒÔ¹¤×÷ÔÚ16λ¶¨Ê±·½Ê½ºÍ8λ¶¨Ê±·½Ê½¡£Ö»ÒªÍ¨¹ýÉèÖÃÌØÊ⹦ÄܼĴæÆ÷TMOD£¬¼´¿ÉÍê³É¡£¶¨Ê±/¼ÆÊýÆ÷ºÎʱ¹¤×÷Ò²ÊÇͨ¹ýÈí¼þÀ´É趨TCONÌØÊ⹦ÄܼĴæÆ÷À´Íê³ÉµÄ¡£ ÏÖÔÚÎÒÃÇÑ¡Ôñ16λ¶¨Ê±¹¤×÷·½Ê½£¬¶ÔÓÚT0À´Ëµ£¬×î´ó¶¨Ê±Ò²Ö»ÓÐ65536us£¬¼´65.536ms£¬ÎÞ·¨´ïµ½ÎÒÃÇËùÐèÒªµÄ1ÃëµÄ¶¨Ê±£¬Òò´Ë£¬ÎÒÃDZØÐëͨ¹ýÈí¼þÀ´´¦ÀíÕâ¸öÎÊÌ⣬¼ÙÉèÎÒÃÇÈ¡T0µÄ×î´ó¶¨Ê±Îª50ms£¬¼´Òª¶¨Ê±1ÃëÐèÒª¾­¹ý20´ÎµÄ50msµÄ¶¨Ê±¡£¶ÔÓÚÕâ20´ÎÎÒÃǾͿÉÒÔ²ÉÓÃÈí¼þµÄ·½·¨À´Í³¼ÆÁË¡£ Òò´Ë£¬ÎÒÃÇÉ趨TMOD£½00000001B£¬¼´TMOD£½01H

ÏÂÃæÎÒÃÇÒª¸øT0¶¨Ê±/¼ÆÊýÆ÷µÄTH0£¬TL0×°ÈëÔ¤ÖóõÖµ£¬Í¨¹ýÏÂÃæµÄ¹«Ê½¿ÉÒÔ¼ÆËã³ö TH0£½<216£­50000£© / 256 TL0£½<216£­50000£© MOD 256

µ±T0ÔÚ¹¤×÷µÄʱºò£¬ÎÒÃÇÈçºÎµÃÖª50msµÄ¶¨Ê±Ê±¼äÒѵ½£¬Õâ»ØÎÒÃÇͨ¹ý¼ì²âTCONÌØÊ⹦ÄܼĴæÆ÷ÖеÄTF0±ê־룬Èç¹ûTF0£½1±íʾ¶¨Ê±Ê±¼äÒѵ½¡£ 5£® ³ÌÐò¿òͼ

ͼ4.15.2

6£® »ã±àÔ´³ÌÐò<²éѯ·¨£© SECOND EQU 30H TCOUNT EQU 31H ORG 00H

START: MOV SECOND,#00H MOV TCOUNT,#00H MOV TMOD,#01H

MOV TH0,#(65536-50000> / 256 MOV TL0,#(65536-50000> MOD 256 SETB TR0

DISP: MOV A,SECOND MOV B,#10 DIV AB

MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,A MOV A,B

MOVC A,@A+DPTR MOV P2,A

WAIT: JNB TF0,WAIT CLR TF0

MOV TH0,#(65536-50000> / 256 MOV TL0,#(65536-50000> MOD 256 INC TCOUNT MOV A,TCOUNT CJNE A,#20,NEXT MOV TCOUNT,#00H INC SECOND MOV A,SECOND CJNE A,#60,NEX MOV SECOND,#00H NEX: LJMP DISP NEXT: LJMP WAIT

TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END

7£® CÓïÑÔÔ´³ÌÐò<²éѯ·¨£© #include

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71,0x00}¡£ unsigned char second¡£ unsigned char tcount¡£

void main(void> {

TMOD=0x01¡£

TH0=(65536-50000>/256¡£ TL0=(65536-50000>%6¡£ TR0=1¡£ tcount=0¡£ second=0¡£

P0=dispcode[second/10]¡£ P2=dispcode[second]¡£ while(1> {

if(TF0==1> {

tcount++¡£ if(tcount==20> {

tcount=0¡£ second++¡£ if(second==60> {

second=0¡£ }

P0=dispcode[second/10]¡£ P2=dispcode[second]¡£ }

TF0=0¡£

TH0=(65536-50000>/256¡£ TL0=(65536-50000>%6¡£ } } }

1£® »ã±àÔ´³ÌÐò<ÖжϷ¨£© SECOND EQU 30H TCOUNT EQU 31H ORG 00H LJMP START ORG 0BH LJMP INT0X

START: MOV SECOND,#00H MOV A,SECOND MOV B,#10 DIV AB

MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,A MOV A,B

MOVC A,@A+DPTR MOV P2,A

MOV TCOUNT,#00H MOV TMOD,#01H

MOV TH0,#(65536-50000> / 256 MOV TL0,#(65536-50000> MOD 256 SETB TR0 SETB ET0 SETB EA SJMP $ INT0X:

MOV TH0,#(65536-50000> / 256 MOV TL0,#(65536-50000> MOD 256 INC TCOUNT MOV A,TCOUNT CJNE A,#20,NEXT MOV TCOUNT,#00H INC SECOND MOV A,SECOND

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ì滻Ϊ@)