PIC單片機(jī)程序設(shè)計的基本格式
http:// 為了快速掌握pic單片機(jī)源程序的基本結(jié)構(gòu),這里給出一個典型的程序結(jié)構(gòu)框架。建立源程序時首先用偽指令title提供程序的標(biāo)題,接著給出整個程序的總說明,并用列表偽指令list指定所用單片機(jī)型號和文件輸出格式,再利用include偽指令讀入mpasm中提供的定義文件如《p16f84?inc》,然后對片內(nèi)常用資源進(jìn)行定義,再給出一般程序的基本結(jié)構(gòu)框架?,F(xiàn)舉例如下。 title“this is……”;程序標(biāo)題
;程序說明
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 ;跳過中斷矢量
org 0004
goto intsrv;子程序入口地址
;……………………………………
main ?。粡?005h開始放主程序
call initports ;端口初始化
call inittimers;定時器初始化
…
intsrv … ;中斷服務(wù)程序區(qū)
svbrth… ;子程序區(qū)
end ;程序結(jié)束符
當(dāng)然,在編寫程序時可根據(jù)實際情況加以調(diào)整。下面是一份實際程序清單,要求將數(shù)據(jù)88h寫入pic16f84單片機(jī)內(nèi)部eeprom的20h單元,而后再從20h單元將其讀出。
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 ;寫入操作開始
clrw ;清w,使w=0
bcf status,rp0 ;選bank0
movlw 20h
movwf eeadr ;地址→eeadr
movlw 88h
movwf eedata ??;寫入數(shù)據(jù)→
;eedata
bsf status,rp0 ;選bank1
bsf eecon1,2 ;寫操作使能允許
bcf intcon,gie ;關(guān)閉所有的中斷
movlw 0x55
movwf eecon2 ??;55h→eecon2
movlw 0xaa
movwf eecon2 ;aah→eecon2
bsf eecon1,wr ;啟動寫操作
bsf intcon,gie ;恢復(fù)開中斷
rdstart ;讀出操作開始
bcf status,rp0
movlw 20h
movwf eeadr ;地址→eeadr
bsf status,rp0
bsf eecon1,rd ;啟動讀操作
bcf status,rp0
movf eedata,w ;將eeprom
;數(shù)據(jù)讀入w
end