·设为首页
·联系站长
·加入收藏
 位置: 51单片机学习网 >> 学习园地 >> 编程实例 >> 正文 新年新气象, 庆祝asp版本调试成功  [2006-12-04 15:19:54]      跟我来作ep51编程器( 套件供应) 大量到货, 恢复供应...  [2006-12-04 15:18:38]      庆祝深圳市学林电子有限公司XL1000产品获得批量订单  [2006-12-04 15:16:00]
  实验21 93c46 演示程序   3星级
实验21 93c46 演示程序
[ 作者:Admin     来源:51单片机学习网     点击数:     更新时间:2006-12-4     文章录入:Admin
【字体: 字体颜色
*实验21 93c46 演示程序
93c46是1k位串行EEPROM储存器。 每一个储存器都可以通过DI/DO引脚写入或读出。它的存储容量为1024位,内部为128×8位或64×16位。93C46为串行三线SPI操作芯片,在时钟时序的同步下接收数据口的指令。指令码为9位十进制码,具有7个指令,读、擦写使能、擦除、写、全擦、全写及擦除禁止。该芯片擦写时间快,有擦写使能保护,可*性高,擦写次数可达100万次,以下给出了93C46与单片机的接线图,和引脚说明。



说明: 93c46的第6脚org为16/8位模式选择, xl1000套件第6脚接地,仅工作在8位模式下。



XL1000的93C46部分原理图


接线方法:
1用一个4PIN数据排线一端插入CPU部分JP53(P3口)的P3.4,P3.5,P3.6,P3.7。另外一端插入93C46部分的输入端JP46.
2用一条8PIN的数据排线把CPU部份的P2口(JP52)接到八路指示灯部份的JP32。
此程序先把8路跑马灯的数据写入93C46, 然后读出送P2口显示。 运行程序可以观察到8路跑马灯。
为证明93C46的作用, 可以拔下93c46的数据线, 再次运行程序, 则没有跑马灯。

93C46的跑马灯运行照片
 READ EQU 0 ;读93C46
WRITE EQU 2 ;写入93C46
EWEN EQU 4 ; 93C46写入使能
EWDS EQU 6 ; 93C46写入禁止
CS BIT P3.7 ; 93C46 CS
CLK BIT P3.6 ; 93C46 CLK
DI BIT P3.5 ; 93C46 DI
DO BIT P3.4 ; 93C46 DO
ADR46 EQU 20H
ORG 00H
START0: MOV 21H,#00H ; 取地址码
MOV 22H,#08H ; 8组8个码
MOV P3,#10H
MOV ADR46,#00H ;93C46地址00H
START: MOV A,#EWEN ;写入使能
CALL TO9346
MOV A ,21H ;载入取码指针
MOV DPTR,#TABLE ;至TABLE取码
MOVC A,@A+DPTR
MOV R4,A ;存入"写入寄存器"
MOV A,#WRITE ;写入数据
CALL TO9346
MOV A,#EWDS ;写禁止
CALL TO9346
INC 21H ;取下一个码
INC ADR46 ;下一个地址
CALL DELAY1
DJNZ 22H,START
MOV R0,#30H ;存入8051的RAM 地址
MOV ADR46,#00H ;93C46 :00地址
MOV 22H,#08H ; 93C46 8个地址8个码
A1: MOV A,#READ ;读(地址)的数据
CALL TO9346
MOV A,R4 ;93C46输出的数据载入ACC
MOV @R0,A
INC ADR46 ;读下一个地址
INC R0 ;下一个RAM
DJNZ 22H,A1
A2: MOV 22H,#08H
MOV R0,#30H
OUTPUT:MOV A,@R0
MOV P2,A ;输出至P2
CALL DELAY1 ;
INC R0
DJNZ 22H,OUTPUT
JMP A2
TO9346: SETB CS ;93C46 CS=1
SETB DI ;DI=1
SETB CLK ;CLK=1
CALL DELAY ;启动位
CLR CLK ;CLK=0
CALL DELAY
MOV DPTR,#JPTBL46
JMP @A+DPTR ;依ACC值跳至相关地址
JPTBL46: AJMP SREAD ;读
AJMP SWRITE ;写
AJMP SEWEN ;写使能
AJMP SEWDS ;写禁止
SREAD:
MOV A,#80H ;送操作码10
CALL SDATA
MOV A,ADR46 ;载入93C46地址
CALL SADR ;写入7位地址(DI)
CALL RDT46 ;读出数据(DO),存入3CH
MOV R4,A
;CALL RDT46 ;读出数据(DO),存入3DH
;MOV 3DH,A
JMP EX9346
SWRITE:
MOV A,#40H ;送操作码01
CALL SDATA
MOV A,ADR46 ;载入93C46地址
CALL SADR ;写入7位地址
MOV A,R4 ;写入(3CH)数据
CALL SDT46
;MOV A,3DH ;写入(3DH)数据
;CALL SDT46
JMP EX9346
SEWEN:
CLR A ;送操作码00
CALL SDATA
MOV A,#60H ;写使能操作码11XXXXX
CALL SADR
JMP EX9346
SEWDS:
CLR A ;送操作码00
CALL SDATA
CLR A ;写7位禁止操作码000XXXX
CALL SADR
EX9346: CLR CS ;CS=0
RET
SADR:
CLR C
RLC A
MOV R3,#7
JMP SD1
SDATA:
MOV R3,#2
JMP SD1
SDT46: MOV R3,#8 ;写入8位数据
SD1: RLC A ;
MOV DI,C
SETB CLK
CALL DELAY
CLR CLK
CALL DELAY
DJNZ R3,SD1
RET
RDT46: MOV R3,#8 ;读出8位数据
RD1: SETB CLK
CALL DELAY
CLR CLK
CALL DELAY
MOV C,DO
RLC A
DJNZ R3,RD1
RET
DELAY: MOV R7,#0FH
DJNZ R7,$
RET
DELAY1: MOV R4,#20
D1: MOV R5,#20
D2: MOV R6,#248
DJNZ R6,$
DJNZ R5,D2
DJNZ R4,D1
RET
TABLE : DB 0FEH ,0FDH ,0FBH, 0F7H ;广告一个灯左移
DB 0EFH ,0DFH ,0BFH, 7FH ;
END

  • 上一篇文章: 实验20 步进电机实验

  • 下一篇文章: 实验22 串行双向通信实验
  • 发表评论   告诉好友   打印此文  收藏此页  关闭窗口  返回顶部
     最新5篇热点文章
     实验20 步进电机实验
     实验17 1602液晶显示屏显...
     实验14 小喇叭警报器试验...
     XL1000单片机综合仿真试验...
     大电流电缆线品质的检定 ...
     
     最新5篇推荐文章
     12864 液晶应用说明+源程序...
     实验20 步进电机实验
     实验17 1602液晶显示屏显...
     实验14 小喇叭警报器试验...
     XL1000单片机综合仿真试验...
     
     相 关 文 章

      网友评论:(只显示最新5条。评论内容只代表网友观点,与本站立场无关!)