编写串口接收数据的8051程序,并将接收的数据放到P1中,假定波特率为9600。8位数据位,1位停止位。 其中:TMOD=20H SCON=50H TH1=-3
时间: 2024-03-16 16:46:22 浏览: 41
好的,以下是8051的串口接收程序示例,可以将接收到的数据放到P1寄存器中:
```
ORG 0H
MOV TMOD,#20H ; 设置计数器1的工作方式为模式2
MOV SCON,#50H ; 设置串口工作方式为模式1,允许接收
MOV TH1,#-3 ; 设置计数器1的重载值为-3,波特率为9600
SETB TR1 ; 启动计数器1
SETB ES ; 打开串口中断
MAIN:
SJMP MAIN ; 循环等待串口中断
SERIAL_ISR:
CLR RI ; 清除接收中断标志位
MOV A, SBUF ; 读取接收到的数据
MOV P1, A ; 将接收到的数据放到P1寄存器中
RETI ; 结束中断处理
```
在程序中,我们首先设置了计数器1和串口的工作方式,然后启动计数器1并打开串口中断。在主循环中,我们等待串口中断发生。当接收到数据时,程序将会跳转到`SERIAL_ISR`中断处理程序,其中我们将接收到的数据放到P1寄存器中,并清除接收中断标志位。最后,我们使用`RETI`指令结束中断处理程序。
希望这个程序能够帮助到你!
阅读全文