课程设计单片机与PC机串行通讯设计

  • 格式:doc
  • 大小:214.50 KB
  • 文档页数:18

下载文档原格式

  / 18
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

xxxxxx大学

课程设计报告

课程设计名称:单片机系统综合课程设计

课程设计题目:单片机与PC机串行通讯设计

院(系):

专业:

班级:

学号:

姓名:

指导教师:

完成日期:

目录

第1章总体设计方案 (1)

1.1课程设计的内容和要求 (1)

1.2课程设计原理 (1)

1.3课程设计思路 (2)

1.4实验环境 (2)

第2章详细设计方案 (3)

2.1实现方法 (3)

2.2模块设计 (3)

2.2.1主函数流程图 (3)

2.2.2功能1模块 (4)

2.3程序连线图 (7)

第3章调试及结果分析 (8)

3.1调试步骤及方法 (8)

3.2实验结果及分析 (8)

参考文献 (9)

附录A(源程序) (10)

附录B(原理图) (14)

附录C(元器件清单) (15)

第1章总体设计方案

1.1 课程设计的内容和要求

(1)、课程设计内容:

利用南京伟福公司的LAB6000通用微控制器仿真实验系统开发单片机与PC 机串行通讯系统,实现单片机与PC机的通讯。要求实现数据收发功能。具要求容如下:

①.通过LAB6000的小键盘选择功能;

②.功能1:接收PC机发送的数据,并将其回发给PC机;

③.功能2:从LAB6000的小键盘输入数据,发送给PC机。

(2)、课程设计要求:

①.认真完成课程设计任务;

②.通过老师现场验收;

③.交出完整的课程设计报告。

1.2 课程设计原理

根据题目要求,要完成LAB6000的小键盘选择,接收并且回发数据,小键盘可以输入并发送数据等功能,在本次设计中主要使用了MCS-51芯片以及部分连线来完成串行通讯的模拟。

采用MCS-51芯片实现不同模式串行通讯,通过延时程序控制串行通讯的频率。将键盘选择功能、PC机发送及接收数据功能、小键盘发送功能等通过不同的子程序实现,然后在程序中调用不同的子程序来实现不同的功能。

因为需要实现小键盘输入数据,所以必须实现键盘扫描功能及按键检测功能。按键的扫描方法有扫描法和线反转法,因为小键盘按键不是非常多,所以本设计采用行列扫描法来进行小键盘扫描。

1.3课程设计思路

(1).提出方案

设计键盘扫描函数函数和按键检测函数,通过MCS-51芯片,实现键盘扫描。通过小键盘设置17个键位选择键,输入“1”时在LED灯显示并选择功能1(接收和发送PC机发送的数据);输入“2”时在LED灯显示并选择功能2(从小键盘输入数据并发送给PC机)。

小键盘选择功能:首先设置定时器及波特率,然后再设计键盘扫描函数和按键检测函数,使之能实现小键盘选择功能。输入不同的数实现调用不同的函数,从而实现不同的功能。

功能1:设计PC发送函数,此功能还需要有串行口中断处理函数。目的是实现单片机可以接受PC机发送的数据,并将其回发给PC机。设置一个返回键,如按键“1”时返回小键盘选择功能,可以重新选择功能1还是功能2。

功能2:设计小键盘发送程序,需调用键盘扫描函数及按键检测函数,若有键按下,将键值发送到LED灯上,并将其转为ASCII码发送回PC机。同样设置一返回键,如按键“NEXT”(右数第一列,下数第一行)时返回小键盘选择功能。使函数能循环使用。

(2).方案论证

从实际应用的角度,用户可以任意选择事先设计好的2种状态,当选择完一种状态时,它可以无限的按照这种方案循环的运行下去,在此过程中,用户可以选择退出这种工作状态,从而实现对当前进行状态的控制,即可以令程序重新开始。在整个串行口输入过程中可随时做出不同的输入方式,对输入数据的工作状态进行控制。

1.4 实验环境

·硬件环境:MCS-51实验箱,PC机。

·软件环境:WAVE2000应用软件

第2章详细设计方案

2.1 实现方法

开始运行程序时数码管初始化显示6个数字0,然后选择一种模式(1和2),若输入的数不是“1”或“2”,只在LED灯上显示该数,等待重新输入一工作状态。此处在扫描键盘并按键检测后需将扫描到的段码发送到LED灯上。

若选择“1”,即要实现功能1则调用PC机发送函数,用串行口中断函数来保存断点(防止计数器溢出)。使之能实现接收PC机发送的数据后再将其回发给PC 机。设置一全局变量flag,当用户输入一个数(例如“1”的ASCII码)时flag置1使之跳出while语句死循环,从而达到返回小键盘选择功能的目的。

若选择“2”,即要实现功能2需调用小键盘扫描函数和按键检测函数,将小键盘输入的数据发送到LED灯上,同时然后将该数据转换成ASCII码的形式通过串行口发送到PC机上。同小键盘选择功能一样该功能也要调用小键盘扫描函数和按键检测函数。由于要实现按键返回的目的,在小键盘扫描函数中设置了“NEXT”键(变量kk=100时),同样利用了while语句来跳出死循环。

2.2模块设计

2.2.1主函数流程图

主程序用于控制个功能子程序的调用和相应的芯片及内存、寄存器、变量的初始化,协调整个程序的运行。由于本课设只用了8031芯片,小键盘和LED灯来显示模拟结果,而且所有的功能都是用软件实现的,所以主程序要能很好的组织程序的运行。

主函数模块首先设置定时器及波特率的选择,根据标志位k1的值选择是PC 模式发送数据还是小键盘模式发送数据,并根据功能选择模块中对各模式的信息的进行相应的初始设置。通过小键盘选择功能控制数据的输出方式,还能接受新的键值来执行相应的功能。读取的键值要先判断是否是无效键,是无效键要执行死循环程序,按下“1”或“2”键才能继续显示。如果是停止键(指程序设计功能1中的“1”键和功能2中的“NEXT”键),应立刻清空数码管的显示内存并将其重新初始化。如下页图2. 1所示。