PIC單片機(jī)程序設(shè)計(jì)的基本格式
掃描二維碼
隨時(shí)隨地手機(jī)看文章
http:// 為了快速掌握pic單片機(jī)源程序的基本結(jié)構(gòu),這里給出一個(gè)典型的程序結(jié)構(gòu)框架。建立源程序時(shí)首先用偽指令title提供程序的標(biāo)題,接著給出整個(gè)程序的總說(shuō)明,并用列表偽指令list指定所用單片機(jī)型號(hào)和文件輸出格式,再利用include偽指令讀入mpasm中提供的定義文件如《p16f84?inc》,然后對(duì)片內(nèi)常用資源進(jìn)行定義,再給出一般程序的基本結(jié)構(gòu)框架?,F(xiàn)舉例如下。 title“this is……”;程序標(biāo)題
;程序說(shuō)明
list p=16f84,f=1nhx8m
;
include <p16f84.inc>
-config_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;子程序入口地址
;……………………………………
main ;從0005h開(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=inhx8m
;……………………………
status equ 03 ??;定義寄存器
eedata equ 08
eeadr equ 09
intcon equ 0bh
eecon1 equ 88h
eecon2 equ 89h
;…………………………
rd equ 0 ;定義位
wr equ 1
rp0 equ 5
gie equ 7
;…………………………
org 0
goto wrstart
;……………………………
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 ;55h→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