logo资料库

51单片机与上位机串口通讯单片机.(包含51单片机和上位机的源码).doc

第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
资料共15页,剩余部分请下载后查看
“课程设计”项目报告 51 单片机与上位机串口通讯 项目名称: 专 班 业: 级: 学号: 姓名: 学号: 姓名: 成绩: 成绩: 学号: 姓名: 成绩: 指导教师: 申请日期: 湖北科技学院计算机科学与技术学院制 项目名称 51 单片机与上位机的串口程序设计 1
研究起始时间 第 14、15 周 完成时间 第 16 周 指导教师简况 姓名 职称 讲师 所属教研室 物联网 课程名称 单片机 2
设计内容及要求: 内容: 1,进行协议分析,完成单片机硬件电路原理图设计,在面包板上 搭建电路。 2、测试上位机与单片机的通讯状态,实现实验要求部分的功能。 要求: 1、单片机能接收并识别上位机的查询请求。 2、上位机发送 ASII 码,51 单片机的数码管显示相应的 ASII 值。 实施方案及实施计划 1、具体研究内容、研究目标和拟解决的关键问题 3
1,进行协议分析,完成单片机硬件电路原理图设计,在面包板上 搭建电路。 2、测试上位机与单片机的通讯状态。 3、根据实验要求,设计数据采集电路,选择合适的元器件,按照原理 图,并根据各个元器件的特性以及接口电路结构形式,在面包板上搭接 实际电路,搭接完毕之后对电路做优化设计,使电路尽量简洁。 2、进程安排(给出项目实施的具体分步骤计划) 第 14 周 1. 对课题进行分析,拟出初步计划,对实验过程进行规划 2. 完成实验流程图,对各部分内容进行完。 3.运行试验,查看结果。 第 15 周 1.对实验过程进行整理。 2.完成实验报告 4
3、具体设计方案(3000-5000 字 5-6 页) 一.总体设计方案 1、程序流程图: 5
设计方法及原理 机与 PC 机通过串口通讯。 1、USB 转串口模块将 USB 接口转化为串口后与单片机相连,用来实现单片 2、初始化单片机串口的设置,使之与上位机的设置相符,具体为通信速率 9600B/S,停止位 1 位,数据位 8 位。 3、本系统串口数据接收是采用的查询方式,单片机每次循环查询串口是否收 到了数据。 4、上位机若连续查询接口状态 2 次都收不到回复,上位机可以判断与从机失 去联系,所有接口状态都置为不正常状态 6
电路原理 STC89C52 芯片 1、芯片引脚 51 系列的 DIP 封装的单片机共有 40 个外部引脚,其中有 P0,P1,P2,P3 四组 IO 口,详细如下图。 2、 2、芯片串口工作原理 1、波特率选择 波特率(Boud Rate)就是在串口通信中每秒能够发送的位数 (bits/second)。MSC-51 串行端口在四种工作模式下有不同的波特率计算方法。 下面以工作模式 1 为来说明串口通信波特率的选择。 在串行端口工作于模式 1, 其波特率将由计时/计数器 1 来产生,通常设置定时器工作于模式 2(自动再加模 式)。在此模式下波特率计算公式为: 波特率=(1+SMOD)*晶振频率/(384*(256-TH1)) 其中,SMOD——寄存器 PCON 的第 7 位,称为波特率倍增位; TH1——定 时器的重载值。 2、SBUF 数据缓冲寄存器 这是一个可以直接寻址的串行口专用寄存器。SBUF 包含了两个独立的寄存 器,一个是发送寄存,另一个是接收寄存器,但它们都共同使用同一个寻址地址- 99H。CPU 在读 SBUF 时会指到接收寄存器,在写时会指到发送寄存器。 3、SCON 串行口控制寄存器 通常在芯片或设备中为了监视或控制接口状 态,都会引用到接口控制寄存器。SCON 就是 51 芯片的串行口控制寄存器。它的 寻址地址是 98H,是一个可以位寻址的寄存器,作用就是监视和控制 51 芯片串行 口的工作状态。51 芯片的串口可以工作在几个不同的工作模式下,其工作模式的 设置就是使用 SCON 寄存器。它的各个位的具体定义如下: 7
SM0、SM1 为串行口工作模式设置位,这样两位可以对应进行四种模式的设置。 看表串行口工作模式设置。 3.2 串口通信协议 通信协议是通信设备在通信前的约定。单片机、计算机有了 协议这种约定,通信双方才能明白对方的意图,以进行下一步动作。 主机通过轮 询方式访问从机,通过发送从机地址呼叫从机,地址相符合的从机把数据发送给主 机 通信格式: 主机发送数据格式: 主机每隔 5 秒钟查询一遍 从机发送数据格式:校验为和校验 (2 个图) 二.程序设计方案 对程序的功能设计详细描述 (1)51 单片机程序: #include typedef unsigned char uint8; typedef unsigned int uint16; typedef unsigned long uint32; sbit ENLED = P1^4; sbit ADDR0 = P1^0; sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; 8
分享到:
收藏