1. 51單片機怎樣從一個非常大的數字裡面提取個十百千萬位等......
下面舉例說明萬千百十個的表示方法。其實很簡單,用除法取余就行。
i=a/b ;//取商
i=a%b;//取余
方法很多,以下是一例:
unsigned int wan,qian,,shi ,ge,
wan=i/10000;//除一萬取商,是萬位。
qian=(i/1000)%10;//先除1000,取商,商的個位是千位,所以再除10 取余。
=(i%100)/10%10;//先除100,取商,商的個位是百位,所以再除10 取余。
shi=(i%100)/10;//先除100,取余,商再除10 取余。
ge==(i%10;//除10取余。
不過閣下要知道整形量最大是65535,假如你的數據達到999999,你就要定義長整形量了。
unsigned long int i=999999;
如當I<10的時候 P0=table[i/10]; 個位
這樣的演算法 我寫的不行 ,請高手寫下 ,我看下我的出錯在什麼地方
i/10是取商啊,怎麼可能是個位呢?是十位。I<10的話,一定是0了。
移位的方法不行,移位是2進制運算。你這個是十進制。
2. 在編單片機C語言的時候,怎麼提取某一時刻定時器的當前值
隨時讀定時器就是提取了,問題是提取的當前值,怎麼能看到啊,什麼時候提取呀,要有什麼條件?
提取方法很簡單,以T0為例
設變數x為16位整型
x=0;
x=TH0;
x<<=8;
x=x+TL0;
提取結果在x中,是16位的。
3. 寫入單片機的程序能否提取出來,我說的是51如果如果能具體怎麼做
51系列的單片機如果沒有寫入保護的話是可以的,需要使用並口的編程線也就是ISP線連接,然後讀取晶元到緩存中,再另存為***.hex文件,最後找個反編譯軟體翻譯成匯編,如果要弄成C只能靠人工一點一點來了。
4. 如何獲取第三方單片機上的數據
你想讀取第三方單片機數據控制別的外圍電路,這個不可行的,除非你有第三方單片機源程序,在源程序基礎上增加功能,如果你想使用第三方硬體和APP軟體,找人解密單片機程序把二進制文件提取出來,可以山寨別人產品,如果產品有序列號加密,這樣連接APP就不成功了,這種產品一般APP和單片機通訊數據都是加密的,如果沒有加密,破解協議自己做過單片機程序,如果加密了可以按照功能重新開發。
5. 單片機字元串怎麼提取你需要的數據
如果01恰好是一個位元組,FF恰好是一個位元組,將數據存儲到數組中,確定偏移量直接讀取啊。
6. 寫入單片機內部的程序 可以提取出來嗎
51系列的單片機如果沒有寫入保護的話是可以的,需要使用並口的編程線也就是isp線連接,然後讀取晶元到緩存中,再另存為***.hex文件,最後找個反編譯軟體翻譯成匯編,如果要弄成c只能靠人工一點一點來了。
7. 用單片機用串口提取一幀數據
通過 串口 讀數據會否??
會的話,那就是 不知道 如何 判斷 符不符合 AA____BB 的格式咯:
if(RecData & UserCode == UserCode) {符合格式執行內容},其中,RecData 是接收到的數據,UserCode 是 AA0000BB 的值,比如 A=1,B=0,那UserCode 就是 0xC0(最好使用 宏定義);
格式符合後,讀取中間 的代碼值:
comm=(RecData &0x3c)>>2; 其中 0x3c 是 屏蔽 AA、BB位的值(0011 1100);左移2位是將 代碼值 放到最低位(0000 DDDD)。
8. 如何用單片機從外部存儲設備提取數據
汽車發動機本身有一路信號可以識別發動機是否正在工作,
但不是從電瓶正負極上得到
9. 51單片機如何存儲和提取信息
STC51單片機自帶flash數據存儲,晶元文檔有很詳細的使用說明。
10. 單片機裡面的數據能提取出來嗎
我以前試過,51單片機里float和double儲存的只到小數點後6位,就像你說的5123456789在51單片機里是以5.123456e+9儲存的,也就是5123456000,後邊的都丟失了,所以簡單的程序應該是不可能算到你說的精度的。在32位單片機上用long
long
可以儲存差不多20位的整數,但是keil
51是不支持的。
你用這么大的數干什麼?不行就換一種方法吧。