首页 > 其他分享 >UAV2101~2105串行通信训练

UAV2101~2105串行通信训练

时间:2023-12-23 23:00:32浏览次数:38  
标签:PC机 9600 uart void UAV2101 char 串行 波特率 2105

训练001、单片机与PC机通信,11.0592M晶振,波特率9600。实现任意字符发送。

#include <reg52.h>

bit busy;

void SendData(unsigned char dat)
{
    while(busy);//判断是否忙
    busy =1;
    SBUF = dat;

}
void SendString(char *s)
{
    while (*s)    //Check the end of the string
    {
        SendData(*s++); //Send current char and increment string ptr
    }
}
void main()
{
    SCON = 0x40;  //配置工作方式1,禁止接收
    PCON |= 0x80; //SMOD=1,波特率加倍
    TMOD = 0x20;  //T1工作于方式2,定时方式
    TH1 = 0xfa;   //定时器装初值
    TL1 = 0xfa;
    TR1 = 1; //开定时器1
    ES = 1;  //开串口中断
    EA = 1;  //开总中断
    SendString("STC89C52RC\r\nUart Test !\r\n");
    while(1);
}

void uart() interrupt 4
{
    if(TI)
    {
        TI = 0;
        busy = 0;        
    }
}

训练002、片机与PC机通信,11.0592M晶振,波特率9600。实现任意字符发送。并且可以通过串行调试助手接收端返回显示(SCON=0x50允许接收),数码管显示出来对应数字

#include <reg52.h>

unsigned char Tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,
0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}; //共阳极8段

//#define FOSC 11059200L      //System frequency
//#define BAUD 9600           //UART baudrate
//TH1 = TL1 = -(FOSC/12/32/BAUD); //Set auto-reload vaule
char uart_data;

void main (void)
{
    SCON = 0x50; /* uart in mode 1 (8 bit), REN=1 */
    TMOD = TMOD | 0x20 ; /* Timer 1 in mode 2 */
    TH1 = 0xFD; /* 9600 Bds at 11.059MHz */
    TL1 = 0xFD; /* 9600 Bds at 11.059MHz */
    ES = 1; /* Enable serial interrupt*/
    EA = 1; /* Enable global interrupt */
    TR1 = 1; /* Timer 1 run */
    while(1); /* endless */
}

void serial_IT(void) interrupt 4
{
    if (RI == 1)
    {    /* if reception occur */
         RI = 0; /* clear reception flag for next reception */
         uart_data = SBUF; /* Read receive data */
         P2 = Tab[uart_data];
         SBUF = uart_data; /* Send back same data on uart*/
    }
    else TI = 0; /* if emission occur */
} /* clear emission flag for next emission*/

 

训练003、单片机与PC机通信,11.0592M晶振,波特率9600。实现任意字符发送。不开中断

#include <reg52.h>
unsigned char Tab[]={'1','2','3','4','5','o','k'};//定义了向PC机发送的数组
unsigned char i;
void main()
{
    SCON = 0x40;  //配置工作方式1,禁止接收
    PCON |= 0x80; //SMOD=1,波特率加倍
    TMOD = 0x20;  //T1工作于方式2,定时方式
    TH1 = 0xfa;   //定时器装初值
    TL1 = 0xfa;
    TR1 = 1; //开定时器1

    while(1)
    {
        for(i=0;i<7;i++)
        {
            SBUF = Tab[i];
            while(!TI);//等待发送完
            TI=0;      //清除发送结束标志  
        }
        SBUF= '\r' ;   //回车
        while(!TI);    //等待发送完
        TI=0;          //清除发送结束标志 
//        SBUF= '\n' ;   //换行
//        while(!TI);  //等待发送完
//        TI=0;          //清除发送结束标志          
    }        
}

训练004、实现单片机与PC机通信,11.0592M晶振,波特率9600。实现;两个功能。

1、单片机按键按下,向PC机发送4组1–5五个数,共20

2、PC机控制单片机LED灯的亮灭。

 

标签:PC机,9600,uart,void,UAV2101,char,串行,波特率,2105
From: https://www.cnblogs.com/yilangUAV/p/17923799.html

相关文章

  • 编译并行,link串行
    在CMake中,如果你有多个可执行文件目标,并且你想要它们在链接时串行构建,你可以使用CMake的add_dependencies命令来创建一个依赖链。这将确保在开始构建一个目标之前,它所依赖的目标已经构建完成。下面是一个简化的步骤说明,展示了如何设置CMakeLists.txt来实现多个可执行文件的串行链......
  • Netty使用CompletableFuture实现异步串行队列
    一、前言CompletableFuture是JDK1.8提供的一种更加强大的异步编程的api。它实现了Future接口,也就是Future的功能特性CompletableFuture也有。它也实现了CompletionStage接口,CompletionStage接口定义了任务编排的方法,执行某一阶段,可以向下执行后续阶段。CompletableFuture相比于Futu......
  • 定时器训练(UAV2101~UAV2105)
    例子001、51单片机定时器训练下面是一份基本的51定时器控制代码#include<reg52.h>//8051头文件//定义时钟频率为12MHz#defineFOSC12000000UL//定义波特率为9600#defineBAUDRATE9600//定义定时器重装值#defineTIMER_RELOAD_VALUE65535-50000+1sbitLE......
  • transformer中decoder到底是串行还是并行
    在Transformer中,Decoder部分内部的不同层通常可以并行工作,这意味着每个Decoder层可以同时处理整个序列。比如,在处理Self-Attention时,模型可以同时计算所有位置的注意力权重。但在生成输出序列时,尽管Decoder内部的不同层可以并行工作,模型仍然需要按顺序逐步生成每个词。这是因为Tr......
  • 【Vulnhub 靶场】【DriftingBlues: 9 (final)】【简单】【20210509】
    1、环境介绍靶场介绍:https://www.vulnhub.com/entry/driftingblues-9-final,695/靶场下载:https://download.vulnhub.com/driftingblues/driftingblues9.ova靶场难度:简单发布日期:2021年05月09日文件大小:738MB靶场作者:tasiyanci靶场描述:getflags打靶耗时:2+小时打靶关键:......
  • 【Vulnhub 靶场】【Coffee Addicts: 1】【简单-中等】【20210520】
    1、环境介绍靶场介绍:https://www.vulnhub.com/entry/coffee-addicts-1,699/靶场下载:https://download.vulnhub.com/coffeeaddicts/coffeeaddicts.ova靶场难度:简单-中等发布日期:2021年5月20日文件大小:1.3GB靶场作者:BadByte靶场描述:我们的咖啡店被黑客入侵了!!你能修复......
  • 51串行接口
       ......
  • 数据库设计心得——软件2105最抽象的一组
    一、前言我们小组的项目是医学图像去噪系统,项目工作的重点在于去噪模型的训练,有关数据库的结构不是很复杂。需要数据库完成的工作主要就是用户账户信息的存储和图像信息的存储以及实体之间关系的处理。二、具体实现在数据库的具体实现上,主要围绕两点来搭建框架。第一点是医生的......
  • 嵌入式中的I2C通信:串行通信的精华
    I2C(Inter-IntegratedCircuit),通常简称为IIC,是一种流行的串行通信协议,广泛应用于嵌入式系统中。本文将介绍I2C通信的基本原理,并提供代码示例,演示如何在嵌入式系统中使用I2C进行设备间的通信。I2C概述I2C是一种多主从结构的串行通信协议,最初由飞利浦(Philips)开发。它具有以下特点:双线......
  • JS异步任务的并行、串行,以及二者结合
    让多个异步任务按照我们的想法执行,是开发中常见的需求。今天我们就来捋一下,如何让多个异步任务并行,串行,以及并行串行相结合。 一、并行并行是使用最多的方式,多个相互间没有依赖关系的异步任务,并行执行能够提高效率。我们最经常用的,是Promise.all()。functionf1(){......