共2条
1/1 1 跳转至页
MOV,SBUF 请教:MOV SBUF后没有反映的问题
问
串口数据发送不了,没有反映,MOV SBUF,A后没有反映
;同时测量3块表,串口采集数据,串口采用方式三,使用定时器1,可是TXD发送数据,发送不了
,用示波器测量也没有信号,TI总是0。
ORG 0000H
JMP MAIN
ORG 0030H
MAIN:
MOV TMOD,#20H ;T1工作在方式2
MOV TH1,#0F3H ;BAUD=2400
MOV TL1,#0F3H
MOV SCON,#0D8H ;串口工作方式3,SM2=0,准许串口接受,TB8=1
MOV PCON,#80H ;SMOD=1
SETB TR1 ;启动T1工作
SETB EA
SETB EX0
SETB EX1
CLR IT1
CLR IT0
CLR EX0
CLR EX1
MOV R3,#01H ;第一块表,01为地址数据
CALL SAMP
SETB EX0
SETB EX1
SAMP: CLR TI
MOV A,R3
MOV SBUF,#01H
TITI: JNB TI,TITI ;在这一句,就是不往下执行了,请高手给予指教,谢谢。
CLR TI
CLR TB8
MOV SBUF,#03H
JNB TI,$
CLR TI
MOV SBUF,#00H
JNB TI,$
CLR TI
MOV SBUF,#00H
JNB TI,$
CLR TI
MOV SBUF,#00H
JNB TI,$
CLR TI
SETB TB8
MOV SBUF,#01H
JNB TI,$
CLR TI
END
答 1: 就是没有反应。我只使用仿真器也不行,就是没有反应。
单纯使用仿真器、模拟仿真、硬件仿真这几种情况下都不行,都是到了那一句就不动了,显示数据没有发送完,而我用示波器测试,串口发送TXD没有脉冲。
没有办法,为了测试串口是否工作正常,单独置TXD高或者低,电压显示正常,采用下述中断方式,程序在WAIT的循环中出不来,一个数据也没有发送。
ORG 0000H
JMP START
ORG 0023H
JMP TXSVE
ORG 0100H
START: MOV TMOD,#20H ;T1工作方式2
MOV TL1,#0F4H
MOV TH1,#0F4H
MOV PCON,#80H ;SMOD=1
SETB TR1 ;启动T1
MOV SCON,#40H ;串口为方式1
MOV R0,#44H ;发送的数据
MOV A,#02H ;发送的长度
MOV R2,A
MOV SBUF,A
SETB EA ;开中断
WAIT: SETB ES ;开串口中断
SJMP WAIT
ORG 0650H ;串口中断处理程序
TXSVE: CLR ES
CLR TI
MOV A,R0
MOV SBUF,A
DJNZ R2,NEXT
SJMP $
NEXT: INC R0
RETI
END
;同时测量3块表,串口采集数据,串口采用方式三,使用定时器1,可是TXD发送数据,发送不了
,用示波器测量也没有信号,TI总是0。
ORG 0000H
JMP MAIN
ORG 0030H
MAIN:
MOV TMOD,#20H ;T1工作在方式2
MOV TH1,#0F3H ;BAUD=2400
MOV TL1,#0F3H
MOV SCON,#0D8H ;串口工作方式3,SM2=0,准许串口接受,TB8=1
MOV PCON,#80H ;SMOD=1
SETB TR1 ;启动T1工作
SETB EA
SETB EX0
SETB EX1
CLR IT1
CLR IT0
CLR EX0
CLR EX1
MOV R3,#01H ;第一块表,01为地址数据
CALL SAMP
SETB EX0
SETB EX1
SAMP: CLR TI
MOV A,R3
MOV SBUF,#01H
TITI: JNB TI,TITI ;在这一句,就是不往下执行了,请高手给予指教,谢谢。
CLR TI
CLR TB8
MOV SBUF,#03H
JNB TI,$
CLR TI
MOV SBUF,#00H
JNB TI,$
CLR TI
MOV SBUF,#00H
JNB TI,$
CLR TI
MOV SBUF,#00H
JNB TI,$
CLR TI
SETB TB8
MOV SBUF,#01H
JNB TI,$
CLR TI
END
答 1: 就是没有反应。我只使用仿真器也不行,就是没有反应。
单纯使用仿真器、模拟仿真、硬件仿真这几种情况下都不行,都是到了那一句就不动了,显示数据没有发送完,而我用示波器测试,串口发送TXD没有脉冲。
没有办法,为了测试串口是否工作正常,单独置TXD高或者低,电压显示正常,采用下述中断方式,程序在WAIT的循环中出不来,一个数据也没有发送。
ORG 0000H
JMP START
ORG 0023H
JMP TXSVE
ORG 0100H
START: MOV TMOD,#20H ;T1工作方式2
MOV TL1,#0F4H
MOV TH1,#0F4H
MOV PCON,#80H ;SMOD=1
SETB TR1 ;启动T1
MOV SCON,#40H ;串口为方式1
MOV R0,#44H ;发送的数据
MOV A,#02H ;发送的长度
MOV R2,A
MOV SBUF,A
SETB EA ;开中断
WAIT: SETB ES ;开串口中断
SJMP WAIT
ORG 0650H ;串口中断处理程序
TXSVE: CLR ES
CLR TI
MOV A,R0
MOV SBUF,A
DJNZ R2,NEXT
SJMP $
NEXT: INC R0
RETI
END
共2条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 基于MCP23S17的输入输出功能模块控制被打赏¥20元 | |
| 【S32K3XX】SPD 软件包使用Link文件修改被打赏¥22元 | |
| Switch-Case局部变量定义问题被打赏¥23元 | |
| 基于米尔TIAM62L开发板的串口通信及应用被打赏¥20元 | |
| PCF8574功能模块及其使用被打赏¥20元 | |
| 传感器LSM6DSO及LIS3MDL的功能检测被打赏¥18元 | |
| LPS25HB气压传感器及其检测被打赏¥18元 | |
| HTS221温湿度传感器及其检测被打赏¥18元 | |
| 【S32K3XX】HSE FW 版本更新被打赏¥21元 | |
| 基于ArduinoUNO开发板的AT24C02读写测试被打赏¥16元 | |
我要赚赏金
