『壹』 單片機如何在發送的16進制添加偶校驗位
直接發送這個16位數據和其和就可以了,也就是發送3個位元組。接收到和同樣求一下和看是否一致就行。例如:
senddat()
{
dat[2]=dat[0]+dat[1];
i=0;
while(i<3)
{
SBUF=dat[i];
while(!TI);
TI=0;
i++;
}
}
char recive()
{
i=0;
while(i<3)
{
if(RI)
{
RI=0;
dat[i]=SBUF;
}
}
if(dat[2]==dat[0]+dat[1])return(1);
else return(0);
}
『貳』 單片機發出十六進制數 55H 後串口助手顯示的是什麼信息原因何在
單片機發出十六進制數 55H 後,串口助手顯示內容:
如果是16進制顯示:55
如果是字元形式:U
例如:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit D0=P1^0;
uchar flag;
uchar a[30];
uint y, u,c;
/*發送子程序*/
void fasong(uchar dat)
ES=0;
SBUF=dat;
while(!TI);
TI=0;
ES=1;
}
/*延時子程序*/
void delay(uint n)
uint i,j;
for(i=0;i<n;i++)
for(j=0;j<250;j++);
/*主程序*/
void main()
{
SM0=0;//選擇工作方式一
SM1=1;
TR1=1;
REN=1;
TMOD=0X20;//設置定時器1為工作方式2
TH1=0XFD;
TL1=0XFD;//設置波特率為9600
EA=1;//開CPU中斷
ES=1;//開串列口中斷
delay(1000);
D0=0;
while(flag)
{
y=0;
while(a[y]!='