|
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif (192.77 KB, 下載次數(shù): 33)
下載附件
2021-11-25 18:10 上傳
設(shè)計要求:
①可實現(xiàn)兩個單片機(jī)之間的串行通訊。(表現(xiàn)形式自擬)
②通過按鍵來控制單片機(jī)的發(fā)送和接收。
操作步驟:
按下A機(jī)的發(fā)送鍵(一直按著),A機(jī)開始發(fā)送數(shù)據(jù)到B機(jī),按下B機(jī)的接收鍵(一直按著),B機(jī)開始接收數(shù)據(jù)并顯示在數(shù)碼管。
按下B機(jī)的發(fā)送鍵(一直按著),B機(jī)開始發(fā)送數(shù)據(jù)到A機(jī),按下A機(jī)的接收鍵(一直按著),A機(jī)開始接收數(shù)據(jù)并顯示在LED燈。
電路原理圖如下:
電路圖.jpg (49.84 KB, 下載次數(shù): 56)
下載附件
電路圖
2019-3-14 16:17 上傳
程序如下:
A機(jī)程序:
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x90,0x88}; //設(shè)置發(fā)送的數(shù)字
uint a ;
uchar state;
sbit fasong=P2^0; //設(shè)置發(fā)送鍵
sbit jieshou=P2^1; //設(shè)置接收鍵
void delay () //延時程序
{
uint i,j;
for (i=0;i<300;i++)
for (j=0;j<200;j++);
}
void chushihua1(void ) //發(fā)送初始化程序
{
SCON=0x50; //串行控制寄存器01010000,工作方式1,允許接收
TMOD=0x20; //工作方式控制寄存器00100000,定時器1,工作方式2
TH1=0xfd;
TL1=0xfd; //設(shè)置波特率9600
TI=0; //發(fā)送中斷標(biāo)識位,=1表示發(fā)送結(jié)束
TR1=1; //打開定時器T1
}
void chushihua2() //接收初始化程序
{
SCON=0x50; //串行控制寄存器01010000,工作方式1,允許接收
PCON=0x00;
TMOD=0x20; //工作方式控制寄存器00100000,定時器1,工作方式2
TH1=0xfd; //設(shè)置波特率9600
TCON=0x40; //定時控制寄存器
}
void main (void ) //主函數(shù)
{
while (1)
{
if (fasong==0) //發(fā)送鍵按下
{
chushihua1();
for (a=0;a<10;a++)
{
SBUF=table[a];
delay ();
}
}
if (jieshou==0) //接收鍵按下
{
chushihua2 ();
state=SBUF;
P0=state;
}
}
}
B機(jī)程序
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar state;
sbit jieshou=P2^0;
sbit fasong=P2^1;
void chushihua1() //接收初始化程序
{
SCON=0x50; //串行控制寄存器01010000,工作方式1,允許接收
PCON=0x00; //電源控制寄存器
TMOD=0x20; //工作方式控制寄存器00100000,定時器1,工作方式2
TH1=0xfd; //設(shè)置波特率9600
TCON=0x40;
}
void chushihua2(void ) //發(fā)送初始化程序
{
SCON=0x50; //串行控制寄存器01010000,工作方式1,允許接收
TMOD=0x20; //工作方式控制寄存器00100000,定時器1,工作方式2
TH1=0xfd;
TL1=0xfd; //設(shè)置波特率9600
更多程序下載附件。。
單片機(jī)串行通訊.rar
(71.65 KB, 下載次數(shù): 24)
2019-3-14 16:18 上傳
點擊文件名下載附件
源程序 下載積分: 黑幣 -5
|
評分
-
查看全部評分
|