单片机串口自发自收

单片机串口自发自收

#include<reg51.h>      
unsigned char code led_code[]={
   0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,
                              0x11,0xc1,0x63,0x85,0x61,0x71,0xff};
unsigned char dis_buf[4];
sbit led_clk= P1^6 ;                     
sbit led_data = P1^7 ;                  
sbit key1=P2^0;
sbit key2=P2^1;
sbit key3=P2^2;
sbit key4=P2^3;
unsigned char read_flag ;
unsigned char flag=0;
unsigned char TT[4],num;
unsigned char i,j;                                                                                            
void led_display ( )      
{
   
       unsignedchar t,i;
       unsignedchar input_code;     
       for(i=0;i
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
汇编语言中,使用 8051 单片机实现串口自发自收功能的步骤如下: 1. 配置串口工作模式:设置波特率、数据位数、停止位数、奇偶校验等参数。 2. 初始化串口中断:使能串口中断,并设置中断优先级。 3. 编写串口发送数据的子程序:将要发送的数据存入发送缓冲区,并通过串口发送出去。 4. 编写串口接收数据的子程序:当接收到数据时,将数据存入接收缓冲区,并触发中断。 5. 在主程序中,轮询接收缓冲区是否有数据,若有则读取数据,并进行相应处理。 下面是一个简单的示例代码,实现了串口自发自收的功能: ``` ORG 0H SJMP main UART_ISR: ;串口中断处理程序 MOV A, SBUF ;读取接收数据 MOV SBUF, A ;发送数据 RETI UART_Init: ;串口初始化函数 MOV TMOD, #20H ;设置定时器1为模式2 MOV TH1, #0FDH ;设置波特率为9600bps(12MHz晶振) SETB TR1 ;启动定时器1 SETB ES ;使能串口中断 RET UART_Send: ;串口发送函数 MOV SBUF, #55H ;将数据存入发送缓冲区 RET UART_Recv: ;串口接收函数 JNB RI, $ ;等待接收数据 MOV A, SBUF ;读取接收数据 SETB RI ;清除接收中断标志 RET main: CALL UART_Init ;初始化串口 loop: CALL UART_Recv ;接收数据 JB RI, loop ;等待接收数据 CALL UART_Send ;发送数据 SJMP loop ``` 此代码实现了不断接收数据并发送相同的数据回去的功能。 具体实现方法可以参考 8051 单片机的开发文档和相关资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值