亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標(biāo)題:
基于普中科技51單片機(jī)的簡單串口通信例程
[打印本頁]
作者:
llyy11
時間:
2019-1-21 20:31
標(biāo)題:
基于普中科技51單片機(jī)的簡單串口通信例程
實現(xiàn)功能:當(dāng)PC一次發(fā)送帶有“123”的字符串,或者依次輸入有“1”“2”“3”的字符時,點亮單片機(jī)的一個LED小燈,同時PC收到“Hello.x”的字符串,隨后LED小燈熄滅。
注意:51單片機(jī)的時鐘頻率若不為11.052MHz,如本例使用的單片機(jī)時鐘頻率為11.938995MHz,只在波特率為4800,波特率加倍的情況下實現(xiàn)通信,其它波特率下無法收到51發(fā)送的數(shù)據(jù)。
/**************************************************************************************
* 串口通信實驗 *
實現(xiàn)現(xiàn)象:下載程序后打開串口調(diào)試助手,將波特率設(shè)置為4800,選擇發(fā)送的數(shù)據(jù)就可以顯示
在串口助手上。
注意事項:無。
***************************************************************************************/
#include "reg52.h" //此文件中定義了單片機(jī)的一些特殊功能寄存器
typedef unsigned int u16; //對數(shù)據(jù)類型進(jìn)行聲明定義
typedef unsigned char u8;
sbit LED=P2^2;
u8 i=0;
u8 m[8]="Hello.x";
u8 k=0;
u8 a;
/*******************************************************************************
* 函數(shù)名 :UsartInit()
* 函數(shù)功能 :設(shè)置串口
* 輸入 : 無
* 輸出 : 無
*******************************************************************************/
void UsartInit()
{
SCON=0X50; //設(shè)置為工作方式1
TMOD=0X20; //設(shè)置計數(shù)器工作方式2
PCON=0X80; //波特率加倍
TH1=0xf3; //計數(shù)器初始值設(shè)置,注意波特率是4800的
TL1=0xf3;
ES=1; //打開接收中斷
EA=1; //打開總中斷
TR1=1; //打開計數(shù)器
}
/*******************************************************************************
* 函 數(shù) 名 : main
* 函數(shù)功能 : 主函數(shù)
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void main()
{
UsartInit(); // 串口初始化
while(1);
}
void Usart_receive()
{
a=SBUF;
RI=0;
}
void Usart_judge()
{
if(i==0) //判斷輸入字符是不是‘1’,若為‘1’,令i=1,變?yōu)闋顟B(tài)1
{
if(a=='1')
{
i=1;
}
else
{
i=0;
}
}
else if(i==1) //判斷在上一個字符為‘1’的情況下,輸入字符是否為‘2’
{
if(a=='2') //若為‘2’,令i=2,變?yōu)闋顟B(tài)2
{
i=2;
}
else if(a=='1') //若為‘1’,回到狀態(tài)‘1’
{
i=1;
}
else //其它情況,回到狀態(tài)0
{
i=0;
}
}
else if(i==2) //判斷在上兩個字符為‘1’‘2’的情況下,輸入字符是否為‘3’
{
if(a=='3') //若為‘3‘,LED點亮,輸出“Hello.x”,LED熄滅,隨后回到狀態(tài)0
{
LED=0;
for(k=0;k<8;k++)
{
SBUF=m[k];
while(!TI);
TI=0;
}
LED=1;
i=0;
}
else if(a=='1') //若為’1‘,回到狀態(tài)1
{
i=1;
}
else //其它情況,回到狀態(tài)0
{
i=0;
}
}
}
/*******************************************************************************
* 函數(shù)名 : Usart() interrupt 4
* 函數(shù)功能 : 串口通信中斷函數(shù)
* 輸入 : 無
* 輸出 : 無
*******************************************************************************/
void Usart() interrupt 4
{
Usart_receive();
Usart_judge();
}
復(fù)制代碼
作者:
chunming
時間:
2019-4-18 10:28
不好使
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1