51單片機(jī) (5) C51實(shí)現(xiàn)單片機(jī)串口通信仿真
1、效果圖
2、虛擬串口
通過(guò)VSPD虛擬串口工具虛擬出兩個(gè)串口用于通信
VSPD虛擬串口工具下載:http://download.csdn.net/detail/leytton/7565589
3、串口調(diào)試
打開(kāi)兩份串口調(diào)試工具,第一個(gè)打開(kāi)com1,第二個(gè)打開(kāi)com2,這時(shí)在任一串口調(diào)試工具發(fā)送信息,另一個(gè)串口調(diào)試工具中能接收到信息
串口調(diào)試工具下載:http://download.csdn.net/detail/leytton/7565561
4、Proteus電路設(shè)計(jì)圖
P1串口:屬性原件值COMPIM,Physical port為com2,Physical Baud rate為9600
虛擬終端(Virtual Terminal):接RXD接口的虛擬終端顯示單片機(jī)通過(guò)com2接收到的信息,接TXD接口的虛擬終端顯示單片機(jī)傳出的信息。
5、51單片機(jī)程序代碼
#include
void init();
void main(){
unsigned char temp=0xff;
init();
while(1){
if(RI){ //RI=1,判定為串口接收到了數(shù)據(jù),RI要清零,
RI=0;
temp=SBUF;
}else{
P1=temp;
}
}
}
void init(){
TMOD=0x20; //設(shè)置T1工作方式為方式2
TH1=0xfd; //給定時(shí)器高位裝初值
TL1=0xfd; //給定時(shí)器低位裝初值
TR1=1; //開(kāi)定時(shí)器
//以上是設(shè)置波特率
SM0=0; //設(shè)置串口通訊方式為方式1
SM1=1;
REN=1; //串口是否接收數(shù)據(jù)的開(kāi)關(guān)
}
6、運(yùn)行
串口調(diào)試工具接com1口發(fā)送的數(shù)據(jù),可在接RXD的虛擬終端顯示;
但是單片機(jī)基本沒(méi)反應(yīng),因?yàn)槲覍?xiě)的代碼是通過(guò)信息來(lái)控制燈亮滅,而信息格式不合法。
改進(jìn):在串口調(diào)試工具勾選“按十六進(jìn)制發(fā)送”,虛擬終端勾選“Hex Display Mode”,發(fā)送“0”則燈全亮,發(fā)送“fe”則燈P1.0亮。
- 被動(dòng)元件缺料漲價(jià)災(zāi)情慘烈,部分代工廠商或面臨倒閉危機(jī)[18年05月16日 10:04]
- 綠聯(lián)無(wú)線充電器評(píng)測(cè)_性價(jià)比爆棚價(jià)格實(shí)惠[18年05月19日 14:38]
- 基于i.MX6UL處理器的上電時(shí)序設(shè)計(jì)[18年05月19日 14:36]
- 綠聯(lián)無(wú)線充電器怎么樣_綠聯(lián)無(wú)線充電器拆解詳情[18年05月19日 14:14]
- 綠聯(lián)qc3.0快速充電器評(píng)測(cè)(外觀、性能、兼容測(cè)試)[18年05月19日 14:06]
- 電源重新上電引起的MCU啟動(dòng)失敗的原因分析[18年05月19日 14:04]