版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、PIC單片機(jī)編程樣例HCU:PIC16F1938;開(kāi)發(fā)語(yǔ)言:C語(yǔ)言開(kāi)發(fā)工具:編譯環(huán)境:MPLAB IEDC 編譯器:HI-TECH PICC C compiler 編輯軟件: source in sight 燒錄一具:MPLABICD2仿真軟件:Protues說(shuō)明:程序已經(jīng)通過(guò)編譯并在仿真軟件和硬件平臺(tái)上成功跑起來(lái);目的:對(duì)用到PIC16F系列單片機(jī)開(kāi)發(fā)軟件的群眾提供樣例支持,希望有幫助。Protues仿真圖:D1JCCi PIM TBm&tT卜itH4I C2 i UP:-丄USUI 1 丄 CKI 2 臨rrrckiKi ADZ 湖 FC: |兀訊IBF UM OTTg 銬 3 i. I
2、21 bF 昶 BA ;兇“ H I I 05/CP atoUi 一T LG 匕 llll ICV.EM ve ;. 2 uu r/vi 1 Ahi. 1H 仝心 Ljll =wn3sari: LKOL TIVUFO: IIYUIT HJ T TCP 丈 L DLK bl4IT4rinjKI FJBI*! ill I 1 1 StRIPSiJP liiULLWRBrflTlilN2 XF iKLPaTOUCCB=:B*1/UF KiF 1 DJCXCC IFDHiN E IDfllKH*!NfHSliltfliFSICXO. I -asicMCLtncrcij-jGa-4 |RIT1F rmr
3、 SCK匚 Vii inc1、一些定義typedef voidtypedef bitVOID;BIT;typedef un sig ned char UINT8; typedef int INT16;typedef un sig ned int UINT16; typedef long INT32:typedef un sig ned long UINT32;VOID delay( VOID )int i = 100;while ( i);2、EEPRO 讀寫(xiě)/* 功能:從EEPRO中讀取一個(gè)字節(jié)的數(shù)據(jù)原 型:UINT8 EEPROM_read( UINT8 addr )參數(shù)說(shuō)明:輸入?yún)?shù):a
4、ddr輸入地址輸出參數(shù):無(wú)返回:讀取的字節(jié)注意:*/UINT8 EEPROM.read( UINT8 addr )UINT8 EE.data;EEADRL 二 addr;EEPGD 二 0;CFGS = 0;GIE = 0; /禁止所有中斷RD = 1;asm( n op);EE.data = EEDATL;RD = 0;GIE = 1; /恢復(fù)所有中斷向EEPRO屮寫(xiě)入一個(gè)字節(jié)的數(shù)據(jù)return EE_data;,* * * * * * * * * * * * * * Jyfj :原 型:VOID EEPR0M_write( UINT8 addr, UINT8 ee.data ) 參數(shù)說(shuō)明:
5、輸入?yún)?shù):addr輸入地址,ee_data需要寫(xiě)入的數(shù)據(jù) 輸出參數(shù):無(wú) 返回:無(wú)注意:*VOID EEPRONLwrite( UINT8 addr, UINT8 ee;_data )tEEADRL =addr;EEDATL =ee_data;EEPGD 二0;CFGS = 0JGIE = 0;/禁止所有屮斷WREN = 1;/運(yùn)行執(zhí)行編程/擦除操作EEC0N2:=0x55; /必須按這樣的時(shí)序EEC0N2:二OxAA;WR = 1;while( WR=1 ); /等待寫(xiě)操作完成GIE = 1;WREN = C);/禁止執(zhí)行編程/擦除操作3、ADC模塊/* ADC模塊的初始化*/選擇AN12通道
6、、ADC使能位static VOID ADC_init( VOID )ADC0N1 = Obi1100000; /AD轉(zhuǎn)換結(jié)果右對(duì)齊,64分頻作為轉(zhuǎn)換時(shí)鐘,選擇VSSADCONO = ObOOllOOOl;VDD乍為參考電壓ADIF = 0; /清楚AD轉(zhuǎn)換標(biāo)志 static UINT16 throttle = 0;static VOID AD_Fu nctio n( VOID )UINT8 i;UINT16 AD.result;UINT16 AD.max 二 0;UINT16 AD.min 二 2000;throttle = 0;for( i=0; i ADresult ? AD_maxAD
7、.result;AD_min = AD_min = 10 )timeco unt = 0; timelOmsflg = 1; timelmsflg = 1;根據(jù)實(shí)際情況添加自己的代碼5、10初始化/* 10初始化*/static VOID I0_i nit(VOID) 所有10為數(shù)字10所有10為 output初始化所有10輸出電平為低電平/* PORT A */ANSELA = 0x00;/TRISA = 0x00;/PORTA = 0x00;/* PORT B */ANSELB 二 0x03; RBO和RB1都綁定為同一模擬AD輸入TRISB 二 0X03; RBO和RBI為輸入,其他端口
8、為輸出PORTB 二 0x00;/* POTR C */PORTC 二Oxff;/TX和RX引腳都要設(shè)置為1,禁止CCP1引腳輸出驅(qū)動(dòng)器LATC = Oxff;TRISC 二0xC4;6、PWM模塊/* PWM模塊的初始化*/static VOID PWMCCPnit(VOID)CCP1C0N = ObOOOOllOO; / 單輸出,PWM 模式廣廣TVTMDGC O m. 111111 AA .c /仁End與PR2 = 249;/PWM周期計(jì)算:(PR2 + 1)*0. 0625*4(16Mhz晶振四分即指令周期廣預(yù)分頻值,當(dāng)PR2為249時(shí),PWM頻率為16KT2C0N 二 0x00;/
9、預(yù)分頻為1:1 ;TMR20N 二 1;/使能定時(shí)器Timer2TRISC2 二 0;/打開(kāi)CCP1引腳輸出驅(qū)動(dòng)器CCPR1L 二 0x00; /PWM占空比為0CCP1C0N &二 ObllOOllll; /*功能:PWM占空比設(shè)置原型:VOID PW_WidthSet ( UINT8 width )參數(shù)說(shuō)明:輸入?yún)?shù):width占空比的百分比分子,設(shè)置值從0至100,例如width = 50時(shí),設(shè)置的占空比為50%輸出參數(shù):無(wú)返回:無(wú)注意:*/static VOID PWMJVidthSet( UINT8 width )UINT16 PBLwidth;UINT16 tmp;PWM_widt
10、h = width * 10;if ( 100 = width )經(jīng)過(guò)Protues仿真,100時(shí)至少比1000大于4才可以達(dá)到完全的PWM_width +二 4;/*高八位賦值*/CCPR1L = PW_width 2 ;/*低兩位賦值*/tmp = PWM_width & 0x0003;tmp = tmp 4;CCP1C0N &二 ObllOOllll;CCP1C0N = tmp;7、串口通訊模塊void uart_ in it (void)UINT8 ii;for (i i二0;i i _SUB_NUM_;i i+)get_uart_subi i二Oxff;RCSTA = OxbO;TX
11、STA = 0x20;/add by lihf for test/TXSTA = 0x20;BAUDC0Nbits.BRG16=0;SPBRGH = 0;/8SPBRG 二 _F0SC_/64/_BAUD_T;位疋時(shí)器 Baud Rate Generator /23;TXIE = 0; /發(fā)送不需要屮斷處理RCIE 二 1;PEIE = 1;/沒(méi)有開(kāi)全局中斷/發(fā)送數(shù)據(jù)static VOID UART.se nt( UINT8 byte ) while( 0 = TXIF )/con ti nue;TXREG = byte;while ( 0 = TRMT )asm( n op);/接收在屮斷里面調(diào)用uart_handler 0函數(shù)#defi ne _SUB_NUM_ 50UINT8 get_uart_subLSUB_NUMj ;void uart_ha ndler(void)UINT8 i;if( 1 = RCIF )RCIF = 0;for(i=0;i+)get_uart_sub Li=get_uart_sub L i+1;get_uart_sub_SUB_NUM_-1 = RCREG;Protues中如何仿真串口通訊
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 強(qiáng)化項(xiàng)目管理提升執(zhí)行力計(jì)劃
- 創(chuàng)新項(xiàng)目推進(jìn)與管理培訓(xùn)
- 品牌擴(kuò)展的機(jī)會(huì)與挑戰(zhàn)計(jì)劃
- 規(guī)劃班級(jí)年度活動(dòng)主題計(jì)劃
- 職場(chǎng)目標(biāo)的實(shí)現(xiàn)方法計(jì)劃
- 2023年現(xiàn)代醫(yī)學(xué)臨床檢驗(yàn)參考值
- 2024年自考畢業(yè)生求職面試常見(jiàn)的問(wèn)題以及對(duì)策
- 配電室值班電工年終總結(jié)
- 美業(yè)顧客管理培訓(xùn)
- 幕墻系統(tǒng)抗震設(shè)計(jì)方案
- 九年級(jí)化學(xué)上冊(cè) 第2單元《課題2 氧氣》教學(xué)設(shè)計(jì) (新版)新人教版
- 部編二年級(jí)上冊(cè)道德與法治全冊(cè)教案(共16課)
- 山東濱盛文旅體育產(chǎn)業(yè)集團(tuán)有限公司招聘筆試題庫(kù)2024
- 掛靠、被掛靠核算表格
- 作物育種學(xué)智慧樹(shù)知到答案2024年中國(guó)農(nóng)業(yè)大學(xué)
- Unit 3 My School教學(xué)設(shè)計(jì)2024年秋人教版新教材七年級(jí)英語(yǔ)上冊(cè)
- 《壓覆礦產(chǎn)資源估算規(guī)范》編制說(shuō)明
- 《食品添加劑應(yīng)用技術(shù)》第二版 課件 任務(wù)5.2 甜味劑的使用
- 礦區(qū)鉆探工程施工方案及保障措施
- DB11-T 854-2023 占道作業(yè)交通安全設(shè)施設(shè)置技術(shù)要求
- Scrum敏捷開(kāi)發(fā)模式講解課件
評(píng)論
0/150
提交評(píng)論