欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
51單片機雙機串口通信仿真 內含源碼 仿真圖
[打印本頁]
作者:
csy-2015-06
時間:
2018-1-23 00:05
標題:
51單片機雙機串口通信仿真 內含源碼 仿真圖
0.jpg
(89.37 KB, 下載次數: 107)
下載附件
2018-1-23 05:35 上傳
0.png
(41.58 KB, 下載次數: 84)
下載附件
2018-1-23 05:36 上傳
單片機源程序如下:
/******************************************************************
功能:采用USART串口通信,波特率為9600,一個單片機發送數字
一個單片機接收,并把接收的數字用數碼管顯示。接收!!!
作者:cs天涯
******************************************************************/
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
bit flag;
uchar num;
void display(uchar num);
void delay(uint z);
void init();
uchar code table[]=
{
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};//編碼0~9AbCdEF
void main()
{
init();
while(1)
{
while(flag)
{
display(num);
delay(5);
}
}
}
void init()
{
PCON &= 0x7F; //波特率不加倍
TMOD=0x20; //定時器1工作方式2
TH1=0xfd;
TL1=0xfd; //給定時器定初值,設置波特率為9600
TR1=1; //開啟定時器1工作
SCON=0x50;//0101 0000 允許串行口接收數據,設置串行口工作方式1
EA=1;
ES=1; //打開串行口中斷
ET1=0; //禁止定時器1中斷
}
void display(uchar num)
{
uchar shi,ge;
shi=num/10; //取十位
ge=num%10; //取個位
P0=table[shi]; //送十位值
P2=0xbf;//1011 1111 //選擇段選位置
delay(5);
P0=0; //數碼管消影
P2=0xff;
P0=table[ge]; //送個位值
P2=0x7f;//0111 1111 //選擇段選位置
delay(5);
P0=0; //數碼管消影
P2=0xff;
}
void delay(uint z) //延時函數
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void receive() interrupt 4
{
num=SBUF;
flag = 1; //接受一次后打開顯示
ES = 0; //關閉串行中斷
RI = 0; //清除串行接受標志位
}
發送程序:
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar num; //=2939可以不要
void init();
void delay(int z);
void send(uchar num); //聲明子函數的時候要加分號
void main()
{
init(); //調用子函數的時候要加分號
while(1)
{
send(39); //發送函數
delay(10); //發送后延時一下,保證發送頻率不過快
}
}
void init()
{
PCON&=0x7F; // 設置波特率不加倍
TMOD=0x20; //設置定時器1工作方式 2
TH1=0xfd;
TL1=0xfd; //設定定時器1工作方式2的初值 (關計算還沒講) 波特率為9600
TR1=1; //開定時器1,開啟波特率發生器
SM0=0;
SM1=1; //設定串口通信工作方式1
EA=1; //開總中斷
}
void delay(int z) //晶振11.592.延時z毫秒
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void send(uchar num)
{
SBUF=num; //把發送的內容寫進sbuf,自動發送 ,發送數據時TI為0,!0為1
while(!TI); //!邏輯非,發送完數據,發送完數據時TI為1.!1為0,停止發送
TI=0; //TI需要軟件清零
}
復制代碼
所有資料51hei提供下載:
單片機串口通信.zip
(37.19 KB, 下載次數: 258)
2018-1-23 00:01 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
csy-2015-06
時間:
2018-1-23 09:12
部分注釋無關主題,如79行//=2939可以不要, 98行(關計算還沒講)
作者:
rowlins
時間:
2019-11-4 16:35
請問一下U3是什么芯片呢
作者:
newepson2001
時間:
2021-3-16 15:35
下來好好學習學習,謝謝分享!
作者:
LLSSZS
時間:
2023-6-1 13:57
電腦發送單片機接收顯示可以實現嗎?
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1