欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機串口通訊程序變量賦值問題
[打印本頁]
作者:
Thunder.
時間:
2019-4-8 09:43
標題:
單片機串口通訊程序變量賦值問題
如圖 我想把這三個數取過來 231 是定義三個數組呢 還是直接使用變量賦值 這下面是我寫的 但是取不出來
#include<stc12.h>//頭文件
sbit DU=P2^6;
sbit WE=P2^7;
unsigned int date[6],value,one,two,three;
unsigned char num=0;
unsigned int code sz[4]={0x3f,0x06,0x5b ,0x4f};
void delay(unsigned char xms) //xms等于幾就延遲幾毫秒
{
unsigned int i,j;
for(i=xms;i>0;i--)
for(j=112;j>0;j--);
}
void UartConfiguration()
{
TMOD=0x20; //定時器工作方式,選擇了定時器1,工作方式2 八位初值自動重裝的8位定時器。
TH1=0xfd; //定時器1初值 ,設置波特率為9600 晶振11.0529MHZ?
TL1=0xfd;
AUXR |= 0x40; //定時器1時鐘為Fosc,即1T
AUXR &= 0xFE; //串口1選擇定時器1為波特率發生器
TR1=1; //開啟定時器1
SCON=0X50;
PCON=0X00;
ES=1; //允許串口中斷
EA=1; //允許中斷(總閘)
}
void main()
{
UartConfiguration();
while(1)
{
// one=date[0]%10;
// two=date[2]%10;
// three=date[4]%10;
one=value%10;
two=(value%100)/10;
three=value/100;
P0=sz[one];
DU=1;
DU=0;
P0=0x7f;
WE=1;
WE=0;
delay(2);
P0=sz[two];
DU=1;
DU=0;
P0=0xbf;
WE=1;
WE=0;
delay(2);
P0=sz[three];
DU=1;
DU=0;
P0=0xdf;
WE=1;
WE=0;
delay(2);
}
}
void Uart() interrupt 4
{
if(RI==1)
{
RI=0;
// date[num]=SBUF;
// num++;
// if(num==7)
// {
// num=0;
// }
value=SBUF;
}
}
復制代碼
QQ圖片20190408094138.jpg
(195.71 KB, 下載次數: 159)
下載附件
2019-4-8 09:43 上傳
串口發送的內容
作者:
孤劍酷
時間:
2019-4-10 19:54
提供一個思路,因為串口輸出過來的都是有空格來斷開的,當你需要這些數據的時候,你可以在你獲取數據的程序里按照順序以空格來判斷這個數據是不是完整的,類似于C語言的那個提取字符串。
作者:
chtyise
時間:
2019-4-10 23:14
如果按你寫的程序,當串口接收數據是0xe7,這樣可以的.
如果按你電腦上的數據是三個十六進制數,程序可以用數組接收,
注意電腦收到是6個數據0x32 0x20 0x33 0x20 0x31 0x20
作者:
louis333
時間:
2019-4-11 08:52
串口接受的一般是字符串發送,發送的是ASCII碼,需要轉換成自己需要的數字,去掉空格,用數組儲存起來比較合適!
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1