1樓:匿名使用者
如果a=sbuf; p0=disnum[a%16];你認為顯示是正常的,那麼按如下修改應該也是可以正常的。
a = buf[i]%16;
p0 = disnum[a];
2樓:匿名使用者
先將ascii轉換為資料再顯示。
a=disnum[buf[i]];
p0=a-0x30;
3樓:匿名使用者
得到的數依次顯示,每次顯示後要有延時的,要不 根本看不清,你的延時一定要比收資料短,要不一組數沒有顯示完,新的數就又來了
4樓:匿名使用者
可以的,因為乙個位元組用兩個十六進位制的數表示,
高位p0=disnum[buf[i]/16]
低位p0=disnum[buf[i]%16]
如何用51微控制器實現指數運算
5樓:玩虐
c語言的數學庫中有乙個函式:pow(a,b),就是計算a的b次方.
原型:float pow(float x,float y).
c51函式參考
說明.用法如下:
include
float n,x,y;
y = pow(x,n)
6樓:蒼莽塞外
如果你要求的函式不是很複雜的話,可以根據數學原理,把函式成級數,然後近似等於你的函式,再用乘法和加法指令求這個級數的運算,呵呵,就是結果有點誤差
7樓:閱讀過程中
你先實現什麼功能的!!具體說一下,別這麼籠統???
8樓:匿名使用者
吃什麼飯幹什麼事。如果不是有特殊需求,別拿51做這種費力不討好的運算。
如果只是玩玩而已或者寫寫**,可以參照c51的數學函式庫。
怎麼通過串列埠讀取51微控制器某個位址的資料?請用c語言寫出來。
9樓:匿名使用者
串列埠初始化設定後,直接「sbuf=xx」就可以了
10樓:張飛
授人以魚,不如抄授人以漁
首先,bai你要明確在c語言中讀du取記憶體地zhi址是
dao基於指標的。
3.比如讀取記憶體位址0x22中的資料
c語言中對於記憶體的訪問是基於指標的,這個毋庸置疑,具體操如下unsigned int *p= (unsigned int*)0x22 ;//定義指標,並且使指標指向了0x22這個 記憶體位址;
那麼*p就是最終你要讀取的資料了。
4.至於如何通過串列埠顯示到電腦我就不多說了(這不是難點),資料你都知道了,寫到串列埠 緩衝區,在串列埠除錯助手下就可以看到。
5.雖然沒有貼出具體**,但這裡面的思想可以讓你解決更多問題。
11樓:匿名使用者
flash位址復:
制unsigned char code*data paddr;
sbuf=*paddr;
低128ram:unsigned char data*data paddr;
高128ram: unsigned char idata*data paddr;
外部ram:unsigned char xdata*data paddr;
12樓:匿名使用者
break; 語句別忘了啊。
51微控制器怎麼通過串列埠傳送小數? 5
13樓:匿名使用者
方法多的去了,把數字37.5轉換為字串「37.5」傳送可以,用壓縮bcd碼0x37、0x05傳送也可以,多得是。不一定一定要浮點處理。
14樓:匿名使用者
你自己定乙個協議,1次發6個資料,選擇其中的2個作為資料,其他作為驗證碼,另乙個微控制器接收到就演算法處理
15樓:匿名使用者
微控制器不支援浮點運算的,你可以申請兩個變數, 把整數和小數分兩次發,如果有疑問,歡迎提問
16樓:沙里波特
用兩個位元組,可以發出的資料是:0~65535,接收方,再進行換算即可。
17樓:匿名使用者
你定義個變數為抄float的,是兩個襲位元組,傳送的時候將float分成兩個位元組傳送就可以了。
union
fc;計算的時候用f,發
送的時候發ch。就可以了。
18樓:匿名使用者
全部當整數處理不就得了!
19樓:大雨落幽燕白
把小數當成整數就得了,單位元組不夠可以多位元組。
求助,微控制器串列埠全雙工,MCS51微控制器什麼是全雙工,半雙工,單工序列通訊
微控制器串列埠實現全雙工,用rs232介面,適合於一對一的,如微控制器與電腦。或用rs422,適合於多機通訊,即通常的主從機結構。微控制器作為從機,串列埠全雙工工作還有點意義,作為主機,暫時我還沒有看到明顯的效果!為此思考中 mcs 51微控制器什麼是全雙工,半雙工,單工序列通訊?單工只有一根資料線...
微控制器串列埠通訊原理,微控制器串列埠通訊的原理?
1 51系列微控制器的串列埠有4個模式,可分別用作串並轉換 並串轉換 非同步序列通訊 2種模式 非同步序列通訊中,有1 8 1和1 8 1 1兩種幀格式,多機通訊是特殊的通訊方式。2 基本原理是兩組移位暫存器。將並行通訊轉換成序列通訊模式 傳送部分 或反之 接收部分 可全雙工執行。3 速度通過移位脈...
微控制器通過串列埠傳送的是什麼微控制器通過串列埠傳送的是什麼?
一般來說,發什麼的資料是取決於傳送端的,比如0x30,你說這個數怎麼顯示?如果是bcd碼,就顯示30,如果是asii碼就顯示0,如果是一般的十六進位製數顯示就顯示0x30,如果需要轉換換成十進位制就是48。如果你不知道人家發的是什麼,怎麼解碼?微控制器,每次,通過串列埠傳送的是8位二進位製數,即乙個...