下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第11章交流電壓測量11.3.2 程序活單該程序已在模板上調(diào)試通過,可作讀者的參考。有關(guān)顯示部分請讀者參考本書相關(guān)章 節(jié),有關(guān)A/D轉(zhuǎn)換的詳細設(shè)置請參考前面章節(jié)。<pic.h><math.h>#include<stdio.h>#include #include/該程序用于測電網(wǎng)的交流電壓有效值,最后的結(jié)果將在4個LED上顯示,保留/1位小數(shù)。需要將 PICC的double型數(shù)據(jù)選成32位/為了保證調(diào)試時數(shù)據(jù)運算的精確性,union adres int y1;unsigned adresult bank3char adre2/unsignedint re40;
2、char k, data ;/doublesqu , squad;/定義一個共用體定義存放A/D轉(zhuǎn)換結(jié)果的數(shù)組,在bank3中/定義幾個通用寄存器/平方寄存器和平方和寄存器,squ又通用為存儲其 它數(shù)值191int uobank1s4;constunsigned charchar table10=0xc0/此數(shù)組用于存儲需要顯示的字符的ASII碼,0xf9 , 0xa4, 0xb0, 0x99, 0x92, 0x82, 0XD8 0x80,0x90;/不帶小數(shù)點的顯示段碼表,0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x78, 0x00,const char ta
3、ble010=0x400x10; 帶小數(shù)點的顯示段碼表/A/D轉(zhuǎn)換初始化子程序void adinitial()ADCON0=0x 1/ADCON1=0X8E/選擇A/D通道為RA0且打開A/D轉(zhuǎn)換器在工作狀態(tài),使 A/D轉(zhuǎn)換時鐘為8Tosc轉(zhuǎn)換結(jié)果右移,及ADRES寄存器的高6位為"0"把RA0口設(shè)置為模擬量輸入方式ADIE=1PEIE=1;/A/D轉(zhuǎn)換中斷允許/外圍中斷允許TRISA0=1;/設(shè)置RA0為輸入方式/spi方式顯示初始化子程序voidSPIINIT()(PIR1=0;SSPCON=0x3 0SSPSTAT=0xC 0/設(shè)置SPI的控制方式,允許SSP方式,并
4、且時鐘下降沿發(fā)送,與"74HC595,當(dāng)其/SCLK從低到高跳變時,串行輸入寄存器 ”的特點相對應(yīng)TRISC=0xD7/SDO引腳為輸出,SCKSI腳為輸出TRISA5=Q/RA5引腳設(shè)置為輸出,以輸出顯示鎖存信號/系統(tǒng)其它初始化子程序void i nitial()(CCP2IE=0 SSPIE=Q CCP2CON=0X0B CCPR2H=0X01CCPR2L=0XF;4/中斷服務(wù)程序/禁止CCP斷/禁止SSP中斷/初始化CCP2CONCCP初特別事件觸發(fā)方式/初始化CCPR窈存器,設(shè)置采樣間隔500 s,/ 一個周期內(nèi)電壓采40個點void interrupt (CCP2IF=0A
5、DIF=0;adint(void)/清除中斷標(biāo)志adresult.adre0=ADRESL ;adresult.adre1=ADRESH ; /讀取并存儲 A/D轉(zhuǎn)換結(jié)果,A/D轉(zhuǎn)換的結(jié)果 /通過共用體的形式放入了變量 y1中rek=adresult.y1 ;/1次A/D轉(zhuǎn)換的結(jié)果存入數(shù)組k+;/數(shù)組訪問指針加1/SPI傳送數(shù)據(jù)子程序void SPILED(data)/啟動發(fā)送SSPBUF=data do(while(SSPIF=0);SSPIF=O;/主程序main()(adinitial() ;/A/D 轉(zhuǎn)換初始化SPIINIT() ;/spi方式顯示初始化initial() ;/系統(tǒng)其它
6、初始化while(1)(k=0;/數(shù)組訪問指針賦初值TMR1H=0X00 ;TMR1L=0X00 / 定時器 1 清 0ei() ;/中斷允許T1CON=0X01/打開定時器1while(1)(if(k=40)break;/A/D 轉(zhuǎn)換次數(shù)達到 40,則終止di() ;/禁止中斷for(k=0 ; k<40; k+)rek=rek-0X199; /假設(shè)提升電壓為 2 V,對應(yīng)十六進制數(shù) 199H,/則需在米樣值的基礎(chǔ)上減去該值for(k=0 , squad=0; k<40; k+) (uo=rek;squ=(double)uo ;squ=squ*5/1023 ;squ=squ*sq
7、u ;/強制把采得的數(shù)據(jù)量轉(zhuǎn)換成雙精度數(shù),以便運算/把每點的數(shù)據(jù)轉(zhuǎn)換成實際數(shù)據(jù)/求一點電壓的平方squad=squad+squ;squ=squad/40 ;squ=sqrt(squ);squ=squ*154.054 ;/以上求得40點電壓的平方和,存于寄存器 squad中/求得平均值/開平方,求得最后的電壓值/通過變壓器的變比和分壓電阻分配確定該系數(shù)/以上得到了實際電網(wǎng)的電壓值squ=squ*10;/為了保證顯示的小數(shù)點的精度,先對電壓值乘以10uo=(int)squ ;/強制把U轉(zhuǎn)換成有符號整型量sprintf(s , "%4d”, uo);/通過sprintf 函數(shù)把需要顯示的電壓數(shù)據(jù)轉(zhuǎn)換成/ASII碼,并存于數(shù)組S中RA5=0/準(zhǔn)備鎖存for(k=0 ; k<4; k+)data=sk;data=data&0X0F ;/通過按位相與的形式把 ASII碼轉(zhuǎn)換成BCDif(k=2) data=table0data ; /因為squ已乘以10,則需在第2位打小數(shù)點else data=tabledata ;/ table0 存儲帶小數(shù)點的顯示段碼,SPILED(data);for(k=0 ; k&l
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024屆陜西省恒口高級中學(xué)高三數(shù)學(xué)試題5月月考
- 遼寧省丹東市東港市2024屆九年級上學(xué)期期中考試數(shù)學(xué)試卷(含答案)
- “互聯(lián)網(wǎng)”在社會中的應(yīng)用 課件 2024-2025學(xué)年電子工業(yè)出版社(2022)初中信息技術(shù)第一冊
- 5年中考3年模擬試卷初中道德與法治八年級下冊02第2課時基本政治制度
- 愛情小說鑒賞課件
- 2024-2025高中物理奧賽解題方法:十 假設(shè)法含答案
- DB11-T 2021-2022 12345市民服務(wù)熱線服務(wù)與管理規(guī)范
- DB11-T 2006-2022 既有建筑加固改造工程勘察技術(shù)標(biāo)準(zhǔn)
- 倉庫裝修材料采購
- 冬季施工準(zhǔn)備工作
- 2023中國人工智能系列白皮書-大模型技術(shù)(2023版)
- 2024年國家能源集團云南電力有限公司招聘筆試沖刺題(帶答案解析)
- 《中國傳統(tǒng)建筑》課件-中國古代皇家建筑
- GJB9001C首件鑒定報告
- 螃蟹購銷合同范本(5篇)
- ISO9001-2015內(nèi)審員專項測試題附答案
- 2024年《考評員》應(yīng)知應(yīng)會考試題庫(附答案)
- 作業(yè)許可監(jiān)督檢查表
- 幼兒園學(xué)生學(xué)情分析
- 2型糖尿病患者生活方式自我管理處方范例
- 電子政務(wù)考試題庫與答案
評論
0/150
提交評論