功能描述
1、采用51單片機(jī)作為主控芯片;
2、發(fā)送機(jī)通過開關(guān)選通向3個(gè)接收機(jī)中的1個(gè)進(jìn)行串口發(fā)送;
3、發(fā)送機(jī)采用按鍵輸入發(fā)送內(nèi)容;
4、接收機(jī)采用數(shù)碼管顯示接受內(nèi)容,LED指示連接狀態(tài);
仿真設(shè)計(jì)
采用Proteus作為仿真設(shè)計(jì)工具。Proteus是一款著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。
單片機(jī)管腳說明:
P0端口(P0.0-P0.7):P0口為一個(gè)8位漏極開路雙向I/O口,每個(gè)引腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。
P1端口(P1.0-P1.7):P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高電平,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。
P2端口(P2.0-P2.7):P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口,用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號和控制信號。
P3端口(P3.0-P3.7):P3口管腳是一個(gè)帶有內(nèi)部上拉電阻的8位的雙向I/O端口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入端時(shí),由于外部下拉為低電平,P3口將輸出電流(ILL)。P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號。
VCC(40):供電電壓,其工作電壓為5V。
GND(20):接地。
RST(9):復(fù)位輸入。在振蕩器運(yùn)行時(shí),有兩個(gè)機(jī)器周期(24個(gè)振蕩周期)以上的高電平出現(xiàn)在此引腳時(shí),將使單片機(jī)復(fù)位,只要這個(gè)引腳保持高電平,51芯片便循環(huán)復(fù)位。復(fù)位后P3.0-P3.7口均置1,引腳表現(xiàn)為高電平,程序計(jì)數(shù)器和特殊功能寄存器SFR全部清零。當(dāng)復(fù)位腳由高電平變?yōu)榈碗娖綍r(shí),芯片為ROM的00H處開始運(yùn)行程序。復(fù)位操作不會(huì)對內(nèi)部RAM有所影響。
ALE/PROG (30):當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地低位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如果想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,則置位無效。
PSEN(29):外部程序存儲(chǔ)器的選通信號。在由外部程序存儲(chǔ)器取指令期間,每個(gè)機(jī)器周期兩次PSEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的PSEN信號將不出現(xiàn)。
XTAL1(19):來自反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。
XTAL2(18):來自反向振蕩器的輸出。
EA/VPP(31):當(dāng)EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),EA將內(nèi)部鎖定為RESET;當(dāng)EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V的編程電源(VPP)。文章來源:http://www.zghlxwxcb.cn/news/detail-827427.html
主程序設(shè)計(jì)
void main()
{
uchar i = 0;
key=0xc0;
while(1)
{
get_key = keyscan(); // 調(diào)用鍵盤掃描函數(shù)
Getkey();
buf=key;
/* 通過P0口讀要訪問的從機(jī)地址 */
P0 = 0xff;
addr = P0&0x0f;
init_serial(); // 串口初始化
EA = 1; // 關(guān)閉所有中斷
TI = 0;
TB8 = 1; // 發(fā)送地址幀
SBUF = addr;
while(!TI);
TI = 0;
senddata(buf); // 發(fā)送數(shù)據(jù)
}
源文件獲取
關(guān)注公眾號-電子開發(fā)圈,首頁發(fā)送?“串口” 獲?。?span toymoban-style="hidden">文章來源地址http://www.zghlxwxcb.cn/news/detail-827427.html
到了這里,關(guān)于0077-基于單片機(jī)的串口通信(1主3從)仿真設(shè)計(jì)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!