|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
软件模拟SPI的问题 |
作者:davy123456 栏目:单片机 |
我用软件模拟SPI对EPROM写数据,就是写不进去,时序好象都对,请帮我看看哪出了问题。PIC用的是PIC12F629,EPROM用的是AT25640A。 list p=12F629 ; list directive to define processor #include <p12F629.inc> ; processor specific variable definitions __CONFIG _CP_ON & _WDT_OFF & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT&_CPD_ON ;***** VARIABLE DEFINITIONS eaddrl equ 20h eaddrh equ 21h ebuf equ 22h etemp equ 23h ecount equ 24h ECS equ 4 ESK equ 0 EDO equ 2 EDI equ 1 ;********************************************************************** ORG 0x000 ; processor reset vector goto main ; go to beginning of program main bcf STATUS,RP0 movlw 07h movwf CMCON bsf STATUS,RP0 ; set file register bank to 1 movlw B'00001100' movwf TRISIO ;set gp3,gp2 as input,others OUTPUT bcf STATUS,RP0 ; set file register bank to 1 clrf GPIO bsf GPIO,ECS bsf GPIO,EDO movlw b'00000001' ;WRSR(write status register) movwf etemp bcf GPIO,ECS call WEPROG movlw b'00000010' ; movwf etemp call WEPROG bsf GPIO,ECS movlw 00h movwf eaddrl movlw 00h movlw eaddrh ;eprom address to be write movlw 0ffh movwf ebuf call WEDATA goto $ WEDATA movlw b'00000110' ;WREN (write enable latch) movwf etemp bcf GPIO,ECS call WEPROG bsf GPIO,ECS movlw b'00000010' ;WRITE(write data to MEMORY array) movwf etemp bcf GPIO,ECS call WEPROG bsf GPIO,ECS nop bcf GPIO,ECS movlw .16 movwf ecount loop rlf eaddrl,1 ;write 16 bits address rlf eaddrh,1 btfss STATUS,C call WRITE0 btfsc STATUS,C call WRITE1 decfsz ecount,1 goto loop movf ebuf,0 movwf etemp call WEPROG bsf GPIO,ECS return WEPROG movlw .8 ;write 8 bits data movwf ecount loop1 rlf etemp,1 btfss STATUS,C call WRITE0 btfsc STATUS,C call WRITE1 decfsz ecount,1 goto loop1 return WRITE1 bsf GPIO,EDI ;write 1 bsf GPIO,ESK nop nop nop bcf GPIO,ESK return WRITE0 bcf GPIO,EDI ;write 0 bsf GPIO,ESK nop nop nop bcf GPIO,ESK return end ;end |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |