版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> ARM芯片應(yīng)用一例</b></p><p> 中圖分類號(hào):F870 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-914X(2015)13-0035-01 </p><p> 本單位是專業(yè)培訓(xùn)機(jī)構(gòu)。在為學(xué)員提供培訓(xùn)的同時(shí)還要提供一些服務(wù),如提供熱水等。但由于學(xué)員人數(shù)不是固定的,學(xué)習(xí)時(shí)間也不定,所以原有設(shè)備只能提供滿箱水位和固定溫度,這樣學(xué)員少時(shí)
2、就造成了浪費(fèi)。本嵌入式ARM應(yīng)用就是通過(guò)總服務(wù),根據(jù)學(xué)員人數(shù)具體要求通過(guò)總臺(tái)PC上位機(jī)控制提供合理的水溫和水量. </p><p> 一、系統(tǒng)的主要組成與功能 </p><p> 1 工作示意圖(略) </p><p> 其中控制器包含下位機(jī)、振蕩電路、整流放大電路等。它的工作原理是當(dāng)上位機(jī)決定水位后通過(guò)串口通信傳給下位機(jī)并控制進(jìn)水閥打開進(jìn)水,同時(shí)接通電原加熱
3、。當(dāng)達(dá)到設(shè)定的水位,進(jìn)水閥關(guān)閉,加熱溫度達(dá)到設(shè)定溫度關(guān)斷電原。這樣循環(huán)工作就達(dá)到了設(shè)計(jì)要求。 </p><p><b> 2 振蕩電路 </b></p><p> 振蕩電路由555集成塊組成間接反饋式多諧振蕩電路,當(dāng)電容C1進(jìn)入充電過(guò)程時(shí),它的充電電阻為Ra+Rb,相應(yīng)的充電時(shí)間常數(shù)為(Ra+Rb)C1,當(dāng)電容C1進(jìn)入放電過(guò)程時(shí),它的放電電阻為Rb,相應(yīng)的放電時(shí)間
4、常數(shù)為RbC1。因比充、放電時(shí)間常數(shù)是不相等的。電路振蕩頻率的計(jì)算也跟著發(fā)生變化,由于電容充電與放電的通路不完全相同,因此振蕩公式變成了: </p><p> T1=0.693(Ra+Rb)Ca1 </p><p> T2=0.693RbCa1 </p><p> T=T1+T2=0.693(Ra+2Rb)C1 </p><p> f
5、=1.443/(Ra+2Rb)C1 </p><p> 當(dāng)Ra=10K、Rb=20K、C1=100P: </p><p> f=2866k用SBT16示波器實(shí)測(cè)為100K。 </p><p><b> 3 整流放大電路 </b></p><p> 脈沖信號(hào)源經(jīng)測(cè)量平板電容到AA,經(jīng)D1、D2、C11、R1及R2匹
6、配電阻組成的整流電路,其中D1、D2為高頻二極管、C11為0.1UF、R1為10K。經(jīng)整流過(guò)的信號(hào)加到運(yùn)放OP07第二腳負(fù)輸端并由反饋電阻R3決定放大倍數(shù),其中D3、D4為保護(hù)管,R3為反饋電阻1MΩ。 </p><p><b> 4 下位機(jī) </b></p><p> 下位機(jī)采用Samsung公司的ARM7,3SC44B0芯片。 </p><
7、p> 本設(shè)計(jì)主要使用8 通道10 位ADC中AIN0、AIN1,兩通道.分別通過(guò)熱敏元件和平板電容變化來(lái)測(cè)量電壓變化,從而達(dá)到控制目的. </p><p> 5 通信模塊本通訊模塊主要包括了電源、232電平轉(zhuǎn)換、485電路三部分。本電路的232電平轉(zhuǎn)換電路直接使用MAX232集成電路,485電路采用了MAX485集成電路。 </p><p><b> 二、下位機(jī)程序
8、</b></p><p> 本下位機(jī)的程序是在ADS1.2集成開發(fā)境下編譯的,并通過(guò)外購(gòu)JTAG程序下載器,并有生產(chǎn)廠商提供Flash Programmmmer下載軟件和芯片S3C44b0提供商提供配置文件(文件包). </p><p> int main(void) </p><p><b> //主程序 </b></
9、p><p> {U8 H,C,i; </p><p> int temp,temp1,temp2,temp3; </p><p> int a0=0,a1=0,b0=0,b1=0; </p><p> sysUtilsSetPllValue (24, 6, 1);//設(shè)置片內(nèi)倍頻器 </p><p> IoCon
10、fig ();//設(shè)置端口 </p><p> ADC_Init() ;//模數(shù)轉(zhuǎn)換初始化 </p><p> console_init (115200);//設(shè)置端口波特率 </p><p><b> while(1) </b></p><p> {a0 = Read_Adc(0);//ADC? 0通道進(jìn)行轉(zhuǎn)換
11、,返回轉(zhuǎn)換的數(shù)據(jù) </p><p> a1 = Read_Adc(1);//ADC ? 1通道進(jìn)行轉(zhuǎn)換,返回轉(zhuǎn)換的數(shù)據(jù) </p><p> sysUtilsUSecDelay(2000); </p><p> temp= a0; </p><p> UartReceive(xh); </p><p> tem
12、p1=xh; </p><p> if(temp1>=temp) </p><p> { rPDATB=0x1FF} //芯片20腳輸出高電平控制進(jìn)水閥開 </p><p> if(temp1<temp) </p><p> { rPDATB=0x0FF} //芯片20腳輸出高電平控制進(jìn)水閥并 </p>&l
13、t;p> Temp2=a1; </p><p> UartReceive(yv); </p><p> Temp3=yv; </p><p> if(temp3>=temp2) </p><p> { rPDATB=0x0BF} //芯片19腳輸出高電平控制進(jìn)水閥開 </p><p> if(t
14、emp3<temp2) </p><p> { rPDATB=0x03F} //芯片19腳輸出高電平控制進(jìn)水閥并 </p><p><b> b0=a0H; </b></p><p><b> b1=a1; </b></p><p> putch(b0); </p>&l
15、t;p> putch(b1); </p><p><b> } </b></p><p><b> } </b></p><p><b> 三、上位機(jī)程序 </b></p><p> MSComm1.Settings=“115200,N,8,1”‘波特率1152
16、00bit/s,無(wú)校驗(yàn),‘8位數(shù)據(jù),1位停止位 </p><p> MSComm1.CommPort=1??‘設(shè)定串口,1為com1 </p><p> MSComm1.InBufferSize=8?‘設(shè)置返回接收緩沖區(qū)的大小,以字符為單位 </p><p> MSComm1.OutBufferSize=2 </p><p> If
17、MSComm1.PortOpen=True Then MSComm1.PortOpen=False’關(guān)串口 </p><p> MSComm1.RThreshold=4‘設(shè)置并返回產(chǎn)生oncomm事件的字符數(shù), </p><p> 以字符為單位,RThreshold?‘為1,接收緩沖區(qū)收到每一個(gè)字符都會(huì)使MSComm1控件產(chǎn)生OnComm事件. MSComm1.SThreshol
18、d=1‘ </p><p> MSComm1.InputLen=0‘設(shè)置從接收緩沖區(qū)讀取的字?jǐn)?shù),為0讀取整個(gè)緩沖區(qū) </p><p> MSComm1.InputMode=comInputMode Text?‘以文本方式接收 </p><p> If MSComm1.PortOpen=Fales Then MSComm1.PortOpen=True </
19、p><p> MSComm1.InBufferCount=0?‘清空接收區(qū) </p><p> Me.Caption=“水量.溫度”,雙擊窗體內(nèi)的[MSCoomm]控件, </p><p> 向[Private Sub MSComm1- OnComm()]函數(shù)中添加接牧數(shù)據(jù)代碼. </p><p> Private Sub MSComm1
20、- OnComm() </p><p> Dim rec As String </p><p> Dim B As Variant </p><p> Select Case MSComm1.CommEvent </p><p> Case comEvREeceive </p><p> rec= MSCom
21、m1.Input </p><p> B=Right(rec,1)‘截rec數(shù)據(jù)右邊字符 </p><p> If(B=C)Then Text1.Text=rec </p><p> If(B=H)Then Text2.Text=rec </p><p> MSComm1.InBufferCount=0 ‘清空接收緩沖區(qū) </p
22、><p> End Select,直接按[5]鍵運(yùn)行程序.用通訊模塊連接上位機(jī)和下位機(jī). </p><p><b> 參考文獻(xiàn) </b></p><p> [1]單片計(jì)算機(jī)及其應(yīng)用,白駒珩等編著,成都:電子科技大學(xué)出版社,1994 </p><p> [2]ARM嵌入式應(yīng)用技術(shù)基礎(chǔ),劉凱,主編,清華大學(xué)出版社 <
23、;/p><p> [3]ARM嵌入式應(yīng)用技術(shù)應(yīng)用,劉凱,編著,清華大學(xué)出版社 </p><p> [4]ARM嵌入式C編程標(biāo)準(zhǔn)教程,侯殿有,才華,編著,人民郵電出版社 </p><p> [5]ARM嵌入式系統(tǒng)軟件開發(fā)實(shí)例(―),周立功等編著,北京航空航天大學(xué)出版社 </p><p> [6]Visual Basic串口通信及編程實(shí)例,張
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
評(píng)論
0/150
提交評(píng)論