网站导航: 首页 > 设计参考 > 正文 文章搜索
PIC 读写EEPROM实例及说明
 
文章编号:
081209171229
文章分类: 单片机 PIC
点 击:
...
关 键 词: EEPROM
文章来源:
网络
摘 要:

 
  1. ;****************************************************************************************      
  2. ; This is a program to test the function of reading&writting for EEPROM.      
  3. ; You can observe the value of register(30H--?) buy changing "VALU" and "WRC_".      
  4. ; Notice that:it must be { ADDR WRC_<=0ffh } !      
  5. ; Written by Yamato.:)      
  6. ;****************************************************************************************      
  7. include "p16f877.inc"      
  8. ADDR EQU 20H ;写入地址寄存器      
  9. VALU EQU 21H ;写入值      
  10. REC_ EQU 22H ;读计数      
  11. WRC_ EQU 24H ;写计数      
  12. org 0       
  13. goto main       
  14. main       
  15. bcf STATUS,RP1       
  16. bcf STATUS,RP0 ;bank0      
  17. movlw 10h       
  18. movwf ADDR ;写入EEPROM初始值      
  19. movlw 90h       
  20. movwf VALU ;初始写入值      
  21. movlw 30h       
  22. movwf FSR ;间址,读出值初始存放地址      
  23. movlw 0Fh       
  24. movwf WRC_ ;写入次数      
  25. movwf REC_       
  26. ;incf REC_ ;读出次数      
  27. wri_ ;写子程序      
  28. bsf STATUS,RP1       
  29. bsf STATUS,RP0 ;bank3      
  30. btfsc EECON1,WR       
  31. goto $-1       
  32. bcf STATUS,RP0       
  33. bcf STATUS,RP1 ;bank0      
  34. movf ADDR,W       
  35. bsf STATUS,RP1 ;bank2      
  36. movwf EEADR       
  37. bcf STATUS,RP1 ;bank0      
  38. movf VALU,W       
  39. bsf STATUS,RP1 ;bank2      
  40. movwf EEDATA       
  41. bsf STATUS,RP0 ;bank3      
  42. bcf EECON1,EEPGD ;to data memory      
  43. bsf EECON1,WREN       
  44. bcf INTCON,GIE       
  45. movlw 55h       
  46. movwf EECON2       
  47. movlw 0aah       
  48. movwf EECON2       
  49. bsf EECON1,WR       
  50. btfsc EECON1,WR       
  51. goto $-1       
  52. bsf INTCON,GIE       
  53. bcf EECON1,WREN       
  54. bcf STATUS,RP0       
  55. bcf STATUS,RP1 ;bank0      
  56. incf ADDR,1       
  57. decf VALU,1       
  58. decfsz WRC_ ;all write,to read_      
  59. goto wri_       
  60. read_ ;读子程序      
  61. bcf STATUS,RP1       
  62. bcf STATUS,RP0 ;bank0      
  63. decf ADDR ;next value      
  64. movf ADDR,W       
  65. bsf STATUS,RP1 ;bank2      
  66. movwf EEADR       
  67. bsf STATUS,RP0 ;bank3      
  68. bcf EECON1,EEPGD       
  69. bsf EECON1,RD       
  70. bcf STATUS,RP0 ;bank2      
  71. movf EEDATA,W       
  72. bcf STATUS,RP1 ;bnak0      
  73. movwf INDF ;存读出值      
  74. incf FSR       
  75. decfsz REC_       
  76. goto read_       
  77. goto main       
  78. end      


EEw&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。

 

 
相关文章:

 
最新开源项目
 
 
  查看更多...  
 
本站相关产品   淘宝网店
 




 
  查看更多...  

 

本站程序由百合电子工作室开发和维护
Copyright @ baihe electric studio
渝ICP备09006681号-4