#include <reg52.h>
sbit P10 = P1 ^ 0;
sbit P32 = P3 ^ 2;
char n = 0;
void main( void ) {
TMOD = 0x00; //設計時器0為模式0;
EA = 1; //
EX0 = 1; //允許P3.2中斷
IT0 = 1; //設P3.2為負緣觸發
ET0 = 0; //關閉計時器中斷
TR0 = 0; //停止計時
while ( 1 )
;
}
//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------
void ISR_Key( void )interrupt 0 {
TH0 = ( 8192-104 ) / 32; //鮑率設定
TL0 = ( 8192-104 ) % 32;
EX0 = 0; //關閉P3.2中斷
ET0 = 1; //開啟計時器中斷
TR0 = 1; //開始計時
}
//-------------------------------------------------------------------------
//
//-------------------------------------------------------------------------
void Timer0_isr( void )interrupt 1 {
TH0 = ( 8192-208 ) / 32;
TL0 = ( 8192-208 ) % 32;
P10 = P32;
n ++;
//若接收/傳送10bit後則等待下次的 start bit 觸發P3.2
if ( n == 10 ) {
EX0 = 1; //允許P3.2中斷
ET0 = 0; //關閉計時器中斷
TR0 = 0; //停止計時
n = 0;
}
}
I2luY2x1ZGUgPHJlZzUyLmg+CnNiaXQgUDEwID0gUDEgXiAwOwpzYml0IFAzMiA9IFAzIF4gMjsKY2hhciBuID0gMDsKdm9pZCBtYWluKCB2b2lkICkgewogICAgVE1PRCA9IDB4MDA7ICAvL+ioreioiOaZguWZqDDngrrmqKHlvI8wOyAKICAgIEVBID0gMTsgICAgICAgLy8KICAgIEVYMCA9IDE7ICAgICAgLy/lhYHoqLFQMy4y5Lit5pa3IAogICAgSVQwID0gMTsgICAgICAvL+iorVAzLjLngrrosqDnt6Pop7jnmbwgCiAgICBFVDAgPSAwOyAgICAgIC8v6Zec6ZaJ6KiI5pmC5Zmo5Lit5pa3IAogICAgVFIwID0gMDsgICAgICAvL+WBnOatouioiOaZgiAKICAgIHdoaWxlICggMSApCiAgICAgICAgOwp9Ci8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLwovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kdm9pZCBJU1JfS2V5KCB2b2lkIClpbnRlcnJ1cHQgMCB7CiAgICBUSDAgPSAoIDgxOTItMTA0ICkgLyAzMjsgIC8v6a6R546H6Kit5a6aIAogICAgVEwwID0gKCA4MTkyLTEwNCApICUgMzI7CiAgICBFWDAgPSAwOyAgICAgIC8v6Zec6ZaJUDMuMuS4reaWtyAKICAgIEVUMCA9IDE7ICAgICAgLy/plovllZ/oqIjmmYLlmajkuK3mlrcgCiAgICBUUjAgPSAxOyAgICAgIC8v6ZaL5aeL6KiI5pmCIAp9Ci8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLwovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0Kdm9pZCBUaW1lcjBfaXNyKCB2b2lkIClpbnRlcnJ1cHQgMSB7CiAgICBUSDAgPSAoIDgxOTItMjA4ICkgLyAzMjsKICAgIFRMMCA9ICggODE5Mi0yMDggKSAlIDMyOwogICAgUDEwID0gUDMyOwogICAgbiArKzsKICAgIC8v6Iul5o6l5pS2L+WCs+mAgTEwYml05b6M5YmH562J5b6F5LiL5qyh55qEIHN0YXJ0IGJpdCDop7jnmbxQMy4yIAogICAgaWYgKCBuID09IDEwICkgewogICAgICAgIEVYMCA9IDE7ICAgIC8v5YWB6KixUDMuMuS4reaWtyAKICAgICAgICBFVDAgPSAwOyAgICAvL+mXnOmWieioiOaZguWZqOS4reaWtyAKICAgICAgICBUUjAgPSAwOyAgICAvL+WBnOatouioiOaZgiAKICAgICAgICBuID0gMDsKICAgIH0KfQ==