基于HT47系列RISC單片機(jī)的智能化儀表設(shè)計(jì)
關(guān)鍵詞: RISC單片機(jī);R-F型A/D轉(zhuǎn)換;分段線性插值法
HT47系列MCU是盛群(Holtek)半導(dǎo)體公司近年推出的8位精簡(jiǎn)指令系統(tǒng)(RISC)單片機(jī),它除了具有RISC類(lèi)單片機(jī)特有的指令數(shù)量少、易記憶、采用流水線式指令執(zhí)行方式、運(yùn)行速度快等優(yōu)點(diǎn)外,其片內(nèi)的兩通道R-F型A/D轉(zhuǎn)換電路,動(dòng)態(tài)LCD液晶驅(qū)動(dòng)電路以及軟件狗定時(shí)器等硬件資源,為設(shè)計(jì)小型乃至便攜式智能化儀器儀表提供了極大的方便,全部硬件由傳感器+HT47C20+液晶片+少量阻容元件構(gòu)成。
圖1 HT47C20的兩通道R-F型A/D轉(zhuǎn)換電路
圖2 R-F型A/D轉(zhuǎn)換過(guò)程
圖3 (c)溫度θ和計(jì)算值Nt的關(guān)系曲線
圖4 用分段線性插值法處理θ-Nt 關(guān)系曲線
R-F型A/D
圖1給出了HT47C20的兩通道R-F型A/D轉(zhuǎn)換電路的結(jié)構(gòu)。
圖中,Timer A和Timer B是兩個(gè)16 位可編程計(jì)數(shù)器,其計(jì)數(shù)初值可以由程序設(shè)定。Timer A對(duì)系統(tǒng)時(shí)鐘(System Clock)或系統(tǒng)時(shí)鐘4分頻信號(hào)(System Clock/4)或?qū)崟r(shí)時(shí)鐘的溢出信號(hào)(RTC Output)計(jì)數(shù);Timer B對(duì)通道1或通道2的RC振蕩電路產(chǎn)生的脈沖信號(hào)計(jì)數(shù)。下面我們以利用通道1構(gòu)成的溫度儀表為例,對(duì)其溫度測(cè)量原理和設(shè)計(jì)方法作一介紹。
利用圖2可以清晰地說(shuō)明R-F型A/D轉(zhuǎn)換過(guò)程:
1.見(jiàn)圖2(a),Timer B對(duì)參考電阻Rs、參考電容Cs組成的振蕩電路產(chǎn)生的振蕩脈沖計(jì)數(shù),Timer A對(duì)系統(tǒng)時(shí)鐘計(jì)數(shù)。通過(guò)置位有關(guān)特殊功能寄存器相關(guān)位可使 Timer A、Timer B同時(shí)啟動(dòng)。Timer B由初值0000H-NS計(jì)數(shù)到0000H(溢出);Timer A由初值0000H計(jì)到m,兩者同時(shí)停止計(jì)數(shù)。NS的數(shù)值要保證Timer B先溢出,這段時(shí)間即為閘門(mén)時(shí)間。
2.見(jiàn)圖2(b),Timer A初值改為0000H-m, Timer B初值改為0000H。Timer B對(duì)傳感器(NTC熱敏電阻)電阻Rt、參考電容Cs組成的振蕩電路產(chǎn)生的振蕩脈沖計(jì)數(shù),Timer A還是對(duì)系統(tǒng)時(shí)鐘計(jì)數(shù)。再次同時(shí)啟動(dòng),當(dāng)Timer A溢出時(shí)兩者同時(shí)停止計(jì)數(shù)且申請(qǐng)中斷。可以看出兩次計(jì)數(shù)的閘門(mén)時(shí)間相等,此時(shí)Timer B的計(jì)數(shù)值為Nt。
從上述過(guò)程可以看出:NS·(1 /fs)=Nt·(1/ft)
所以 Nt=NS·ft/fs (1)
而 fs=1/(ks·Rs·Cs)
ft=1/(kt·Rt·Cs)
式中ks和kt是和電源電壓、環(huán)境溫度以及RsCs或RtCs乘積有關(guān)的常數(shù)(一般取 1.9~2.3),此處可看作近似相等,故有:
ft/fs=Rs/Rt
將此式代入上述Nt的表達(dá)式中,可得:
Nt=NS·Rs/Rt (2)
從上文可知,NS是Timer B在規(guī)定的閘門(mén)時(shí)間內(nèi)對(duì)參考電阻Rs、參考電容Cs組成的振蕩電路產(chǎn)生的振蕩脈沖的計(jì)數(shù)值,和Rs一樣,都是事先設(shè)定的常數(shù)。式(2)表示了計(jì)數(shù)值Nt和傳感器電阻Rt近似成反比,它們之間的關(guān)系如圖3(a)所示。
熱敏電阻本身的電阻-溫度關(guān)系曲線如圖3(b)所示,通過(guò)圖形變換可以得到被測(cè)溫度和計(jì)數(shù)值Nt之間的關(guān)系曲線如圖3(c)所示。
用分段線性插值法對(duì)被測(cè)溫度和計(jì)數(shù)值Nt之間的關(guān)系曲線進(jìn)行處理,即可從計(jì)數(shù)值Nt計(jì)算出對(duì)應(yīng)的被測(cè)溫度。
把圖4的q-Nt關(guān)系曲線分成若干段,每段曲線用一段對(duì)應(yīng)的折線來(lái)代替。相對(duì)于每一段折線,可求出q-N的線性函數(shù):
q = a· Nt+b
式中:a為該段折線的斜率,b為截距。
值得指出的是,利用HT47C20片內(nèi)的兩個(gè)通道R-F型A/D轉(zhuǎn)換電路作溫度測(cè)量,Timer B對(duì)外部RC振蕩電路的兩次計(jì)數(shù),使用同一個(gè)振蕩電容Cs(即參考電容)。從式(2)可以看出:計(jì)數(shù)值Nt和電容Cs沒(méi)有直接關(guān)系,因此當(dāng)電容量受環(huán)境溫度變化時(shí)不會(huì)影響測(cè)溫結(jié)果。這一點(diǎn)對(duì)提高儀器的系統(tǒng)測(cè)量精度是非常有意義的。
圖5 主程序和中斷服務(wù)程序的軟件流程
圖6 顯示緩沖區(qū)布局及相關(guān)引腳
圖 7 HT47C20構(gòu)成的簡(jiǎn)單儀表電路
R-F型A/D轉(zhuǎn)換構(gòu)成溫度測(cè)量?jī)x表的軟件流程
圖5給出了利用HT47C20的片內(nèi)R-F型A/D轉(zhuǎn)換電路構(gòu)成溫度測(cè)量?jī)x表的軟件流程。
HT47C20片內(nèi)動(dòng)態(tài)液晶顯示電路包含顯示緩沖區(qū)和驅(qū)動(dòng)輸出電路兩部分。顯示緩沖區(qū)占用內(nèi)部RAM 40H~53H單元地址(在系統(tǒng)不使用液晶顯示電路時(shí)可作為普通RAM單元使用),任何用間接尋址方式寫(xiě)入顯示緩沖區(qū)的字形碼都將直接(經(jīng)驅(qū)動(dòng)輸出電路)使液晶顯示屏顯示相應(yīng)的字符。圖6表示了顯示緩沖區(qū)的布局以及各存儲(chǔ)單元和芯片外部相關(guān)引腳的對(duì)應(yīng)關(guān)系。
從圖6可以看出,顯示緩沖區(qū)各存儲(chǔ)單元僅低4位有效,整個(gè)顯示電路經(jīng)芯片內(nèi)部掩膜選擇可外接20*2、20*3或19*4(即1/2duty、1/3duty或1/4duty)的C型液晶顯示器。
圖7是用HT47C20為核心部件構(gòu)成的非常簡(jiǎn)單的儀表硬件電路,圖中僅畫(huà)出一個(gè)測(cè)量通道In0,如果把另一個(gè)測(cè)量通道In1也利用起來(lái),不需要增加外電路就可以同時(shí)測(cè)量?jī)陕纺M量??梢钥闯銎湫詢r(jià)比非一般單片機(jī)電路可比。
結(jié)語(yǔ)
HT47系列除了HT47C20外,和它結(jié)構(gòu)、功能相同的還有HT47C20L(掩膜/低功耗版),HT47R20(OTP版)。值得指出的是盛群半導(dǎo)體公司最新推出的新品HT47C10在結(jié)構(gòu)上作了不少簡(jiǎn)化,如片內(nèi)程序存儲(chǔ)器,數(shù)據(jù)存儲(chǔ)器容量,液晶顯示電路的驅(qū)動(dòng)筆劃數(shù)量適當(dāng)減少,R-F型A/D轉(zhuǎn)換通道減少為一個(gè),但在某些應(yīng)用場(chǎng)合其性價(jià)比卻更高一些。
參考文獻(xiàn)
1 盛群.(Holtek)半導(dǎo)體公司. HT47C20產(chǎn)品技術(shù)資料
2 茅力群,宋加仁. 用VB5.0實(shí)現(xiàn)的非線性曲線的線性化處理.計(jì)量技術(shù),2000(2)
作者簡(jiǎn)介:茅力群,畢業(yè)于杭州大學(xué)計(jì)算數(shù)學(xué)專(zhuān)業(yè),博士。現(xiàn)任杭州商學(xué)院電子與信息工程學(xué)院講師,從事電路與系統(tǒng)及微機(jī)應(yīng)用方面的教學(xué)和科研工作。
評(píng)論