英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流
标题:
PROBE877模板调试成功的程序,供参考。
[打印本页]
作者:
winnie
时间:
2009-5-18 13:16
标题:
PROBE877模板调试成功的程序,供参考。
include "p16f877.inc"
ADDR EQU 20H ;写入地址寄存器
VALU EQU 21H ;写入值
REC_ EQU 22H ;读计数
WRC_ EQU 24H ;写计数
org 0
goto main
main
bcf STATUS,RP1
bcf STATUS,RP0 ;bank0
movlw 10h
movwf ADDR ;写入EEPROM初始值
movlw 90h
movwf VALU ;初始写入值
movlw 30h
movwf FSR ;间址,读出值初始存放地址
movlw 0Fh
movwf WRC_ ;写入次数
movwf REC_
;incf REC_ ;读出次数
wri_ ;写子程序
bsf STATUS,RP1
bsf STATUS,RP0 ;bank3
btfsc EECON1,WR
goto $-1
bcf STATUS,RP0
bcf STATUS,RP1 ;bank0
movf ADDR,W
bsf STATUS,RP1 ;bank2
movwf EEADR
bcf STATUS,RP1 ;bank0
movf VALU,W
bsf STATUS,RP1 ;bank2
movwf EEDATA
bsf STATUS,RP0 ;bank3
bcf EECON1,EEPGD ;to data memory
bsf EECON1,WREN
bcf INTCON,GIE
movlw 55h
movwf EECON2
movlw 0aah
movwf EECON2
bsf EECON1,WR
btfsc EECON1,WR
goto $-1
bsf INTCON,GIE
bcf EECON1,WREN
bcf STATUS,RP0
bcf STATUS,RP1 ;bank0
incf ADDR,1
decf VALU,1
decfsz WRC_ ;all write,to read_
goto wri_
read_ ;读子程序
bcf STATUS,RP1
bcf STATUS,RP0 ;bank0
decf ADDR ;next value
movf ADDR,W
bsf STATUS,RP1 ;bank2
movwf EEADR
bsf STATUS,RP0 ;bank3
bcf EECON1,EEPGD
bsf EECON1,RD
bcf STATUS,RP0 ;bank2
movf EEDATA,W
bcf STATUS,RP1 ;bnak0
movwf INDF ;存读出值
incf FSR
decfsz REC_
goto read_
goto main
endEEw&r.asm
程序说明:
1、
本程序是对
PIC16F877
芯片的
EEPROM
数据区进行读写的演示程序;
2、
wri_
为写入数据子程序,该子程序从
ADDR
寄存器确定的地址开始对
EEPROM
数据区写入(范例从
10H
开始),每进行一次写操作将使
ADDR
值加一;写入数据的初始值由
VALU
寄存器给定(范例值为
90H
),每进行一次写操作将使
VALU
值减一;写入规定个数(由
WRC_
寄存器给定,范例值为
0FH
)的数值后,结束写入,转至
read_
。
3、
read_
为读出数据子程序,该子程序从
ADDR
寄存器当前值确定的地址开始对
EEPROM
数据区读出(当前值
=ADDR+WRC_<=0FFH
),每进行一次读操作将使
ADDR
值减一;读出数据后程序将把该数据存入通用寄存器中,开始存放的地址由
FSR
的值指定(范例为
30H
),每进行一次读操作将使
FSR
的值加一;读出规定个数(由寄存器
REC_
给定,范例值为
0FH
)的数值后,结束读出,回
main
。
欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://enroobbs.com/)
Powered by Discuz! X3.2