z_bing
驱动中牛
驱动中牛
  • 注册日期2002-09-28
  • 最后登录2008-04-14
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:830回复:0

百思不得其解---PDIUSBD12 RESET 问题(需要对D12 Reset 16次)

楼主#
更多 发布于:2003-07-05 22:02
测试D12Softconnect时,编写了下列测试程序。程序中出现了问题:
需要对D12 Reset 16次,否则Softconnect就不成功。Why?

LED0 bit P1.2
LED1 bit P1.3
CNT data 20h
D12_COMMAND data 03h
D12_DATA data 02h
D12_CS bit P1.6
D12_RESET bit P1.7
D12_SUSPD bit P3.3
org 0000h
ajmp main
org 0003h
ljmp Fn_Isr
org 000bh
ljmp T0_Isr

org 50h
main: mov P1,#11110111b
mov r4,#10h
M_Delay: lcall Delay;开机延时
djnz r4,M_Delay
CLR D12_CS
CLR D12_SUSPD
;lcall D12_Connect
SETB D12_SUSPD
mov r4,#10h ;复位16次Softconnect就成功且Good_link亮,
D_Reset: ;若复位8次的话Softconnect就不成功且Good_link不亮
lcall delay
CPL D12_RESET
djnz r4,D_Reset

SETB D12_RESET;解除复位
lcall D12_Connect;Softconnect
lcall Init_Timer0;初始化定时器0
loop:
lcall delay
CPL LED0
jnb CNT.4,loop_1
CPL LED1
loop_1:
CLR CNT.4
sjmp loop
Delay: ;0.13s
mov R2,#0ffh
delay1: mov R3,#0ffh
delay2:
nop
nop
djnz r3,delay2
djnz r2,delay1
ret
T0_Isr:
INC CNT
reti
;中断0处理
Fn_Isr:
SETB P3.2
reti
D12_Connect:
mov R0,#D12_COMMAND
mov A,#0F3h
movx @R0,A
mov R0,#D12_DATA
mov A,#00010000b
movx @R0,A
mov A,#00001011b
movx @R0,A
ret
Init_Timer0: ;定时器0.032768s
mov TMOD,#01h;16位模式
mov TH0,#00h
mov TL0,#00h
SETB ET0;允许定时中断
SETB TR0;开定时器
SETB PT0;高优先级
SETB EA;开总中断
ret
end



[编辑 -  7/8/03 by  z_bing]
爱国守法,明理诚信,团结一致,战胜非典!
游客

返回顶部