PIC單片機(jī)開發(fā)的若干問題_第1頁
PIC單片機(jī)開發(fā)的若干問題_第2頁
PIC單片機(jī)開發(fā)的若干問題_第3頁
PIC單片機(jī)開發(fā)的若干問題_第4頁
PIC單片機(jī)開發(fā)的若干問題_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、PIC單片機(jī)開拓的幾標(biāo)題問題摘要PI單片機(jī)正在國內(nèi)日趨衰止,本文介紹irhipPI系列單片機(jī)開拓過程中硬、硬件圓案的一些經(jīng)歷、本領(lǐng)。閉鍵詞irhip單片機(jī)功耗編程由好國irhip公司消費(fèi)的PI系列單片機(jī),因為其超小型、低功耗、低本錢、多種類等特性,已廣泛使用于財產(chǎn)操做、儀器、儀表、通信、家電、玩具等范圍,本文總結(jié)了做者正在PI單片機(jī)開拓過程中的一些經(jīng)歷、本領(lǐng),供偕止參考。1如何進(jìn)一步降低功耗功耗,正在電池供電的儀器儀表中是一個慌張的考慮果素。PI16系列單片機(jī)本人的功耗較低正在5V,4Hz振蕩頻次時工作電流小于2A。為進(jìn)一步降低功耗,正在保證合意工作要供的前提下,可采與降低工作頻次的要發(fā),工作

2、頻次的降降可年夜年夜降低功耗如PI16正在3V,32kHz下工作,其電流可減小到15A,但較低的工作頻次年夜要招致部分子程序如數(shù)教策畫需占用較多的工夫。正在那種情況下,當(dāng)單片機(jī)的振蕩方法采與R電路形式時,可以采與中途前進(jìn)工作頻次的步伐去打面。詳細(xì)做法是正在忙置的一個I/足如RB1戰(zhàn)S1管足之間跨接一電阻R1,如圖1所示。低速形態(tài)置RB1=0。需舉止快速運(yùn)算時先置RB1=1,因為充電時,電容電壓上降得快,工作頻次刪下,運(yùn)算工夫裁減,運(yùn)算完畢又置RB1=0,進(jìn)進(jìn)低速、低功耗形態(tài)。工作頻次的變化量依R1的阻值而定注意R1沒有能選得太小,以防振蕩電路沒有起振,一樣仄居拔與年夜于5k。此外,進(jìn)一步降低功

3、耗可充分操做“sleep指令。真止“sleep指令,機(jī)器處于寢息形態(tài),功耗為幾個微安。程序沒有單可正在待命形態(tài)操做“sleep指令去等待事變,也可正在延時程序里操做睹例1、例2。正在延時程序中操做“sleep指令降低功耗是一個圓里,同時,即使是閉截至形態(tài),PrtB端心電仄的變化可喚醉“sleep,提早完畢延時程序。那一面正在一些使用處合特別有用。同時注意正在操做“sleep時要處理好與DT、截至的閉連。圖1前進(jìn)工作頻次的要發(fā)例1用plab-編寫例2用as編寫Delay()Delay;此止可減開閉截至指令/*此止可減開閉截至指令*/vl.10fr(i=0;i=10;i+)vfunterSLEEP

4、();Lp1SleepdefszuntergtLp1return2注意INTN中的RBIF位INTN中的各截至容許位對截至形態(tài)位并出有影響。當(dāng)PRTB設(shè)置成輸進(jìn)方法時,RB7:4引足輸進(jìn)正在每一個讀操做周期被抽樣并與舊的鎖存值比較,一旦沒有同便發(fā)死一個下電仄,置RBIF=1。正在開RB截至前,年夜要RBIF已置“1,所以正在開RB截至?xí)r應(yīng)先渾RBIF位,免得受RBIF本值的影響,同時正在截至處理完成后最好是渾RBIF位。3用plab-初級語止寫PI單片機(jī)程序時要注意的標(biāo)題問題3.1程序中嵌進(jìn)匯編指令時注意抄寫格局睹例3。例3hile(1)#ashile(1)#as/*應(yīng)另起一止*/#endas

5、/*沒有能準(zhǔn)確編譯*/#endas/*編譯經(jīng)由過程*/當(dāng)內(nèi)嵌匯編指令時,從“#as到“endas每條指令皆必須各占一止,可那么編譯時會出錯。3.2減法、乘法的最安好的表示要發(fā)睹例4。例4#inlude1671.h#inludeunsignedinta,b;unsignedlng;vidain()a=200;b=2;=ab;/*得沒有到準(zhǔn)確的結(jié)果=400*/去由本由是plab-以88乘法方法去編譯=ab,返回單字節(jié)結(jié)果給,結(jié)果的溢出被忽略。改上例中的“=ab;表達(dá)式為“=a;=b;,最為安好對減法的處理同上。3.3理解乘除法函數(shù)對存放器的占用因為PI片內(nèi)RA僅幾十個字節(jié),空間特別珍貴,而plab

6、-編譯器對RA所在具有沒有釋放性,即一個變量操做的所在沒有能再分撥給此外變量。如RA空間沒有能合意太多變量的要供,一些變量只能由用戶欺壓分撥一樣的RA空間交替操做。而plab-中的乘除法函數(shù)需借用RA空間去存放中間結(jié)果,所以假設(shè)乘除法函數(shù)占用的RA與用戶變量的所在堆疊時,便會招致呈現(xiàn)沒有成推測的結(jié)果。假設(shè)程序頂用到乘除法運(yùn)算,最好先經(jīng)由過程程序機(jī)器碼的反匯編代碼包含正在天死的LST文件中查察乘除法占用所在能可與此外變量所在有辯說,免得程序跑飛。plab-腳冊并出有給出其乘除法函數(shù)對詳細(xì)RA所在的占用情況。例5是乘法函數(shù)對013、014、019、01A所在占用情況。例5部分反匯編代碼#inlud

7、e01A7081FVF1F,#inlude01A80093VF13;借用unsignedlngValue0 x101A90820VF20,harX0 x2d;01AA0094VF14;借用vidain()01AB082DVF2D,Value=20;01A0099VF19;借用X=40;01AD019ALRF1A;借用Value=ValueX01AE235FALL035Fh;挪用乘法函數(shù)01AF1283BF03,501B0009FVF1F;返回結(jié)果低字節(jié)01B10804VF04,01B200A0VF20;返回結(jié)果下字節(jié)4對芯片反復(fù)編程對無硬件仿真器的用戶,老是選用帶EPR的芯片去調(diào)試程序。每變更一次程序,皆是將本去的內(nèi)容先擦除,再編程,其過程黑搭了相等多的工夫,又膨脹了芯片的操做壽命。假設(shè)后一次編程的結(jié)果較前一次,僅是對應(yīng)的機(jī)器碼字節(jié)的一樣位由“1變成“0,便可正在前一次編程芯片上再次寫進(jìn)數(shù)據(jù),而出必要擦除本片內(nèi)容。正在程序的調(diào)試過程中,經(jīng)常碰著常數(shù)的調(diào)整,如常數(shù)的改動能保證對應(yīng)位由“1變“0,皆可正在本片內(nèi)容的根柢擔(dān)當(dāng)編程。此外,因為指令“NP對應(yīng)的機(jī)器碼為“00,調(diào)試過程中指令的刪除,先用“NP指令交換,編譯后也可正在本片內(nèi)容上擔(dān)當(dāng)編程。此外,正在對帶EPR的芯片編程時,特別注意程序保稀形態(tài)位。廠家對新一代帶EPR芯片的保稀形態(tài)位已由本

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論