欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
51單片機串口把接收到的值再發回電腦端的源碼
[打印本頁]
作者:
毓楓
時間:
2018-3-10 23:55
標題:
51單片機串口把接收到的值再發回電腦端的源碼
單片機源程序如下:
/**********************************************
波特率設置為9600,無奇偶校驗
晶振11.0592MHz
---------------------------------------------*/
#include<reg52.h>
#include<intrins.h>
sfr P1M0 = 0x91;
sfr P1M1 = 0x92;
sfr P2M1 = 0x95;
sfr P2M0 = 0x96;
#define FOSC 11059200
unsigned char temp[2];
//ms延時
void delayms(int t)
{
int i ;
for(;t>0;t--)
for(i=FOSC/13186;i>0;i--);
}
//串口初始化
void InitUART(int baud,char es)
{
char v ;
TMOD&=0x0f ;
TMOD|=0X20 ;
//T1方式2
v=256-((FOSC*10/12/32/baud+5)/10);
//四舍五入
TH1=v ;
TL1=v ;
TR1=1 ;
SCON=0X50 ;
ES=es ;
EA = 1; //全局中斷允許
}
//發送單個字符
void sendbyte(char d)
{
SBUF=d;
while(TI==0);
//等待
TI=0 ;
//清除發送標志
}
void main(void)
{
P1M0 = 0xFF;
P1M1 = 0x00;
P2M0 = 0xFF;
P2M1 = 0x00;
InitUART(9600,1);
while(1)
{
delayms(100);
}
}
/******************************************************************/
/* 串口中斷程序 */
/******************************************************************/
//串行中斷服務程序
void UART_SER(void)interrupt 4
{
unsigned char i;
unsigned char a;
//定義臨時變量
//判斷是接收中斷產生
if(RI)
{
RI = 0 ; //標志位清零
i = SBUF ; //讀入緩沖區的值
if(i==0xAA)
{
temp[1] = P1;
temp[0] = P2;
a = temp[1] >> 4;
temp[1] = a;
sendbyte(temp[1]); //發送高4位數據
delayms(10);
sendbyte(temp[0]); //發送低4位數據
delayms(10);
}
//SBUF=Temp ; //把接收到的值再發回電腦端
}
if(TI) //如果是發送標志位,清零
TI=0 ;
}
復制代碼
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1