用汇编语言实现在内部RAM的30H~37H单元中的数据,采用方式1串行发送出去,传递速率为1200波特,时钟频率为6MHz,SMOD=0写出接收程序和发送程序
时间: 2024-02-18 13:01:28 浏览: 78
用PIC汇编写的,有接收和发送程序.
以下是使用汇编语言实现在内部RAM的30H~37H单元中的数据,采用方式1串行发送出去,传递速率为1200波特,时钟频率为6MHz,SMOD=0的发送程序和接收程序:
发送程序(注:使用P3.1口发送数据):
```assembly
ORG 0H
START: MOV DPTR, #DATA ; 将数据的地址存入 DPTR
MOV R0, #8 ; 设置计数器 R0 的值为 8
LOOP: MOV A, @DPTR ; 取出数据
MOV SBUF, A ; 将数据发送到串口
WAIT: JNB TI, WAIT ; 等待传输完成
CLR TI ; 清除 TI 标志位
INC DPTR ; 指向下一个数据
DJNZ R0, LOOP ; 继续发送下一个数据
SJMP $ ; 结束程序
DATA: DB 12H, 34H, 56H, 78H, 9AH, ABH, CDH, EFH ; 待发送的数据
END
```
接收程序(注:使用P3.0口接收数据):
```assembly
ORG 0H
START: MOV SCON, #50H ; 配置串口为模式1,允许接收数据
MOV TMOD, #20H ; 设置定时器1为模式2
MOV TH1, #-3 ; 设置波特率发生器的初值
SETB TR1 ; 启动定时器1
SETB ES ; 允许串口中断
MOV A, #0FFH ; 将 A 寄存器清零
MOV P1, A ; 初始化 P1 口状态
WAIT: JB P3.0, WAIT ; 等待接收到数据
MOV A, SBUF ; 读取接收到的数据
MOV P1, A ; 将数据输出到 P1 口
CLR RI ; 清除 RI 标志位
SJMP WAIT ; 继续等待接收下一个数据
END
```
阅读全文