protous實(shí)驗(yàn)報(bào)告兩個(gè)單片機(jī)之間的串行通信.pdf
約4頁(yè)PDF格式手機(jī)打開展開
protous實(shí)驗(yàn)報(bào)告兩個(gè)單片機(jī)之間的串行通信,兩個(gè)單片機(jī)之間的串行通信 一、設(shè)計(jì)要求 在某個(gè)控制系統(tǒng)中有u1、u2這兩個(gè)單片機(jī)?u1單片機(jī)首先將p1端口指撥開關(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端口指撥開關(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
開關(guān)SWITCH 撥碼開關(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顯示。因此?需編寫兩個(gè)不同的程序?其程序流程圖如
下所示?
Y
N
N
單片機(jī)1開始
設(shè)置波特率
串行寄存器設(shè)置
啟動(dòng)TR
讀撥入鍵值
載入SBUF發(fā)送
鍵值是否與前次相同
單片機(jī)2開始
串行寄存器設(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端口指撥開關(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
開關(guān)SWITCH 撥碼開關(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顯示。因此?需編寫兩個(gè)不同的程序?其程序流程圖如
下所示?
Y
N
N
單片機(jī)1開始
設(shè)置波特率
串行寄存器設(shè)置
啟動(dòng)TR
讀撥入鍵值
載入SBUF發(fā)送
鍵值是否與前次相同
單片機(jī)2開始
串行寄存器設(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們正在看...
- xxx市消防工作“十三五”規(guī)劃.doc
- spc工廠最專業(yè)模板(實(shí)用版-x-r數(shù)據(jù)線圖表).xls
- cpk工廠最專業(yè)模板(ts16949五工具軟件-數(shù)據(jù)線圖表).xls
- cpk工廠最實(shí)用模板(ts16949五工具軟件)--新格式.xls
- 注塑常識(shí)培訓(xùn)考試題.doc
- 注塑過(guò)程中的常見問題以及對(duì)策.ppt
- sop-恒溫恒濕試驗(yàn)機(jī)操作指導(dǎo)書.xls
- qc-檢查員評(píng)價(jià)基準(zhǔn)--日企.xlsx
- sop-工顯測(cè)量操作指導(dǎo)書.xls
- 日企-工廠采購(gòu)品質(zhì)協(xié)議書2015(采購(gòu)部).docx