版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第10章利用CCP模塊設(shè)計頻率計10.5程序設(shè)計10.5.4程序清單#include#include#include/本程序利用CCP1模塊實現(xiàn)一個“簡易數(shù)字頻率計”的功能constchartable11=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0XD8,0 x80,0 x90,0 xFF;/不帶小數(shù)點的顯示段碼表constchartable011=0X40,0X79,0X24,0X30,0X19,0X12,0X02,0X78,0X00,0X10,0 xFF;/帶小數(shù)點的顯示段碼表bank3intcp1z11;unioncp1inty1;unsign
2、edcharcp1e2;cp1u;unsignedcharCOUNTW,COUNT;unsignedcharCOUNTER,data,k;unsignedcharFLAG0XEF;/定義一個數(shù)組,用于存放各次的捕捉值/定義一個共用體/測量脈沖個數(shù)寄存器#defineFLAGIT(adr,bit)(unsigned)(&adr)*8+(bit)/絕對尋址位操作指令staticbitFLAG1FLAGIT(FLAG,0);staticbitFLAG2FLAGIT(FLAG,1);staticbitFLAG3FLAGIT(FLAG,2);unsignedchars4;intT5,uo;doubleR
3、E5;doublepuad5;/spi方式顯示初始化子程序voidSPIINIT()/定義一個顯示緩沖數(shù)組PIR1=0;SSPCON=0 x30;SSPSTAT=0 xC0;設(shè)置SPI的控制方式,允許SSP方式,并且時鐘下降沿發(fā)送,與74HC595,當其/SCLk從低到高跳變時,串行輸入寄存器的特點相對應(yīng)TRISC=0 xD7;TRISA5=0;FLAG1=0;FLAG2=0;FLAG3=0;COUNTER=0X01;/CCP模塊工作于捕捉方式初始化子程序voidccpint()CCP1CON=0X05;T1CON=0X00;PEIE=1;CCP1IE=1;TRISC2=1;/系統(tǒng)其它部分初始
4、化子程序voidinitial()COUNT=0X0B;TRISB1=0;TRISB2=0;TRISB4=1;TRISB5=1;RB1=0;RB2=0;/SPI傳送數(shù)據(jù)子程序voidSPILED(data)SSPBUF=data;do;/SDO引腳為輸出,SCK引腳為輸出/RA5引腳設(shè)置為輸出,以輸出顯示鎖存信號/首先設(shè)置CCP1捕捉每個脈沖的上升沿/關(guān)閉TMR1震蕩器/外圍中斷允許(此時總中斷關(guān)閉)/允許CCP1中斷/設(shè)置RC2為輸入/為保證測試精度,測試5個脈沖的參數(shù)后/求平均值,每個脈沖都要捕捉其上升、下降沿,/故需要有11次中斷/設(shè)置與鍵盤有關(guān)的各口的輸入、輸出方式/建立鍵盤掃描的初始
5、條件/啟動發(fā)送while(SSPIF=0);SSPIF=0;/顯示子程序,顯示4位數(shù)voiddisplay()RA5=0;/準備鎖存for(COUNTW=0;COUNTW4;COUNTW+)data=sCOUNTW;data=data&0 x0F;if(COUNTW=k)data=table0data;/第二位需要顯示小數(shù)點elsedata=tabledata;SPILED(data);/發(fā)送顯示段碼for(COUNTW=0;COUNTW4)COUNTER=0 x01;/若COUNTER超過4,則又從1計起if(data=0 x02)COUNTER=COUNTER-1;if(COUNTER1)
6、if(data=0 x03)FLAG2=1;if(data=0 x04)FLAG2=0;/中斷服務(wù)程序voidinterruptcp1int(void)CCP1IF=0;cp1u.cp1e0=CCPR1L;cp1u.cp1e1=CCPR1H;cp1zdata=cp1u.y1;CCP1CON=CCP1CONA0X01;data+;COUNT-;/周期處理子程序voidPERIOD()T5=cp1z10-cp1z0;RE5=(double)T5;RE5=RE5/5;/頻率處理子程序voidFREQUENCY()PERIOD();RE5=1000000/RE5;COUNTER=0 x04若按下S11
7、鍵,則COUNTER減1/若COUNTER小于1,則又循環(huán)從4計起若按下S10鍵,則建立標志FLAG2若按下S12鍵,則清除標志FLAG2/清除中斷標志/存儲1次捕捉值/把CCP1模塊改變成捕捉相反的脈沖沿/求得5個周期的值/強制轉(zhuǎn)換成雙精度數(shù)求得平均周期,單位為ws/先求周期/周期值求倒數(shù),再乘以1000000,得頻率,/單位為HZ/脈寬處理子程序voidPULSE()intpu;for(data=0,puad5=0;data=9;data+)/求得5 個脈寬的和值/求得平均脈寬/先求脈寬 /暫存脈寬值 /再求周期 /求得占空比/SPI 方式顯示初始化/CCP 模塊工作于捕捉方式初始化/系統(tǒng)
8、其它部分初始化/第一個存儲COUNTER 的值/后面的LED 將顯示 DARK/調(diào)用顯示子程序/鍵盤掃描/存儲數(shù)組指針賦初值/定時器 1 清 0/清除CCP1 的中斷標志,以免中斷一打開就進入/中斷/中斷允許/定時器1 開pu=cp1zdata+1-cp1zdata;puad5=(double)pu+puad5;data=data+2;RE5=puad5/5;/占空比處理子程序voidOCCUPATIONAL()PULSE();puad5=RE5;PERIOD();RE5=puad5/RE5;/主程序main()SPIINIT();while(1)ccpint();initial();if(F
9、LAG2=0)s0=COUNTER;s1=0X0A;s2=0X0A;s3=0X0A;display();keyscan();data=0 x00;TMR1H=0;TMR1L=0;CCP1IF=0;ei();TMR1ON=1;while(1)di();TMR1ON=0;keyscan();if(FLAG1=1)keyserve();if(FLAG2=0)continue;/等待中斷次數(shù)結(jié)束/禁止中斷/關(guān)閉定時器/鍵盤掃描/若確實有鍵按下,則調(diào)用鍵服務(wù)程序/如果沒有按下確定鍵,則終止此次循環(huán),/繼續(xù)進行測量/如果按下了確定鍵,則進行下面的數(shù)值轉(zhuǎn)換和顯示工作if(COUNTER=0 x01)FREQ
10、UENCY();/COUNTER=1,則需要進行頻率處理if(COUNTER=0 x02)PERIOD();/COUNTER=2,則需要進行周期處理if(COUNTER=0 x03)OCCUPATIONAL();/COUNTER=3,則需要進行占空比處理if(COUNTER=0 x04)PULSE();/COUNTER=4,則需要進行脈寬處理k=5;if(RE51)RE5=RE5*1000;k=0 x00;elseif(RE510)RE5=RE5*1000;k=0 x00;elseif(RE5100)RE5=RE5*100;k=0 x01;elseif(RE51000)RE5=RE5*10;k=0 x02;elseRE5=RE5;u
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年粉煤灰銷售合同范本(含供應(yīng)鏈金融服務(wù))
- 二零二五美容院美容院美容院品牌戰(zhàn)略規(guī)劃與實施合同3篇
- 影視院校校外實訓(xùn)基地協(xié)議書(2篇)
- 二零二五年度民辦中學(xué)教師教學(xué)質(zhì)量提升服務(wù)合同4篇
- 打樁施工方案
- 2025年度個人房貸提前還款手續(xù)費合同4篇
- 財務(wù)風(fēng)險述職報告模板
- 2024年中級經(jīng)濟師考試題庫含答案【鞏固】
- 二零二五年度時尚面料品牌授權(quán)合作協(xié)議4篇
- 2025年能源互聯(lián)網(wǎng)項目合作實施保密及技術(shù)交流協(xié)議3篇
- 非誠不找小品臺詞
- 2024年3月江蘇省考公務(wù)員面試題(B類)及參考答案
- 患者信息保密法律法規(guī)解讀
- 老年人護理風(fēng)險防控PPT
- 充電樁采購安裝投標方案(技術(shù)方案)
- 醫(yī)院科室考勤表
- 鍍膜員工述職報告
- 春節(jié)期間化工企業(yè)安全生產(chǎn)注意安全生產(chǎn)
- 保險行業(yè)加強清廉文化建設(shè)
- Hive數(shù)據(jù)倉庫技術(shù)與應(yīng)用
- 數(shù)字的秘密生活:最有趣的50個數(shù)學(xué)故事
評論
0/150
提交評論