【正文】
*/T0$INT=0。DK=0。WAIT15: IF T0$INT=0 THEN GOTO WAIT15。 /* KEY$CLK=0 for 300us*/T0$INT=0DK=DK+1。IF DK4 THEN GOTO WAIT15。/***************SEND KEY$CODE******************/KEY$CLK=1。KEY$DATA=1。T0$INT=0。DK=0。IE=00H。 /*T0 STOP WORK*/TCON=00H。TMOD=10H。 /*T1 BEGAN WORK*/IE=0C8H。TCON=40H。TH1=0BEH。TL1=0E6H。CALL TIME(200)。TMOD=02H。 /*T0 BEGIN WORK*/IE=0C2H。 /*T1 STOP WORK*/TCON=10H。T0$INT=0。NUMBER=11。T0$INT=0。SHIFT$REG=00H。WAIT21: IF T0$INT=0 THEN GOTO WAIT21。 /*send S bit*/T0$INT=0。SHIFT$REG=KEY$CODE。WAIT22: T0$INT=0 THEN GOTO WAIT22。 /*send Key$code*/SHIFT$REG=SHR(SHIFT$REG,1)。T0$INT=0。IF NUMBER2 THEN GOTO WAIT22。SHIFT$REG=PARITY。WAIT23: IF T0$INT=0 THEN GOTO WAIT23。 /*send parity bit*/T0$INT=0。SHIFT$REG=0FFH。WAIT24: IF T0$INT=0 THEN GOTO WAIT24。 /*send ST bit*/T0$INT=0。DK=0。WAIT25: IF T0$INT=0 THEN GOTO WAIT25。 /* KEY$CLK=0 for 300us*/T0$INT=0。DK=DK+1。 IF DK4 THEN GOTO WAIT25。KEY$CLK=1。KEY$DATA=1。T0$INT=0。DK=0。IE=00H。 /*T0 STOP WORK*/TCON=00H。DO DI=1 TO 300。 /*DELAY TIME*/CALL TIME(20)。END。MAIN$END: KEY$CLK=1。KEY$DATA=1。NUMBER=11。SHIFT$REG=0。GOTO MAIN$LOOP。END KEY。本文介紹的PC/AT鍵盤具有結(jié)構(gòu)簡(jiǎn)單、設(shè)計(jì)靈活性強(qiáng)、易于編程、體積小、成本低的特點(diǎn),并可 根據(jù)用戶需要隨意設(shè)計(jì)和布放,對(duì)使用工控機(jī)的各種測(cè)試與控制儀器具有通用性。 參考文獻(xiàn) 1 ATMEL公司. AT89C2051 Data Sheet2 MAXIM公司. MAX813L Data Sheet 3 馬忠梅. 單片機(jī)的C語言應(yīng)用程序設(shè)計(jì). 北京:北京航空航天大學(xué)出版社,1999