登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

c51驱动 at45db161b的时序真那末麻烦吗

作者:chuandaoxy 栏目:单片机
c51驱动 AT45DB161B的时序真那末麻烦吗
快两周了,只能读出状态字0xac,那位兄台帮帮忙

2楼: >>参与讨论
wenming
哪里麻烦啊,很简单
 
3楼: >>参与讨论
TLWXB
AT89C51AT45DB161B进行读操作
既然很简单,懂的朋友可否贴点实例出来

也好让我们这些菜鸟受益受益。
下面是我从网络上搜索整理出来的,但实现不了。
AT45DB161B内的内容我是用编程器写进去的。


;AT89C51AT45DB161B进行读操作,12M晶振      

ORG     0000H      ;程序执行开始地址
             LJMP MAIN  ;跳至START执行

MAIN:

SPI_SI   bit  P1.0      ;定义1脚为数据输入脚
SPI_CK  bit  p1.1      ;定义2脚为时钟脚
SPI_SO   bit    P1.2    ;定义3脚为数据输出脚
SPI_CS   bit      P1.3

GREEN   bit   P3.4    ;控制绿灯
   red   bit   P3.3   ;控制红灯


;以下语句希望能把AT45DB161B102030地址中的数值读出来,
;如果该值等于55H则点亮绿灯,否则点亮红灯

MOV   R0,#52H    
LCALL   SPIOUT       ;写入52H这一命令字
MOV     R0,#10H  
LCALL    SPIOUT      ;写入高位地址10H
MOV     R0,#20H  
LCALL    SPIOUT     ;写入中位地址20H
MOV    R0,#30H  
LCALL     SPIOUT     ;写入低位地址30H
MOV  R0,#0FFH    
LCALL   SPIOUT      ;加载8位任意字节0FFH
MOV  R0,#0FFH    
LCALL   SPIOUT      ;加载8位任意字节0FFH
MOV  R0,#0FFH   
LCALL   SPIOUT      ;加载8位任意字节0FFH
MOV  R0,#0FFH     
LCALL   SPIOUT      ;加载8位任意字节0FFH
LCALL SPIIN  ;调读一字节子程序
SETB SPI_CS

CJNE A,#55,ERR
CLR GREEN
AJMP $
ERR:   CLR  RED
AJMP $


;将MCS51寄存器R0中的数据传送至SPI_SI线上
SPIOUT:
CLR   SPI_CS
SETB SPI_CK   ;使P1.1(时钟)输出为1

MOV R1, #08H ;置循环次数
MOV A, R0            ;8位数据送入累加器ACC
SPIOUT1:
CLR SPI_CK  ;使P1.1(时钟)输出为0
NOP                ;延时
NOP                 ;延时
RLC A               ;左移累加器ACC最高位至C
MOV SPI_SI, C         ;进位C送SPI_SI线上
SETB SPI_CK             ;使P1.1(时钟)输出为1
NOP ;留点写入所需的时间
NOP
DJNZ R1, SPIOUT1     ;是8次吗?
RET

        
;从SPI_SO线上接收8位数据并放入寄存器R0中
SPIIN: SETB SPI_CK     ;使P1.1(时钟)输出为1
MOV R1, #08H         ;置循环次数
SPIIN1:   CLR SPI_CK            ;使P1.1(时钟)输出为0
NOP ;延时
NOP ;延时
MOV C, SPI_SO    ;AT45BD161B输出SPI_SO送进位C
RLC A                  ;左移至累加器ACC
SETB SPI_CK      ;使P1.0输出为1

DJNZ R1, SPIIN1      ;是8次吗?

MOV R0, A             ;8位送入R0
RET


END




参与讨论
昵称:
讨论内容:
 
 
相关帖子
求助ISO14443中文协议
下载到AT89C51后,温度测量的不能正常运行是什么原因
请问有谁知道把正12v转成负12v的芯片或者电路?
单片机计时器定时精度的问题
【有图】I2C总线连接问题请教
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号