新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機查表程序的自動生成技術

單片機查表程序的自動生成技術

作者: 時間:2012-11-15 來源:網絡 收藏


利用以上,計算時輸入文件名為A.ASM,Vmax=3,得至的A.ASM的內容如下(共90行表格,略去其中的大部分表格):
;A.ASM
SUB1 MOVWF BUF
SUBLW .90
BTFSS STATUS,C
RETLW .0
MOVLW HIGH($+4)
MOVWF PCLATH
MOVF BUF,W
ADDWF PCL,F(xiàn)
RETLW .0;0
RETLW .5;1
……
RETLW .90;72
RETLW .86;73
RETLW .81;74
……
RETLW .11;88
RETLW .5;89
RETLW .0;90

把以下插入的適當地方,時中要賦以W相應的值,再CALL

SUB1就可以得到sin(x)第W點上的值。整個計算約10個指令周期(如采用4MHz晶振,為10μs左右)。如果采用乘除的方法計算,至少要花幾百甚至上千個指令周期,而且得到的結果精度也差。

2.2 非線性插值

應用中會遇到非線性元件,例如熱敏電阻的電阻-溫度特性、斷路器的保護特性等都是非線性關系。這里以斷路器的保護特性為例,說明自動編程的應用。假設現(xiàn)在要仿真的斷路器的特性為雙曲線,如圖1所示。

據此,可以設延時時間與電流的關系為

(I+I0)(t+t0)=K

(1)

由圖1的三個點可以得到以下聯(lián)立方程組:

(I+20)(t+33)=K

(I+40)(t+20)=K (2)

(I+90)(t+10)=K

采用迭代法解得I0=11.111 1,t0=0.222

2,K=1 033.58,代入式(1)得

t=[1 033.58/(I+11.111 1)]-0.222

2 (3)

現(xiàn)在假設在硬件線路中,電流信號是轉換為電壓信號經A/D后得到的,其相應點的關系為:0A→0V,100A→3V,A/D為8位,A/D參考電壓為5V。轉換計算首先將A/D值轉換為對應的電壓值,再將電壓值轉換為對應的電流值I,再根據式(3)求相應的延時時間T,最后將延時時間T再轉換為延時的間常數T0。T0按式(4)計算:

(256-t0)·Tcy·K=T (4)

t0=256-t/(Tcy·K) (5)

其中,Tcy為指令周期,在4MHz晶振時,Tcy=1μs;K為預分頻系數;t為欲延時的時間,單位為μs。

晶振相關文章:晶振原理


評論


相關推薦

技術專區(qū)

關閉