日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]0 引言 實時控制系統(tǒng)程序設(shè)計中,常涉及到小數(shù)運算問題.計算機系統(tǒng)中用二進制表示小數(shù)的方法有定點數(shù)表示法和浮點數(shù)表示法.采用浮點數(shù)表示法表示的小數(shù)范圍大、精度高,但程序代碼長,運算速度慢.定點數(shù)表示的小數(shù)

0 引言
實時控制系統(tǒng)程序設(shè)計中,常涉及到小數(shù)運算問題.計算機系統(tǒng)中用二進制表示小數(shù)的方法有定點數(shù)表示法和浮點數(shù)表示法.采用浮點數(shù)表示法表示的小數(shù)范圍大、精度高,但程序代碼長,運算速度慢.定點數(shù)表示的小數(shù)范圍小、精度低,但程序代碼短,運算速度快.
使用C語言設(shè)計程序具有程序可讀性強,編程方便等優(yōu)點,但按常規(guī)方法設(shè)計程序時,實時性不如采用匯編語言設(shè)計的程序,這在涉及到小數(shù)運算時表現(xiàn)更為突出.這樣就限制了C語言的應(yīng)用.如果采用合適的計算方法,使用C語言編程可以獲得與匯編語言編程同樣的實時性.
實時控制系統(tǒng)中的前向通道采集的原始數(shù)據(jù)大多是定點整數(shù),例如前向模擬通道的A/D轉(zhuǎn)換器的轉(zhuǎn)換結(jié)果,定時/計數(shù)器的計數(shù)結(jié)果等,都是定點整數(shù).而系統(tǒng)的后向通道能接受的輸入量也都為整數(shù),即由量化產(chǎn)生的有限字長誤差不可避免,精確到小數(shù)位的控制量因執(zhí)行機構(gòu)無法接受而不得不舍去.因而,雖然采用定點數(shù)表示小數(shù)的方法精度低,但在大多數(shù)情況下,仍能滿足實時控制系統(tǒng)的控制精度要求.
MCS-51單片機的內(nèi)部程序存儲器僅有4K,運算速度較慢.對于實時性、代碼長度限制要求較高的控制系統(tǒng),采用MCS-51單片機控制時,不宜大量采用浮點運算.本文介紹Keil C51下的16位定點小數(shù)的乘法程序.

1 定點小數(shù)運算算法
1.1 控制算法的特點.
計算機實時控制系統(tǒng)中,控制算法通??捎孟旅娴牟罘址匠瘫硎荆?br/>


式中y[n]為第n個采樣周期的輸出,通常為二進制整數(shù);x [n]為第n個采樣周期的輸入,通常也為二進制整數(shù);ai、bi為實系數(shù).在保證計算精度的條件下,計算上述差分方程時,將系數(shù)ai、bi轉(zhuǎn)換成整數(shù)或定點小數(shù),會大幅度提高運算速度和大幅度減少代碼長度.這對于在程序存儲器容量或運算速度有限的嵌入式控制器中實現(xiàn)快速控制算法計算有重要意義.

1.2 定點小數(shù)
小數(shù)可分為整數(shù)部分為0的純小數(shù)和帶整數(shù)的小數(shù).純小數(shù)可直接用定點小數(shù)表示,當(dāng)使用16位定點小數(shù)時,分辯率可達2-16,可以獲的足夠的運算精度.

1.3 定點算法
設(shè)x為十進制純小數(shù),M為16位二進制整數(shù).若程序需計算y=(x·M)取整,則可先將x轉(zhuǎn)換成16位二進制定點小數(shù).
X =(x·65536)取整(2)
由于X的小數(shù)點在X的最高位前,2個16位二進制數(shù)相乘結(jié)果為32位二進制數(shù),小數(shù)點在高16位和低16位間,乘法運算后的高16位為計算結(jié)果的整數(shù)部分,低16位為計算結(jié)果的小數(shù)部分.即
(x·M)取整=(X·M)取高16位 (3)
這樣處理后可以大幅度提高運算速度,且大幅度減少代碼長度.
匯編語言程序設(shè)計中的取整操作容易實現(xiàn),在C語言中實現(xiàn)取整操作可以使用聯(lián)合體,方法如下.
先定義2個聯(lián)合體.
union{
unsigned char a_byte[4];
long a_long;
}r;
union{
unigned char b_byte[2];
int b_int;
}p;
第一個是長整數(shù)變量與4字節(jié)變量的聯(lián)合體,長整型變量用于保存計算結(jié)果,第二個是整型變量與2個字節(jié)型變量的聯(lián)合體,用于取整運算.在Keil C51中,長整數(shù)占4個字節(jié),在RAM中按從高到低的順序存放,r.a_byte[0]、r.a_byte[1]存放計算結(jié)果的整數(shù)部分,r.a_byte[2]、r.a_byte[3]存放計算結(jié)果的小數(shù)部分.
通過下列程序,實現(xiàn)取整運算.
p.b_byte[0]=r.a_byte[0];
p.b_byte[1]=r.a_byte[1];
這樣p.b_int為計算結(jié)果的整數(shù)部分.以上程序在編譯后僅為2條數(shù)據(jù)傳送指令,需要4個機器周期的執(zhí)行時間.與采用除法運算或移位運算實現(xiàn)取整運算相比,具有更快的執(zhí)行速度.

2 程序
設(shè)程序需要計算0.12345乘16位二進制數(shù)后取整,采用浮點數(shù)時的程序如下所示.
main()
{
int b;
b=20000;
a=0.12345*b;
}
本程序的運行結(jié)果a=2527,程序編譯后長度513字節(jié),做浮點運算時需要602個機器周期.
main()
{
int a,b;
union{
char c[4];
long d;
}u1;
union{
char e[2];
int f;
}u2;
b=20000;
u1.d=(long)8090*b;
u2.e[0]=u1.c[0];
u2.e[1]=u1.c[2];
}
本程序的運行結(jié)果u2.f=2527,程序編譯后長度129字節(jié),做整數(shù)運算時僅需134個機器周期.

3 結(jié)束語
采用本文中所述方法,使用c語言設(shè)計MCS-51單片機控制算法程序,可獲得與采用匯編語言設(shè)計的控制算法程序同樣的效果.充分發(fā)揮了
c語言設(shè)計程序的優(yōu)點,筆者在設(shè)計的某控制系統(tǒng)時,采用這種方法在獲得了很好的效果.


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉