51串口通信程序(帶詳細(xì)注釋)
#include
#define uchar unsigned char
#define uint unsigned int
bit UART_Flag=0; //定義串口接收標(biāo)志位
uchar str[50]; //定義一數(shù)組
uchar length=0; //數(shù)組長度從0開始
void init() //初始化uart
{
TMOD=0X20; //定時器1定時器方式 工作模式2,可自動重載的8位計數(shù)器常把定時/計數(shù)器1以模式2作為串行口波特率發(fā)生器
SCON=0X50; //選擇工作模式1使能接收,允許發(fā)送,允許接收
EA=1; //開總中斷
ES=1; //打開串口中斷
ET1=0; //打開定時器中斷
PCON=0X80; //8位自動重載,波特率加倍
TH1=0XFF; //用22.1184 mhz波特率
TL1=0XFF;
TR1=1; //打開中時器
}
void UART_Putch(uchar dat) //輸出一個字符
{
SBUF=dat; //把數(shù)據(jù)送給sbuf緩存器中
while(TI!=1);//發(fā)送標(biāo)志位 TI如果發(fā)送了為1,沒發(fā)送為0,沒發(fā)送等待,到了退出循環(huán)
TI=0; //到了,TI清為0
}
void init1() interrupt 4 //uart中斷 ,4為串口中斷
{
if(RI==1) //收到數(shù)據(jù)
{
uchar m=SBUF; //m為計算機(jī)發(fā)送給串口的數(shù)據(jù),例,open //總體思想是,計算機(jī)通知串口,我要發(fā)數(shù)據(jù)了
RI=0; //收到清0
if(m==) //判斷m這位數(shù)據(jù)有無
{
UART_Putch(); //回車
UART_Putch(); // 換行
str[length]=看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人
(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https') {
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else {
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();