51单片机和PC串口异步通信(续)

上一篇文章主要罗列了一些编写串口通信必要的知识点。在具体的编程中,还有很多要注意的地方。

下面的程序的主要功能为:通过串口调试助手向51单片机发送一个字母,单片机接收后,在数码管上显示这个字母,并将这个字母反向显示到串口调试助手的界面里。

51单片机的头文件中已经定义了串口缓冲区等一系列特殊功能寄存器,打开头文件就可以找到下面这样的定义:

sfr SCON  = 0x98;
sfr SBUF  = 0x99;

等等。

首先新建立一个头文件,将程序中要用到的变量和函数声明写进去:

#include <reg52.h>
#include <ctype.h>

#define uchar   unsigned char

sbit dula=P2^6;
sbit wela=P2^7;

//从计算机发送给单片机的字母
uchar letter;

//table数组中存储数码管显示0~F对应的编码
//这里只用A~F即可
uchar code   table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};

void Inital();
void Display(uchar mydata);
void Putchar(uchar mydata);
void ShortDelay();


包含头文件<ctype.h>的主要目的为利用库函数toupper(),可以讲读入的字母均转换成大写,便于调用Display函数在数码管上显示。

 

主函数很简单,首先初始化,然后便进入永远为真的循环中,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目 录 1 选题 1 1.1选题背景 1 1.2设计任务 1 2 整体通信设计 2 2.1 总体方框图 2 2.2 通信过程分析 3 2.3 通信方式的选择 3 3 硬件电路的设计 5 3.1 AT89C52单片机引脚及其说明 5 3.2 MAX232芯片引脚及其说明 6 3.3 DB9及其说明 7 3.4 数码显示、驱动电路及说明 9 4 PC端软件设计 10 4.1 用户界面设计 10 4.2 程序设计 10 5 原理总图 13 6 元器件清单 14 7 调试 15 7.1 调试过程 15 7.2 调试结果 15 8 小结和设计体会 17 9 单片机程序 18 参考文献 21 1 选题 1.1选题背景 在各种单片机应用系统的设计中,如智能仪器仪表、各类手持设备、GPS接收器等, 常常遇到计算机与外界的信息交换,即通讯。通信的基本方式可分为并行通信与串行通 信两种。 目前,在许多单片机应用系统中,上、下位机分工明确,作为下位机核心器件的单片 机往往只负责数据的采集和通信,而上位机通常以基于图形界面的Windows系统为操作平 台。 现阶段这种应用的核心便是数据通信,它包括单片机和上位机之间、客户端和服务器 之间以及客户端和客户端之间的通信,而在单片机和上位机之间的数据通信则是整个系 统的基础。单片机PC通信是通过单片机串口PC机之间的硬件连接实现。鉴于PC 机具有强大的监控和管理功能,单片机则具有快速以及容易控制的特点,在数据量不大 、传输要求不高的情况下,一般都采用给PC机配置的RS- 232标准串行接口COM1、COM2等相连接来实现应用系统与PC机之间的数据交换。 现今我国工业迅速发展的情况下,对工业中的计算机控制提出了较高的要求。比如在 常见的现场数据采集中,对各个采集点需要采集不同的数据,比如温度、湿度、压力、 照度,这就需要单片机对计算机发出的不同的指令做出不同的反应,并且返回相应的采 集到的数据。这就需要单片机PC进行双向数据通信。这也是本设计可以应用到的地 方之一。 1.2设计任务 在计算机控制系统中,不可避免的要采用多机进行通信。随着单片机在各个领域的广 泛应用,利用51实验板等单片机系统与PC机RS232串口相连,实现双向数据通信。 利用可视化程序设计编制串口调试软件,然后向串口发送"1"、"2"......"8"、"9"、 "0"等字符,实验板收到数据后通过数码管显示出来,同时会向PC机反馈显示成功的确认 信号,即在PC串口调试软件的接收缓冲区内将显示"Display OK!"等字样。 2 整体通信设计 2.1 总体方框图 图2-1 总体方框图 (单片机) 图2-2 总体方框图 (PC端) 2.2 通信过程分析 单片机上电之后显示显示缓存区的数据,等待串行中断。串行中断过来的时候,先 判断是接受中断还是发送中断,如果是发送中断,那么把TI清零之后中断返回;如果是 接收中断,那么就进入处理子程序,在处理子程序里面,单片机接收到的ASCII码形式 的数据转换为十六进制的数字,存放到显示缓存区,调用显示子程序在数码管上显示出 接收到的数据,再调用发送子程序给PC端软件回送一个确认显示的信号。 2.3 通信方式的选择 一、数据通信的传输方式:常用于数据通信的传输方式有单工、半双工、全双工和多 工方式。 A. 单工方式:数据仅按一个固定的方向传送。因为这种传输方式的用途有限,常用于串 行口的打印数据传输与简单系统间的数据采集。 B. 双工方式:数据可以实现双向传送,但不能同时进行,实际的应用采用某种协议实现 收发开关转换。 C. 全双工方式:允许双方同时进行数据双向传送,但一般全双工电路的线路和设备比较 复杂。 D. 多工方式:以上三种传输方式都是同一线路传输一种频率信号,为了充分的利用线路 资源,可通过使用多路复用器或多路集线器,采用频分、时分、或码分复用技术, 即可实现在同一线路上资源共享功能,我们称之为多工传输方式。 二、串行通信的两种通信形式: A. 异步通信 在这种通信方式中,接收器和发射器有各自的时钟,他们的工作是非同步的,异 步通信用一帧来表示一个字符,其内容如下:一个起始位,紧接着是若干个数据位, B.同步通信 同步通信格式中,发送器和接收器由同一个时钟源控制,为了克服在异步传输中 每传输一帧字符都必须加上起始位和停止位,占用了传输时间的这一缺点。同步通信 常用于传输速率要求较高的场合。 三、 串行数据通信的传输速率: 串行数据传输率有两个概念,既每秒传送的位数bps(Bit per second)和每秒符号数-波特率(Band rate)。 四、本设计中串行通信的实现 (1)通信协议:PC机首先发送一个数据(以ASCII码形式表示的数字),单片机接收到 之后返回一个约定的数据(本

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值