專(zhuān)注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開(kāi)發(fā)工具、應(yīng)用測(cè)試 完善的開(kāi)發(fā)代碼案例庫(kù)分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無(wú)限潛能!
提供新的芯片及解決方案,提升客戶(hù)產(chǎn)品競(jìng)爭(zhēng)力
提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)
推出兼容PIC單片機(jī)的代理商為您介紹PIC單片機(jī)程序設(shè)計(jì)的基本格式,為了快速掌握PIC單片機(jī)源程序的基本結(jié)構(gòu),這里給出一個(gè)典型的程序結(jié)構(gòu)框架。建立源程序時(shí)首先用偽指令TITLE提供程序的標(biāo)題,接著給出整個(gè)程序的總說(shuō)明,并用列表偽指令LIST指定所用單片機(jī)型號(hào)和文件輸出格式,再利用INCLUDE偽指令讀入MPASM中提供的定義文件如《P16F84INC》,然后對(duì)片內(nèi)常用資源進(jìn)行定義,再給出一般程序的基本結(jié)構(gòu)框架?,F(xiàn)舉例如下。
TITLE“This is……”;程序標(biāo)題
??;程序說(shuō)明
LIST P=16F84,F(xiàn)=1NHX8M
?。?br/> include
?。璫onfig_RC_Qsc?。WDT_0FF…
??;資源定義和變量定義
STATUS EQU 03
FSR EQU 04
PORTA EQU 05
PORTB EQU 06
J EQU 01F
K EQU 01E
;…………………
ORG 0000 ;
goto MAIN ;跳過(guò)中斷矢量
ORG 0004
goto INTSRV;子程序入口地址
?。?amp;hellip;…………………………………
MAIN ?。粡?005H開(kāi)始放主程序
call Initports ;端口初始化
call InitTimers;定時(shí)器初始化
…
INTSRV … ;中斷服務(wù)程序區(qū)
SVBRTH… ;子程序區(qū)
END ;程序結(jié)束符
當(dāng)然,在編寫(xiě)程序時(shí)可根據(jù)實(shí)際情況加以調(diào)整。下面是一份實(shí)際程序清單,要求將數(shù)據(jù)88H寫(xiě)入PIC16F84單片機(jī)內(nèi)部EEPROM的20H單元,而后再?gòu)?0H單元將其讀出。
LIST P=16F84,F(xiàn)=INHX8M
;……………………………
STATUS EQU 03 ??;定義寄存器
EEDATA EQU 08
EEADR EQU 09
INTCON EQU 0BH
EECON1 EQU 88H
EECON2 EQU 89H
?。?amp;hellip;………………………
RD EQU 0 ;定義位
WR EQU 1
RP0 EQU 5
GIE EQU 7
?。?amp;hellip;………………………
ORG 0
GOTO WRSTART
?。?amp;hellip;…………………………
ORG 10H
WRSTART ;寫(xiě)入操作開(kāi)始
CLRW ;清W,使W=0
BCF STATUS,RP0 ;選BANK0
MOVLW 20H
MOVWF EEADR ;地址→EEADR
MOVLW 88H
MOVWF EEDATA ?。粚?xiě)入數(shù)據(jù)→
;EEDATA
BSF STATUS,RP0 ;選BANK1
BSF EECON1,2 ;寫(xiě)操作使能允許
BCF INTCON,GIE ;關(guān)閉所有的中斷
MOVLW 0X55
MOVWF EECON2 ?。?5H→EECON2
MOVLW 0XAA
MOVWF EECON2 ;AAH→EECON2
BSF EECON1,WR ;啟動(dòng)寫(xiě)操作
BSF INTCON,GIE ;恢復(fù)開(kāi)中斷
RDSTART ;讀出操作開(kāi)始
BCF STATUS,RP0
MOVLW 20H
MOVWF EEADR ;地址→EEADR
BSF STATUS,RP0
BSF EECON1,RD ;啟動(dòng)讀操作
BCF STATUS,RP0
MOVF EEDATA,W ;將EEPROM
;數(shù)據(jù)讀入W
END