|
實(shí)現(xiàn)一個(gè)單片機(jī)串行接口雙機(jī)通訊測試系統(tǒng)。系統(tǒng)中,發(fā)送和接收各用一個(gè)單片機(jī)實(shí)現(xiàn),成為甲機(jī)和乙機(jī)。甲機(jī)作為發(fā)送端,連接一個(gè)按鍵,乙機(jī)作為接收端,連接一個(gè)LED數(shù)碼管。將甲機(jī)的按鍵次數(shù)發(fā)送給乙機(jī)。(0-9,如果按鍵次數(shù)超過9,從0繼續(xù))。要求在乙機(jī)上顯示發(fā)送的數(shù)據(jù)。甲機(jī)的發(fā)送程序:
#include<reg51.h>
sbit S=P0^0;
unsigned char count;
key()
{
unsigned int k;
if(S==0)
{
for(k=0;k<1200;k++);
if(S==0){
count++;
if(count==10)count=0;
while(!S);
}
}
}
main()
{
TMOD=0X20;
TH1=0XFD;
TL1=0xfd;
TR1=1;
SCON=0x40;
PCON=0x00;
count=0;
while(1)
{
key();
SBUF=count;
while(!TI);
TI=0;
}
}
乙機(jī)接收的程序:
#include <reg51.h>
code unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
main()
{
unsigned char i;
SCON=0x40;
PCON=0X00;
TMOD=0X20;
TH1=0XFD;
TL1=0XFD;
TR1=1;
while(1)
{
REN=1;
while(RI==0);
i=SBUF;
P0=tab[ i];
RI=0;
}
} |
|