標(biāo)題:
單片機(jī)雙機(jī)串行通信加數(shù)碼顯示程序
[打印本頁(yè)]
作者:
yq1113
時(shí)間:
2020-11-16 20:00
標(biāo)題:
單片機(jī)雙機(jī)串行通信加數(shù)碼顯示程序
甲為傳輸機(jī)乙為接收機(jī),現(xiàn)在想加共陽(yáng)數(shù)碼顯示。功能為當(dāng)按鍵按下時(shí)甲機(jī)發(fā)送數(shù)據(jù),乙機(jī)接收數(shù)據(jù),甲機(jī)的K1按鍵通過(guò)串口發(fā)送信息控制乙機(jī)的LED燈D3和D4閃爍:① 第一次按下K1鍵,甲機(jī)發(fā)送字符“A”, 甲機(jī)的D1和乙機(jī)的D3都閃爍;甲乙數(shù)碼管同時(shí)顯示1 ② 第二次按下K1鍵,甲機(jī)發(fā)送字符“B”, 甲機(jī)的D2和乙機(jī)的D4都閃爍,甲乙數(shù)碼管同時(shí)顯示2 ③ 第三次按下K1鍵,甲機(jī)發(fā)送字符“C”, 甲機(jī)的D1、D2和乙機(jī)的D3、D4都閃爍,甲乙數(shù)碼管同時(shí)顯示3 ④ 第四次按下K1鍵,甲機(jī)停止發(fā)送,甲機(jī)的D1、D2和乙機(jī)的D3、D4都停止閃爍。
甲乙
數(shù)碼管同時(shí)顯示0
51hei截圖20201116195004.png
(117.11 KB, 下載次數(shù): 57)
下載附件
2020-11-16 19:52 上傳
甲機(jī)源程序如下:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit K1 = P1^0;
sbit D1 = P0^0;
sbit D2 = P0^4;
void Delay(uint x)
{ uchar i;
while(x--)
for(i=0; i<120; i++);}
void putc_to_SerialPort (uchar c)
{ SBUF = c ;
while (TI == 0) ;
TI = 0;
}
void main( )
{ uchar Operation_NO = 0;
SCON = 0x40;
TMOD=0x20;
PCON=0x00;
TH1=0xFD;
TL1=0xFD;
TI= 0;
TR1=1;
while(1)
{ if(K1==0)
{ while (K1==0);
Operation_NO=(Operation_NO+1)%4; }
switch(Operation_NO)
{ case 0: D1=D2=1; break;
case 1: putc_to_SerialPort('A') ;
D1=~D1;
D2=1;
break;
case 2: putc_to_SerialPort('B');
D2=~D2;
D1=1;
break;
case 3: putc_to_SerialPort('C') ;
D1=~D1;
D2=~D2;
break;
}
Delay(100);
}
}
作者:
yq1113
時(shí)間:
2020-11-16 20:01
乙機(jī)如下:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit D3=P0^0;
sbit D4=P0^4;
void Delay(x)
{ uchar i;
while(x--)
for(i=0; i<120; i++);
}
void main( )
{ SCON=0x50;
TMOD=0x20;
PCON=0x00;
TH1=0xFD;
TL1=0xFD;
RI= 0;
TR1=1;
D3=D4=1;
while(1)
{ if(RI)
{RI=0;
switch(SBUF)
{ case 'A':D3=~D3;
D4=1; break;
case 'B':D4=~D4;
D3=1; break;
case 'C':D3=~D3;
D4=~D4;
break;
}
}
else D3=D4=1;
Delay(100);
}
}
作者:
wmq1517fc
時(shí)間:
2020-11-26 22:24
學(xué)習(xí)了,多多交流。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1