AT80C51串口通信编程

作者: 凌川江雪 | 来源:发表于2018-11-26 09:16 被阅读0次

uart8051.h:

#ifndef __UART_H__
#define __UART_H__

#define XTAL 12000000
#define baudrate 9600

char UART_putchar(char ch);
char UART_getkey(void);
void InitCom(void);

#endif

uart8051.c:

#include <reg51.h>
#include "uart8051.h"

char UART_putchar(char ch)
{
    if(ch=='\n')
    {
        SBUF = 0x0d;
        while(TI == 0);
          TI=0;
        SBUF = 0x0a;
    }
    
    else
          SBUF = ch;
    while(TI == 0);
    TI = 0;
    return ch;
}

char UART_getkey(void)
{
    char c;
    
    while(!RI);
    c = SBUF;
    RI = 0;
    return(c);
}

void InitCom(void)
{
    SCON=0X50;
    TMOD=0X20;
    PCON=0X80;
    TH1=0XF3;
    TL1=0XF3;
    ES=0;
    EA=1;
    TR1=1;
}

main.c:

#include <reg51.h>
#include <stdio.h>
#include "uart8051.h"

char putchar(char ch)
{
    return UART_putchar(ch);
}

char _getkey(void)
{
    return UART_getkey();
}

void main(void)
{
  
  
    unsigned int tem;
    InitCom();
    printf("´®¿Ú²âÊÔ£¬³£¹æÊ¹ÓÃ:\n");
    UART_putchar('A');UART_putchar(' ');
    UART_putchar('B');UART_putchar(' ');
    UART_putchar('C');UART_putchar(' ');
    UART_putchar('D');UART_putchar(' ');
    UART_putchar('\n');
    
    printf("Ç¿´óµÄ¸ñʽ»¯Á÷Êä³ö£º\n");
    printf("Êä³öÒ»¸öÕûÐΣº%d\n",(int)6886);
    printf("Êä³öÒ»¸öʵÐÍ£º%d\n",(float)68.86);
    while(1)
    {
        printf("\nÊäÈëÒ»¸öÕûÐÍ£¬ËÍP2¿Ú×¢Òâ¹Û²ìP2¿ÚµÄµÆ:\n");
        scanf("%d",&tem);
        
        P2=tem;
    }
}

编译之后,打开烧录软件烧录,然后打开串口通信助手进行调试:

如上图,分别输入1+空格,2+空格,3+空格,效果图如下:
1+空格:


2+空格:

3+空格:

相关文章

  • AT80C51串口通信编程

    uart8051.h: uart8051.c: main.c: 编译之后,打开烧录软件烧录,然后打开串口通信助手进...

  • 1月8日

    今天学的串口通信,知道了很多知识,还做了编程,今天自己还想要加深一下,在串口通信中用中断做了一下编程,但并没有达到...

  • MATLAB 串口通信

    matlab 串口编程 由于项目需要,用matlab 做了一个串口通信工具,也碰到不少坑。这里总结一下。 读取串口...

  • Qt5学习:串口编程基础

    转载自QT开发(五十)——QT串口编程基础 一、QtSerialPort简介 (一)串口通信基础 目前使用最广泛的...

  • 单片机小白学习之路(二十五)---串口通信的编程

    目标:串口通信的编程 (2)串口初始化步骤①确定T1的工作方式(TMOD寄存器);②确定串口工作方式(SCON寄存...

  • Android平台的串口通信技术

    概念 串口通信 概念;串口通信(Serial Communications)按位(bit)发送和接收字节。串口可以...

  • 干货小知识:一文教你Java程序与串口通信的实现及通信!

    串口通信的原理 串口通信指串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使...

  • 基于plc的SKD-30A 激光距离传感器串口通信控制

    基于plc的SKD-30A 激光距离传感器串口通信控制 本文是我最近自学的plc串口编程 1.1采用欧姆龙CP1E...

  • Python串口通信

    前言 从需求说起 串口通信控制二维码阅读器 串口通信控制门闸机 pyserial python 串口通信第三方包 ...

  • 9月21日

    今天讲的全新内容 串口通信 什么是串口和并口 主要讲解是串口通信寄存器的配置 并且初步实现了通信功能 下午复习上午...

网友评论

    本文标题:AT80C51串口通信编程

    本文链接:https://www.haomeiwen.com/subject/sqevqqtx.html