单片机和pc计算机通信系统的设计.docx
- 文档编号:28242455
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:63
- 大小:708.27KB
单片机和pc计算机通信系统的设计.docx
《单片机和pc计算机通信系统的设计.docx》由会员分享,可在线阅读,更多相关《单片机和pc计算机通信系统的设计.docx(63页珍藏版)》请在冰豆网上搜索。
单片机和pc计算机通信系统的设计
图书分类号:
密级:
单片机和PC计算机通信系统的设计
摘要
本设计以单片机89C52为核心实现了和PC机的串行通信。
在硬件电路上,采用MAX232实现PC机与单片机之间的电平转换;在软件编程上,PC机采用VB6.0的通信控件MSCOMM编程,单片机采用C51编程实现了可靠的串行数据传输。
单片机接收计算机的命令并将测试数据通过串口发送给计算机,计算机接收数据处理后显示。
关键词串行通信;MAX232;MSCOMM
Abstract
Thisdesignwithsingleslicethemachine89C52sforthecorecarriedoutalinetocorrespondbyletterwiththestringofthePCmachine.AdoptMAX232tocarryoutPCmachineandsinglesliceofthemachinetogiveorgetanelectricshockanevenconversiononthehardwareelectriccircuit;Weaveadistanceinthesoftwareup,thePCmachineadoptsVB6.0correspondencescontrolaMSCOMMplaitdistance,thesingleslicemachineadoptedtheC51plaitdistancetocarryoutadependablestringlinedatatodeliver.Thesingleslicemachinereceivestheorderofcalculatorandpasstestdataastringofsendouttothecalculator,thecalculatorshowsafterreceivingthedataprocessing.
KeywordsThestringlinecorrespondsbyletterMAX232MSCOMM
1绪论………………………………………………………………………………………….1
1.1单片机和PC计算机……………………………………………………………………1
1.1.1单片机的概述…………………………………………………………..………….1
1.1.2单片机和PC机通信意义………………………………………………………….1
2Keil开发环境……………………………………………………………………………….2
2.1uVision2的启动………………………………………………………………………2
2.2在uVision2上创建应用程序……………………..………………………………….3
2.3CPU的仿真调试………………………………………………………………………...7
3通信系统的硬件设计……………………………………………………………………….9
3.1通信系统的开发硬件设计…………………………………………………………….9
4字符型液晶显示器LCD1602………………………………………………………………10
4.1标准字符型液晶显示器LCD接口……………………………………………………10
4.1.1显示数据存储器(DDRAM)……………………………………………………...…10
4.1.2字符存储器(CGRAM、CGROM)…………………………………………………….10
4.1.3LCD显示模块的控制指令………………………………………………………..10
4.2单片机与LCD1602的硬件连接原理图………………………………………………12
4.3液晶显示器LCD1602软件的设计……………………………………………………13
5通信系统的软件设计……………………………………………………………………...15
5.1单片机部分软件设计………………………………………………………………...15
5.1.1串口的工作方式设置…………………………………………………………….15
5.1.2串口波特率的设定……………………………………………………………….15
5.1.3握手信号的规定………………………………………………………………….15
5.1.4数据传送方式…………………………………………………………………….15
5.1.5通信方式………………………………………………………………………….15
5.1.6数据帧的格式…………………………………………………………………….15
5.1.7单片机测试程序………………………………………………………………….16
5.1.8串口测试程序…………………………………………………………………….16
5.2PC机通信及数据处理显示程序设计………………………………………………..17
5.2.1VB6.0特点………………………………………………………………………...17
5.2.2MSComm控件………………………………………………………………………18
5.2.2.1MSComm控件的主要属性、事件………………………………………………18
5.2.3VB程序设计………………………………………………………………………19
5.2.3.1程序详细设计………………………………………………………………...19
5.2.3.2系统界面……………………………………………………………………...19
5.3VB程序设计中遇到的问题与解决方法……………………………………………...19
结论…………………………………………………………………………………………...20
致…………………………………………………………………………………………...21
参考文献……………………………………………………………………………………...22
附录…………………………………………………………………………………………...23
附录1:
硬件原理图……………………………………….……………………………….23
附录2:
设计的程序清单…………………………………………………………………..23
附录3:
外文翻译………………………………………………………………..…….….33
1绪论
随着世界科技的不断发展,单片机与PC机的联系越来越紧密,单片机的应用也越来越广泛。
如:
在工业控制、数据采集、家用电器以及仪器仪表自动化等许多领域都起着十分重要的作用。
但在实际应用中,在要求数据量大的应用场合,单片机往往难以胜任,而PC机着重发展海量高速数值运算技术,其控制能力是有限的。
这时使用多个单片机结合PC机组成分布式系统是一个比较好的解决方案,这样单片机与PC机的数据通信技术就变得十分重要。
1.1单片机和PC计算机
1.1.1单片机的概述
单片机作为嵌入式系统的一种,从MCS-51系列起,串行通信模块作为一个重要功能,被集成到了单片机部,已在自动化控制以及家电产品等领域得到了广泛的应用。
常见的单片机系统都具备一个串行口(如AT89C51),有的还具备了两个串行口(如DS80C320系列)甚至多个串行口。
这些串行口就是单片机的串行通信模块,通过串行通信接口可把单片机与PC机连接起来进行数据传输。
1.1.2单片机和PC机通信意义
单片机技术和PC机技术在现实生活中都起着不可取代的作用,而结合这两种技术的应用有着极大的发展前景。
单片机和PC机串行通信技术有着其特有的魅力,现已经在工业、农业、科研等各个领域广泛地应用。
它凭着成本低、实现简单等特点,在单片机与PC机的通信中占着一席之地
2Keil开发环境
本系统的设计、开发和调试采用单片机的C语言编程,使用KEILC51软件对程序进行编辑、编译、调试。
C语言是一种通用的计算机程序设计语言,它提供高效的代码,结构化的编程,和丰富的操作符。
其语言简洁,使用灵活方便,可移植性好,表达能力强,具有直接访问机器物理地址的能力。
C不是一种大语言,不是为任何特殊应用领域而设计。
它一般来说限制较少,可以为各种软件任务提供方便和有效的编程。
许多应用程序用C编写比其他语言编写更方便和有效。
KEILC51编译器可以直接对51系列单片机的部特殊功能寄存器和I/O口进行操作,可以直接访问片或片外存储器,还可以进行各种位操作。
C语言不能执行的操作(如输入和输出)需要操作系统的支持。
这些操作作为标准库的一部分提供。
因为这些函数和语言本身无关,所以C特别适合对多平台提供代码。
Keil51是德国KEIL公司开发的51系列单片机的开发工具,支持世界上几乎所有的51系列单片机,并不断推出新的版本,支持51系列单片机的新系列、新型号。
同样KEIL51也支持uPSD3300系列单片机。
uVision2是KEIL51在Windows环境下的集成化文件管理编译系统,它集成了文件处理、项目管理、编译连接、软件仿真调试等多种功能,支持汇编语言和C语言程序设计。
2.1uVision2的启动
双击桌面上的图标启动uVision2,
出现如图5-1所示得主窗口。
图2-1uVision2启动界面
uVision2提供了一个多功能的文件操作环境,包含项目管理窗口、源程序编辑窗口、编译信息窗口等,如图2-2所示。
图2-2KEILuVision2IDE界面
2.2在uVision2上创建应用程序
在uVision2的操作环境下,创建程序分以下步骤:
一创建一个项目
如图2-3所示,点击Project菜单,选择弹出的下拉式菜单中的NewProject。
图2-3新建项目
接着弹出一个标准Windows文件对话窗口,填写新项目文件名(*.uv2),取名为设计总汇.uv2,单击“保存”按钮。
uVision2会在项目管理窗口中出席那默认的目标名Target1和文件组名SourceGroup1,接着弹出如图2-4所示的“SelectDeviceforTarget‘Target1’”对话框,为Target1选择合适的CPU的型号,选择ATEML公司的AT89S52芯片,单击“确定”按钮。
二新建并添加源程序文件
uVision2的集成环境允许编辑汇编语言和C语言程序的源程序,单击File菜单下的NEW…子菜单,可以创建元程序,uVision2具有高亮度显示关键字功能,便于语法检查,如图5-5所示。
创建源程序文件后,就可以把该文件添加到项目中去,在项目管理口中右击SourceGroup1文件组,出现快捷菜单,选中AddFilestoGroup‘SourceGroup1’,如图2-6所示,然后选择相应的汇编语言或C语言源程序。
图2-4选择芯片对话框
图2-5源程序编辑窗口
图2-6添加源程序文件
三参数设置
为了使编译以后能够输出有效的文件,或是为了调试,以及设定于目标硬件相关的芯片部的参数,uVision2需要进行必要的参数设置。
如图2-7所示,用鼠标右击项目管理窗口中的“Target1”,选择OptionforTarget‘Target1’;或是单击Project菜单,选择OptionsforTarget‘Target1’子菜单。
图2-7设置编译参数
然后弹出选项卡,如图2-8(a)、2-8(b)所示,设置晶振频率、输出HEX文件。
图2-8(a) 设置晶振频率
图2-8(b) 输出HEX文件
参数设置中选项卡的意义如表2-1所示。
表2-1选项卡的意义
选项
意义
Device
选择CPU型号
Target
设置应用程序所使用的硬件环境(晶振频率、存储容量)
Output
定义输出文件,并允许运行便以后的用户文件
Listing
指定所有的列表文件所包含的容(Symbol、include等)
C51
C语言编译工具的配置
A51
汇编语言编译工具的配置
BL51Locate
定义存储段的类别和段
BL51Misc
警告等一些连接的设置
Debug
调试的一些设置
Utilities
定义Flash的一些配置
四编译
在经过参数设置后,可以是用编译器对源程序进行编译。
单击工具按钮或,也可以单击Project菜单下的Buildtarget或Rebuildalltargetfiles子菜单,如图2-9所示。
图2-9编译源程序
当编译的程序有语法错误时,uVision2会在输出窗口(编译信息)中显示出来。
可以双击某错误信息,uVision2会打开编辑窗口,并将光标自动移到该错误语句的位置上,从而可以方便的进行编译。
若编译通过,说明没有语法错误,编译器生成若干目标文件,包括HEX文件,但是此时还不能证明程序的功能就一定正确,所以接下来需进行仿真调试。
2.3CPU的仿真调试
在编译连接完成之后,就可以使用uVision2的调试器进行调试。
uVision2的调试器提供了“纯软件”的调试。
该调试能够仿真51系列产品的绝大多数功能而不需要任何硬件目标板,用户可以仿真各种外设,包括串口、定时器和并行I/O口等。
单击Debug菜单下的Start/StopDebugSession子菜单,出现如图2-10所示的界面。
图2-10uVision2调试器的界面
1:
调试按钮
可以进行单步、过程、全速、断点的调试。
2:
堆栈指针
只是当前堆栈的位置。
sp_max表示程序使用堆栈的最大位置,可以帮助读者了解对堆栈设置的合理性。
3:
运行时间
运行时间直观地反映了程序执行到当前指令时所耗费的时间,以秒为单位,它由指令执行周期和系统所使用的晶振频率决定。
因此在调试程序时,如果对时间的计算和仿真要求比较高,必须在Project菜单中的OptionforTarget‘Simulator’子菜单中的Target选项卡中对目标的晶振频率进行设置。
4:
当前程序指针
程序下一条即将执行的指令地址由PC表示,KEILuVision2IDE在源程序的窗口中用黄颜色箭头直观的表示在指令的左边,寄存器窗口中的PC的值显示指令的地址。
左边的绿线表示程序执行过的指令。
5:
存储器区
该区域可以显示部数据存储器(Ⅰ)、外部数据存储器(X)、以及程序存储器(C)多个存储空间,图3.12上显示的是部数据存储器(Ⅰ),可以看到在部数据RA的07H地址位置上有数据为02H,该区域就是工作寄存器的R7,然后再观察寄存器区R7的值为0x02。
在软件仿真中,可以通过菜单Peripheral打开单片机的I/O端口、定时器以及中断等外部功能部件的状态窗口中;可以查看当前的工作状态,或单击其中某些标志位,模拟中断申请和引脚状态的变化,以改变程序执行的走向,完全实现了“纯软件”的仿真。
3通信系统的硬件设计
3.1通信系统的开发硬件设计
通信系统框图如图3-1所示。
3-1通信系统框图
RS-232是EIA(ElectronicsIndustriesAssociation)电平.信号电平采用负逻辑,逻辑"1"=一12V,逻辑"0"=+12V。
这与单片机的TTL信号电平不兼容,所以RS232C与89C51单片机的串口RXD(串行接收口)和TXD(串行发送口)不能直接连接,需要跨接一个转换器在RS232C与TTL电路之间进行电平转换。
市场上电平转换的芯片很多,如早期广泛使用MCl488和MCl489,MC1488是接收TTL电平.输出RS232C电平.MC1489是接收RS232C电平,输出TTL电平,该电平转换接口的不便之处是需要±12V工作电压,并且功耗较大.不适用于低功耗的系统。
所以系统利用了MAXIM公司生产的MAX232实现2种电平之间的转换.其主要优点有:
芯片部有一个电压转换器,可以把输入的+5V工作电压转换为RS232C接口所需的±l2V电压;同时可以实现2路2种电平的双向转换.在该系统中可代替2片MCl488和2片MCl489,外接1个5V的电源,而不需像MCl488和MCl489那样外接±12V电源,所以电路简单,提高性能。
计算机发给单片机的数据在LCD显示器上显示。
单片机发给计算机的数据在通信窗口中显示。
4字符型液晶显示器LCD1602
4.1标准字符型液晶显示器LCD接口
LCD1602字符型液晶显示器采用与日立公司的HD44780兼容的LCD控制器构成的2*16字符型液晶显示模块,是专用于显示数字、字母、符号,字符型LCD液晶显示模块对外提供统一的接口标准。
字符型液晶显示模块接口引脚定义如表4-1所示。
表4-1字符型液晶显示模块接口引脚定义
引脚编号
引脚名称
引脚功能
14~7
D7~D0
数据线
6
E
片选信号,写数据控制,下降沿触发
5
R/W
读/写方向控制信号,低电平为写入,高电平为读出
4
RS
寄存器选择信号:
RS=0:
指令寄存器写入;忙标志读取;地址寄存器读取
RS=1:
数据寄存器读/写
3
V0
驱动电压调节
2
VDD
+5V
1
VSS
地线
15
V--
背光电压负端(GND)
16
V+
背光电压正端(+5V)
HD44780芯片中包含显示数据存储器(DDRAM)、字符存储器(CGRAM、CGROM)、指令寄存器、数据寄存器、地址寄存器、地址计数器,,以及液晶行列扫描的驱动电路。
4.1.1显示数据存储器(DDRAM)
LCD控制器的指令系统规定,在发送待显示字符代码的指令之前,先要送DDRAM的地址,实际上是待显示的字符显示位置。
若LCD为双行字符显示,每行40个显示位置,第一行地址为00H~27H;第二行地址为40H~67H。
双行显示的DDRAM地址与显示位置的对应关系如表4-2所示:
表4-2双行显示的DDRAM地址与显示位置的对应关系
显示位置
1
2
3
4
5
6
7
……
39
40
DDRAM
Line1
00H
01H
02H
03H
04H
05H
06H
……
26H
27H
地址
Line2
40H
41H
42H
43H
44H
45H
46H
……
66H
67H
4.1.2字符存储器(CGRAM、CGROM)
字符存储器有随机存储器(CGRAM)和只读存储器(CGROM)组成,CGROM中固化了192个5×7点阵的字符字型编码(包含128个ASCII码),供用户显示使用。
如果要显示192个以外的字符,可以在CGRAM中自定义16个自设定的字符。
4.1.3LCD显示模块的控制指令
字符型液晶显示模块提供了统一的接口,同时提供了统一的控制命令格式,如表4-3所示。
表4-3LCD命令一览表
命令名称
控制信号
控制代码
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
清屏
0
0
0
0
0
0
0
0
0
1
光标返回
0
0
0
0
0
0
0
0
1
X
设置输入方式
0
0
0
0
0
0
0
1
I/D
S
显示开关控制
0
0
0
0
0
0
1
D
C
B
光标或显示屏移动
0
0
0
0
0
1
S/C
R/L
X
X
工作方式设置
0
0
0
0
1
DL
N
F
X
X
设置CGRAM地址
0
0
0
1
A5
A4
A3
A2
A1
A0
设置DDRAM地址
0
0
1
A6
A5
A4
A3
A2
A1
A0
读忙标志和地址
0
1
BF
A6
A5
A4
A3
A2
A1
A0
写数据
1
0
数据
读数据
1
1
数据
HD44780的数据线可以使用8位方式(D7~D0),也可以使用4位方式(D4~D0),由工作方式设置命令中的“DL”(D4)位决定。
使用4位方式时,写入(读取)数据分两次完成,先写入(读取)数据的高4位,接着写入(读取)数据的低4位。
下面给出LCD控制命令的功能解释。
清屏显示命令:
清显示屏,光标复位到地址00H位置
表4-4清屏显示命令
D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
0
0
0
0
1
光标复位命令:
表4-5光标复位命令
D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
0
0
0
1
X
读/写方式下的光标和显示模式设置命令:
表4-6读/写方式下的光标和显示模式设置命令
D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
0
0
1
I/D
S
I/D:
表示地址计数器(AC)的变化方向,即光标移动的方向。
I/D=1:
AC自动加1,光标右移一个字符。
I/D=0:
AC自动减1,光标左移一个字符。
S:
显示屏上画面向左或向右全部移动一个字符位。
S=1,I/D=1:
当写一个字符时,整屏显示左移。
S=1,I/D=0:
当写一个字符时,整屏显示右移。
显示开关控制命令:
表4-7显示开关控制命令
D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
0
1
D
C
B
D:
当D=0时,显示关闭,DDRAM中数据保持不变。
当D=1时,显示DDRAM中的数据。
C:
当C=1时,显示光标;C=0时,不显示光标。
B:
当B=1时,光标所在字符闪烁;B=0时,光标不显示。
光标或显示屏移动命令:
表4-8光标或显示屏移动命令
D7
D6
D5
D4
D3
D2
D1
D0
0
0
0
1
S/C
R/L
X
X
具体含义如表4-9:
表4-9光标命令的具体含义
S/C
R/L
0
0
光标左移,地址计数器减1
0
1
光标右移,地址计数器加1
1
0
显示屏左移,光标跟随显示屏移动
1
1
显示屏右移,光标跟随显示屏移动
工作方式设置命令:
表4-10工作方式设置命令
D7
D6
D5
D4
D3
D2
D1
D0
0
0
1
DL
N
F
X
X
DL=0:
数据线宽度为4位,DB7~DB4;DL=1:
数据线宽度为8位。
N=0:
显示1行;N=1:
显示2行;
F=0:
显示5×7点阵;F=1:
显示5×10点阵。
4.2单片机与LCD1602的硬件连接原理图
本设计选用AT89C52的P0口和P2口的P2.0、P2.1、P
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 pc 计算机 通信 系统 设计