|
现在我按x5045pdf上的操作,对x5045 设置门限电压, 烧之前测到x5045的门限电压是4.3V ,烧完后一块的Vtrip(门限电压)到了5.3V 另一块到了1.3V , 不知我哪里出错了,忘高手指正一下,下面是我的电路和程序
5V--->VCC 单片机是AT89C61 5V--10K--看门狗.7(复位脚) X5(x5045).8(vcc) 接4.6V, X5.3(wp)接17V so 和si 一起接到p1.4 VSS接地,sck接p1.3 cs 接p1.2 单片机12M 两30P电容 p2接四个电阻和灯, 程序如下
DOG_CS EQU P1.2
DOG_CLK EQU P1.3
DOG_DAT EQU P1.4
org 0000h
ajmp start
ljmp start
ljmp start
ljmp start
ljmp start
ljmp start
ljmp start
ljmp start
org 0030h
start:
mov a,#0ffh ;
clr c ;
mov r2,#08h ;循环八次。
lcall WREN_CMD
loop: rlc a ;带进位左移。
mov p2,a ;输出到P1口。
mov p0,a ;输出到P1口。
clr dog_cs
setb dog_cs
call delay ;延时一段时间
djnz r2,loop ;反复循环
mov r2,#07h ;再往回循环。
loop1:
rrc a ;带进位右移
mov p2,a ;输出到P1口。
call delay ;延时一段时间
djnz r2,loop1 ;反复循环
jmp start ;重新开始
delay:
mov r3,#20 ;延时子程序
d1: mov r4,#200
d2: mov r5,#248
clr dog_cs
setb dog_cs
djnz r5,$
djnz r4,d2
ret
WREN_CMD: ;CLR DOG_CLK
SETB DOG_CLK;初始状态是为1的
NOP
NOP
NOP
CLR dog_cs
MOV A,#06h
LCALL OUTBYT
SETB DOG_CLK;初始状态是为1的
NOP
NOP
NOP
SETB dog_cs
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
CLR dog_cs
mov a,#02h
LCALL OUTBYT
mov a,#00h
LCALL OUTBYT
MOV A,#01h
LCALL OUTBYT
mov a,#00h
LCALL OUTBYT
SETB DOG_CLK;初始状态是为1的
NOP
NOP
NOP
SETB dog_cs
RET
OUTBYT: MOV R3,#08H
OUTBYT1: CLR DOG_CLK
RLC A
MOV DOG_DAT,C
NOP
NOP
NOP
SETB DOG_CLK
NOP
NOP
DJNZ R3,OUTBYT1
;CLR DOG_DAT
SETB DOG_DAT;释放总线
RET
ljmp start
ljmp start
ljmp start
org 0x0fff
ljmp start
end
|
|