① 單片機查表程序編寫 急!
org 0000h
mov 30h, #1
mov 31h, #3
mov 32h, #5
mov 33h, #7
mov 34h, #9
mov 35h, #2
mov 36h, #4
mov 37h, #6
mov 38h, #8
mov 39h, #10
call SQRT
sjmp $
;查表法求平方的程序如下。
SQRT:
MOV R0, #30H
MOV R1, #40H
MOV R2, #10
LOOP:
MOV A, @R0
ADD A, #S_TAB - ($ + 4)
MOVC A, @A + PC
MOV @R1, A
INC R0
INC R1
DJNZ R2, LOOP
RET
S_TAB:
DB 1, 4, 9, 16, 25, 36, 49, 64, 81, 100
;完
② 單片機原理與應用 設計初始地址為DATA的數據表格,表中按順序放有100個元素值,每個元素為單字
MOVDPTR,#DATA
MOVA,R4
MOVCA,@A+DPTR
END
③ 51單片機數據表(shujubiao:db ……)後面的數據最多能訪問多少位元組
因為使用movc a,@a+dptr時,ACC的表示的范圍是8位的(00~255),所以在DPTR不變時只能訪問256位元組的空間。
你可以這樣:定義數據塊,每塊都是256位元組,這樣在訪問不同的區塊時就讓DPTR裝載不同的基地址,這樣就擴大了訪問的范圍。
還有一個最簡單的辦法,每次查表時把ACC的值固定為0,而是讓DPTR移動變化,這樣DPTR就能訪問64K的空間了,就像下面一樣:
MOV A,#00H
MOVC A,@A+DPTR
INC DPTR
④ 單片機數據表的調用方法
建立一個數組,直接取數組值就好了
⑤ 單片機輸出正弦波,那個數據表的數據是怎樣計算得到的有具體的計算過程最好!
直接用三角函數計算
如周期20 ms,半個周期10 ms ,將半個周期分成100個時間段,則每個時間段為100us
半個周期 相當於180度 那麼每個時間段對應的角度 180/100=1.8 度
那麼在任意時刻對應的角度1.8*n
直接sin(1.8*n)即可得出某個時刻的三角函數 值
將這個數值再乘以DA的最大數字量,8位是256,10位是1024
即可得到單片機要送往DA轉換器的數字量
⑥ 怎樣在單片機內部建立資料庫
這不是資料庫好不好,這叫表。
你可以通過線性插值的方式解決。
double powV[Level];
double powPercent[Level];
通過電壓去百分百:
double getPercent(double vol)
{
for(int i=0;i<Level;i++)
if( vol <powV[i]){
...........
}
}
⑦ 單片機中數據表格在存儲器哪一個地方
單片機中數據表格存於程序存儲器(ROM)中,不要浪費寶貴的內存(RAM)。
⑧ 用51單片機產生正弦波,那個數據表怎麼得到的謝謝!
這個表是預先算好的,就是將標准正弦波上移1/2幅值後模256。
三角波和鋸齒波也可以按相同方法計算得到對應的數值表。
對一個周期取樣256次,也就是說第0個取樣點的弧度是0,第一個取樣點的弧度值就是pi/128,第二個取樣點的弧度為(pi/128)*2,依次類推。測峰峰值為256,所以f(x) = sin(x)*128+128,x就是上文中提到的取樣點的弧度。
假設是8位的轉換精度,那麼2的8次方最大也就是256個級別,現在的表峰峰值就是256,已經夠了,表精度再高也是白搭,如果DAC是11位的,那麼表的精度可以再提高8倍,相對應的表的大小也大了8倍,在某些ROM有限的系統中就不適用了,所以要在精度與大小之間做個取捨。
(8)單片機數據表擴展閱讀:
可以設一個函數為 y=sin X,當 X 分別取 0、30、60、90、120、150、180 時(單位:度),Y對應的數值分別為 0、0.5、0.8660、1、0.8660、0.5、0。在坐標系中畫出對應的點就可以得出正弦波的圖像了。
該圖像有一個特點,就是周期性變化,例如 X = 0 時,Y = 0,X = 180 時, Y = 0;若 X 取值【180~360】,則可以看到,圖像正好與原來的相反(在第四象限)。這就是正弦波的圖像了。
⑨ 單片機中,建立數據表,是否必須用table[ ],可不可以用其他的字元代替table
AD的最大值對應屏幕的每一列的最高點,0對應最低點,這樣建立一個數據表,每取得一個值就在表中查找相應的點的位置,然後在該點列印,再取一個AD值,查表,取點,在下一列列印,直到128列,重新回到1列繼續列印。
⑩ 單片機與資料庫能進行數據查詢嗎
描述不是很清楚,資料庫是存儲在哪的?具體實現就不容易說了。
查詢肯定是可以的,ECU的核心也是單片機,如果資料庫存儲在ROM或RAM中的就按資料庫存儲的地址去讀就行了。