導航:首頁 > 操作系統 > 單片機串口給變數賦值

單片機串口給變數賦值

發布時間:2023-08-28 23:49:09

A. 在單片機C語言中如何對變數的某一位進行操作或賦值。

在C語言中,一般有兩種方法來操作位,一種是使用C語言提供的位運算操作符,一種是使用位域。

1、使用位域

在C語言中定義位域的一般格式如下:

struct位域結構名
{位域列表};

struct:在C語言中定義位域所使用的關鍵字是struct。

位域結構名:是一個C語言中的標識符,有字母、數字、下劃線組成,而且第一個字元必須是字母或者下劃線。

位域列表:組其中位域列表的形式為: 類型說明符 位域名:位域長度

下面的示例代碼,通過位域來計算IEEE754浮點數編碼中單精度數的最大值 、最小值和最小弱規范數。

#include<stdio.h>
typedefstructFP_SINGLE
{
unsigned__int32fraction:23;
unsigned__int32exp:8;
unsigned__int32sign:1;
}fp_single;
intmain()
{
floatx;
fp_single*fp_s=(fp_single*)&x;
fp_s->sign=0;
fp_s->exp=0xfe;
fp_s->fraction=0x7fffff;
printf("float最大數:%le ",(double)x);
fp_s->sign=0;
fp_s->exp=0x1;
fp_s->fraction=0x0;
printf("float最小數:%le ",(double)x);
fp_s->sign=0;
fp_s->exp=0;
fp_s->fraction=0x1;
printf("float最小弱規范數:%le ",(double)x);
return0;
}

2、使用位運算符

C語言中的位運算符有一個基本的常識,即只能操作整數,不能操作浮點數,因為浮點數是使用IEEE754編碼的,使用位操作數沒有任何意義。

C語言提供的位運算符列表:
&按位與如果兩個相應的二進制位都為1,則該位的結果值為1,否則為0
|按位或兩個相應的二進制位中只要有一個為1,該位的結果值為1
^按位異或若參加運算的兩個二進制位值相同則為0,否則為1
~取反~是一元運算符,用來對一個二進制數按位取反,即將0變1,將1變0
<<左移用來將一個數的各二進制位全部左移N位,右補0
>>右移將一個數的各二進制位右移N位,移到右端的低位被舍棄,對於無符號數,高位補0

B. 51單片機 C語言 串口數組賦值問題

貼上來的程序部分,修改如下:
#include<reg52.h>
#include<stdio.h> //列印到串口函數
#define uchar unsigned char
#define uint unsigned int
uchar date_zi[4][11]; //存放接收到的數據
uint i_index=0; //接收到的字元個數
uint i=0; //i字元用於循環
unsigned int xia = 0; //用於保存到數據的下標
void fh_zi(uchar a) //返回字元到串口
{
ES=0;
SBUF=a;
while(!TI);
TI=0;
ES=1;
}
void init()
{
TMOD=0x20;
TH1=0xfd;
TL1=0Xfd;
//TH0=(65536-45872)/256;
//TL0=(65536-45872)%256;
TR1=1;
SM0=0;
SM1=1;
REN=1;
EA=1;
ES=1;
}
void main()
{
i_index=0;
xia=2;
init();

while(1);
}
void ser() interrupt 4 //串口
{
if(RI == 1)
{
RI=0;
date_zi[xia][i_index] = SBUF;
i_index++;
if(i_index>10) //接受完10個字元後顯示數組所有內容
{
i_index=0;
for(i=0;i<11;i++) //顯示數組中所有內容
fh_zi(date_zi[0][i]);
for(i=0;i<11;i++)
fh_zi(date_zi[1][i]);
for(i=0;i<11;i++)
fh_zi(date_zi[2][i]);
for(i=0;i<11;i++)
fh_zi(date_zi[3][i]);
}

}
}

閱讀全文

與單片機串口給變數賦值相關的資料

熱點內容
python自動化測試框架哪個最好 瀏覽:305
反編譯後為什麼不能回編 瀏覽:48
java反射獲得屬性值 瀏覽:31
程序員和甲方的矛盾 瀏覽:126
在地獄做程序員 瀏覽:763
銀行app能做什麼 瀏覽:230
追書緩存的小說在哪個文件夾 瀏覽:554
山科女生程序員 瀏覽:746
mybatis3源碼分析 瀏覽:459
華為交換機常用配置命令 瀏覽:376
程序員怎麼去銀行上班 瀏覽:589
廣州程序員薪資 瀏覽:890
win7命令提示符輸入 瀏覽:594
關於程序員的故事 瀏覽:484
吃雞伺服器是什麼樣的 瀏覽:26
為什麼pspice沒有單片機 瀏覽:12
高數第六版下冊答案pdf 瀏覽:908
sm3演算法實現java 瀏覽:679
只有程序員才懂的笑話 瀏覽:267
php開發app介面源碼 瀏覽:16