8051单片机 汇编语言 串行口通信问题 (程序很简单的)

8051单片机 汇编语言 串行口通信问题 (程序很简单的),第1张

发送成功时,才会运行到下一步,这需要一段时间。

MOV SCON,#40H

改为:

MOV SCON,#50H

增加: 这是初始化定时器1的语句

MOV TMOD,#20H

MOV TH1 ,#0FDH

MOV TL1 ,#0FDH

SETB TR1

利用50H、51H和52H,作为计数单元,程序如下:

ORG 0000H

SJMP MAIN

ORG 0030H

MAIN:

MOV SCON, #00H 设置串行口工作在方式0

MOV 50H, #00H 个位清零

MOV 51H, #00H

MOV 52H, #00H

DL_LOOP:

LCALL DL_100MS

MOV A, 50H

ADD A, #1

MOV 50H, A

CJNE A, #10, XIAN_SHI

MOV 50H, #0

MOV A, 51H

ADD A, #1

MOV 51H, A

CJNE A, #10, XIAN_SHI

MOV 51H, #0

MOV A, 52H

ADD A, #1

MOV 52H, A

CJNE A, #10, XIAN_SHI

MOV 52H, #0

XIAN_SHI:

MOV DPTR, #SEGPT

MOV A, 50H 先串行输出个位

MOVC A, @A+DPTR

MOV SBUF, A

JNB TI, $ 等待输出结束

CLR TI

MOV A, 51H 串行输出十位

MOVC A, @A+DPTR

MOV SBUF, A

JNB TI, $

CLR TI

MOV A, 52H 串行输出百位

MOVC A, @A+DPTR

MOV SBUF, A

JNB TI, $

CLR TI

LJMP DL_LOOP反复循环

DL_100MS: 这里的数字,可以自行调整到延时100ms

MOV R3, #10

D1: MOV R4, #20

D2: MOV R5, #248

DJNZ R5, $

DJNZ R4, D2

DJNZ R3, D1

RET

SEGPT: DB 0C0H, 0F9H, 0A4H, 0B0H 0、1、2、3

DB 99H, 92H, 82H, 0F8H 4、5、6、7

DB 80H, 90H, 88H, 83H 8、9、A、B

DB 0C6H, 0A1H, 86H, 8EH C、D、E、F

END


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7824022.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存