|
為了快速掌握PIC單片機(jī)源程序的基本結(jié)構(gòu),這里給出一個(gè)典型的程序結(jié)構(gòu)框架。建立源程序時(shí)首先用偽指令TITLE提供程序的標(biāo)題,接著給出整個(gè)程序的總說明,并用列表偽指令LIST指定所用單片機(jī)型號(hào)和文件輸出格式,再利用INCLUDE偽指令讀入MPASM中提供的定義文件如《P16F84INC》,然后對(duì)片內(nèi)常用資源進(jìn)行定義,再給出一般程序的基本結(jié)構(gòu)框架,F(xiàn)舉例如下。 TITLE“This is……”;程序標(biāo)題 ;程序說明 LIST P=16F84,F(xiàn)=1NHX8M ; include <p16F84.inc> 。璫onfig_RC_Qsc &_WDT_0FF… 。毁Y源定義和變量定義 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 ;從0005H開始放主程序 call Initports ;端口初始化 call InitTimers;定時(shí)器初始化 … INTSRV … ;中斷服務(wù)程序區(qū) SVBRTH… ;子程序區(qū) END ;程序結(jié)束符 當(dāng)然,在編寫程序時(shí)可根據(jù)實(shí)際情況加以調(diào)整。下面是一份實(shí)際程序清單,要求將數(shù)據(jù)88H寫入PIC16F84內(nèi)部EEPROM的20H單元,而后再?gòu)?0H單元將其讀出。 LIST P=16F84,F(xiàn)=INHX8M ;…………………………… STATUS EQU 03 。欢x寄存器 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 ;啟動(dòng)寫操作 BSF INTCON,GIE ;恢復(fù)開中斷 RDSTART ;讀出操作開始 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 |