protous實(shí)驗(yàn)報(bào)告兩個(gè)單片機(jī)之間的串行通信.pdf
約4頁(yè)PDF格式手機(jī)打開(kāi)展開(kāi)
protous實(shí)驗(yàn)報(bào)告兩個(gè)單片機(jī)之間的串行通信,兩個(gè)單片機(jī)之間的串行通信 一、設(shè)計(jì)要求 在某個(gè)控制系統(tǒng)中有u1、u2這兩個(gè)單片機(jī)?u1單片機(jī)首先將p1端口指撥開(kāi)關(guān)數(shù)據(jù)載入sbuf?然后經(jīng)由txd將數(shù)據(jù)傳送給u?單片機(jī)?u?單片機(jī)將接收數(shù)據(jù)存入sbuf?再由sbuf載入累加器?并輸出至p?端口?點(diǎn)亮相應(yīng)端口的led。 二、實(shí)驗(yàn)所需元器件 單片機(jī)at89c51 瓷片電容...


內(nèi)容介紹
此文檔由會(huì)員 dingpeng52 發(fā)布
兩個(gè)單片機(jī)之間的串行通信
一、設(shè)計(jì)要求
在某個(gè)控制系統(tǒng)中有U1、U2這兩個(gè)單片機(jī)?U1單片機(jī)首先將P1端口指撥開(kāi)關(guān)數(shù)據(jù)載入SBUF?
然后經(jīng)由TXD將數(shù)據(jù)傳送給U?單片機(jī)?U?單片機(jī)將接收數(shù)據(jù)存入SBUF?再由SBUF載入累
加器?并輸出至P?端口?點(diǎn)亮相應(yīng)端口的LED。
二、實(shí)驗(yàn)所需元器件
單片機(jī)AT89C51 瓷片電容CAP-22pF 晶振CRYSTAL 電解電容CAP-ELEC
電阻RES 按扭BUTTON 發(fā)光二極管
LED-YELLOW
發(fā)光二極管LED?
RED
開(kāi)關(guān)SWITCH 撥碼開(kāi)關(guān)DIPSW?S 發(fā)光二極管LED?
GREEN
發(fā)光二極管LED?
RED
三、電路原理圖?
兩個(gè)單片機(jī)之間的串行通信電路圖
四、程序設(shè)計(jì)
這兩個(gè)單片機(jī)均工作在半工狀態(tài)?U?將P?端口的狀態(tài)通過(guò)TXD發(fā)半空給U??而U?接收
U?的數(shù)據(jù)?然后控制P1端口的LED顯示。因此?需編寫(xiě)兩個(gè)不同的程序?其程序流程圖如
下所示?
Y
N
N
單片機(jī)1開(kāi)始
設(shè)置波特率
串行寄存器設(shè)置
啟動(dòng)TR
讀撥入鍵值
載入SBUF發(fā)送
鍵值是否與前次相同
單片機(jī)2開(kāi)始
串行寄存器設(shè)置
清除RI
啟動(dòng)TR
載入SBUF發(fā)送
數(shù)據(jù)暫存
數(shù)據(jù)輸出到P1
結(jié)束
結(jié)束
設(shè)置波特率
是否接收到數(shù)據(jù)?
是否發(fā)送完畢? 五、C語(yǔ)言程序?
U1的C語(yǔ)言程序?
#include "reg51.h"
#define uint unsigned int
#define uchar unsigned char
void send(uchar state)
{
SBUF=state;
while(TI==0);
TI=0;
}
void SCON_init(void)
{
SCON=0x50;
TMOD=0x20;
PCON=0x00;
TH1=0xfd;
TL1=0xfd;
TI=0;
TR1=1;
ES=1;
}
void main()
{
P1=0xff;
SCON_init();
while(1)
{
send(P1);
}
}
U2的C語(yǔ)言程序?
#include "reg51.h"
#define uint unsigned int
#define uchar unsigned char
uchar state;
void receive()
{
while(RI==0)
state=SBUF;
RI=0;
}
void SCON_init(void)
{
SCON=0x50;
TMOD=0x20;
PCON=0x00;
TH1=0xfd;
TL1=0xfd;
RI=0;
TR1=1;
}
void main()
{
SCON_init();
while(1)
{
receive();
P1=state;
}
}
一、設(shè)計(jì)要求
在某個(gè)控制系統(tǒng)中有U1、U2這兩個(gè)單片機(jī)?U1單片機(jī)首先將P1端口指撥開(kāi)關(guān)數(shù)據(jù)載入SBUF?
然后經(jīng)由TXD將數(shù)據(jù)傳送給U?單片機(jī)?U?單片機(jī)將接收數(shù)據(jù)存入SBUF?再由SBUF載入累
加器?并輸出至P?端口?點(diǎn)亮相應(yīng)端口的LED。
二、實(shí)驗(yàn)所需元器件
單片機(jī)AT89C51 瓷片電容CAP-22pF 晶振CRYSTAL 電解電容CAP-ELEC
電阻RES 按扭BUTTON 發(fā)光二極管
LED-YELLOW
發(fā)光二極管LED?
RED
開(kāi)關(guān)SWITCH 撥碼開(kāi)關(guān)DIPSW?S 發(fā)光二極管LED?
GREEN
發(fā)光二極管LED?
RED
三、電路原理圖?
兩個(gè)單片機(jī)之間的串行通信電路圖
四、程序設(shè)計(jì)
這兩個(gè)單片機(jī)均工作在半工狀態(tài)?U?將P?端口的狀態(tài)通過(guò)TXD發(fā)半空給U??而U?接收
U?的數(shù)據(jù)?然后控制P1端口的LED顯示。因此?需編寫(xiě)兩個(gè)不同的程序?其程序流程圖如
下所示?
Y
N
N
單片機(jī)1開(kāi)始
設(shè)置波特率
串行寄存器設(shè)置
啟動(dòng)TR
讀撥入鍵值
載入SBUF發(fā)送
鍵值是否與前次相同
單片機(jī)2開(kāi)始
串行寄存器設(shè)置
清除RI
啟動(dòng)TR
載入SBUF發(fā)送
數(shù)據(jù)暫存
數(shù)據(jù)輸出到P1
結(jié)束
結(jié)束
設(shè)置波特率
是否接收到數(shù)據(jù)?
是否發(fā)送完畢? 五、C語(yǔ)言程序?
U1的C語(yǔ)言程序?
#include "reg51.h"
#define uint unsigned int
#define uchar unsigned char
void send(uchar state)
{
SBUF=state;
while(TI==0);
TI=0;
}
void SCON_init(void)
{
SCON=0x50;
TMOD=0x20;
PCON=0x00;
TH1=0xfd;
TL1=0xfd;
TI=0;
TR1=1;
ES=1;
}
void main()
{
P1=0xff;
SCON_init();
while(1)
{
send(P1);
}
}
U2的C語(yǔ)言程序?
#include "reg51.h"
#define uint unsigned int
#define uchar unsigned char
uchar state;
void receive()
{
while(RI==0)
state=SBUF;
RI=0;
}
void SCON_init(void)
{
SCON=0x50;
TMOD=0x20;
PCON=0x00;
TH1=0xfd;
TL1=0xfd;
RI=0;
TR1=1;
}
void main()
{
SCON_init();
while(1)
{
receive();
P1=state;
}
}
TA們正在看...
- 疾病學(xué)基礎(chǔ)+楊紅劉紅第九章缺氧.ppt
- 疾病學(xué)基礎(chǔ)+楊紅劉紅第二章組織適應(yīng)損傷與修復(fù).ppt
- 疾病學(xué)基礎(chǔ)+楊紅劉紅第五章腫瘤.ppt
- 疾病學(xué)基礎(chǔ)+楊紅劉紅第八章酸堿平衡紊亂.ppt
- 疾病學(xué)基礎(chǔ)+楊紅劉紅第六章水電解質(zhì)代謝紊亂.ppt
- 疾病學(xué)基礎(chǔ)+楊紅劉紅第十一章休克.ppt
- 疾病學(xué)基礎(chǔ)+楊紅劉紅第十七章內(nèi)分泌系統(tǒng)疾病.ppt
- 疾病學(xué)基礎(chǔ)+楊紅劉紅第十三章呼吸系統(tǒng)疾病.ppt
- 疾病學(xué)基礎(chǔ)+楊紅劉紅第十五章泌尿系統(tǒng)疾病.ppt
- 疾病學(xué)基礎(chǔ)+楊紅劉紅第十六章生殖系統(tǒng)疾病和乳腺疾...ppt