哦!谢了!温度值我测出来是ox64,符合理论。可压力值还是ox35,是不是焊接时没焊好,导致压力偏高?还有读out端那段程序老是输出忽高忽低,不稳定,是编程有问题吗?我将程序写在下面,希望能指点一二:
MY_ZEROPAGE: SECTION SHORT
; Insert here your data definition. For demonstration, temp_byte is used.
s1 equ 1 ;s1,s0决定工作模式
s0 equ 2
out equ 3 ;唤醒RF2
dclk equ 4 ;8020数据时钟控制
sdata equ 5 A.5为数据传输口
mode equ 7
;定义A口各位的方向:PA.3 定义为输入,其余定义为输出
;DDRAInit equ %11110111
ortAInit equ %0000000
BITCOUNT ds 1
DATABUFF ds 1
; code section
MyCode: SECTION
; this assembly routine is called the C/C++ application
asm_main:
main: MOV #%11110111,DDRA
MOV #%00000000,PTA
Entry:
MOV #$20,DATABUFF
SEND_BYTESHX
BCLR s0,PORTA ;置S0为"0"
BCLR s1,PORTA ;置S1为"0"
BLCLR dclk,PORTA ;初始化CLK为低电平
MOV #$08,BITCOUNT ;初始化发送的位数
LDX DATABUFF ;DATABUFF内是待发数据
SEND_NEXTBIT:ROLX ;左循环,并查看进位标志位
BCC ZERO ;有进位,发送"1",否则发送"0"
BSET sdata,PORTA ;发送DATA="1"
BRA TOGGLE_CLOCK ;跳转到TOGGLE-CLOCK
ZERO: BCLR sdata,PORTA ;发送DATA="0"
BRA TOGGLE_CLOCK
AA: BSET s0,PORTA ;置S0为"1"
BCLR s1,PORTA ;置S1为"0"
BSR BOUNCE
DD: BSET s1,PORTA
BSET s0,PORTA ;置S0为"1" ,开始读数
JMP DD
TOGGLE_CLOCK:BSET dclk,PORTA ;形成CLK时钟
BCLR dclk,PORTA
DBNZ BITCOUNT,SEND_NEXTBIT ;判断是否发送完毕
PULX
JMP AA
BOUNCE:
LDA #$FF ;延时程序
AGAIN: LDX #$FF
AGAIN2: DECX
BNE AGAIN2
DECA
BNE AGAIN
RTS
; Insert here your own code
RTS ; return to caller |