- UID
- 113836
- 性别
- 男
|
我们使用MPXY8020A和MC68HC908RF2设计压力温度测量系统,无论DATA上给任何数据后,在读数方式下(S0=1,S1=1)我们在OUT脚上面测得的电平都是高的,下面是我们的程序,请高手指点!
main:
Entry:
MOV #$00,DATABUFF
MOV #$FF,DDRA
BCLR 2,PORTA ;置S0为"0"
BCLR 1,PORTA ;置S1为"0"
SEND_BYTESHX
BCLR 4,PORTA ;初始化CLK为低电平
MOV #$08,BITCOUNT ;初始化发送的位数
LDX DATABUFF ;DATABUFF内是待发数据
SEND_NEXTBIT:ROLX ;左循环,并查看进位标志位
BCC ZERO ;有进位,发送"1",否则发送"0"
BSET 5,PORTA ;发送DATA="1"
BRA TOGGLE_CLOCK ;跳转到TOGGLE-CLOCK
ZERO:BCLR 5,PORTA ;发送DATA="0"
BRA TOGGLE_CLOCK
AA:BCLR 2,PORTA ;置S0为"0"
BSET 1,PORTA ;置S1为"1"
BSR BOUNCE
DD:BSET 1,PORTA
BSET 2,PORTA ;置S0为"1" ,开始读数
JMP DD
TOGGLE_CLOCK:BSET 4,PORTA ;形成CLK时钟
BSR BOUNCE
BCLR 4,PORTA
DBNZ BITCOUNT,SEND_NEXTBIT ;判断是否发送完毕
PULX
MOV #$08,BITCOUNT
JMP AA
BOUNCEDA #$FF ;延时程序
AGAINDX #$FF
AGAIN2ECX
BNE AGAIN2
DECA
BNE AGAIN
RTS |
|