VB 环境下PC 机与单片机之间实现串行通讯的软硬件方案Word格式文档下载.docx
- 文档编号:18890506
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:15
- 大小:101.06KB
VB 环境下PC 机与单片机之间实现串行通讯的软硬件方案Word格式文档下载.docx
《VB 环境下PC 机与单片机之间实现串行通讯的软硬件方案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《VB 环境下PC 机与单片机之间实现串行通讯的软硬件方案Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
为了实现PC机与单片机之间的串行通信,我们首先要清楚了解整个系统所采用的原理图。
原理图就象一根红线贯穿于整个系统设计,通过此图我们就能很清楚的看到系统所涉及的内容,然后鉴于此,我们将在以后的章节中依次对所牵涉的内容作详细的论述。
下面对原理图作一点说明:
从MAX232芯片中的两路发送接收中任选一路作为接口,要注意其发送与接收引脚对应,否则可能对器件或计算机串口造成永久性损坏。
如选他T1IN接单片机的发送端TXD,则PC机、的RS—232的接收端RD一定要对应接T1OUT引脚。
同时,R1OUT接单片机的接受端RXD引脚,则PC机的RS—232的发送端TD一定要对应接R1IN引脚。
上图为采用MAX232芯片接口的PC机与51单片机串行通信接口原理图
2.1AT89S51单片机
2.1.1AT89S51单片机简介
AT89S51为ATMEL所生产的可电气烧录清洗的8051相容单芯片,是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:
40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
2.1.2
AT89S51单片机的功能
AT89S51主要功能列举如下:
1)为一般控制应用的8位单芯片 2)晶片内部具有时钟振荡器
3)内部程式存储器(ROM)为4KB 4)内部数据存储器(RAM)为128B
5)外部程序存储器可扩充至64KB 6)外部数据存储器可扩充至64KB
7)32条双向输入输出线,且每条均可以单独做I/O的控制
8)5个中断向量源 9)2组独立的16位定时器
10)1个全多工串行通信端口 11)8751及8752单芯片具有数据保密的功能
12)单芯片提供位逻辑运算指令
2.1.3AT89S51各引脚功能介绍:
VCC:
AT89S51电源正端输入,接+5V。
VSS:
电源地端。
XTAL1:
单芯片系统时钟的反相放大器输入端。
XTAL2:
系统时钟的反相放大器输出端。
RESET:
AT89S51的重置引脚,高电平动作。
EA/Vpp:
存取外部程序代码,低电平动作。
ALE/PROG:
地址锁存器启用信号。
PSEN:
程序储存启用,通常这支脚是接到EPROM的OE脚。
PORT0(P0.0~P0.7):
端口0是一个8位宽的开路汲极(OpenDrain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。
其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当作I/O用时可以推动8个LS的TTL负载。
如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0~A7)及数据总线(D0~D7)。
PORT2(P2.0~P2.7):
端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。
P2除了当作一般I/O端口使用外,若是在AT89S51扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8~A15,这个时候P2便不能当作I/O来使用了。
PORT1(P1.0~P1.7):
端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LSTTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。
PORT3(P3.0~P3.7):
端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。
其引脚分配如下:
P3.0:
RXD,串行通信输入。
P3.1:
TXD,串行通信输出。
P3.2:
INT0,外部中断0输入。
P3.3:
INT1,外部中断1输入。
P3.4:
T0,计时计数器0输入。
P3.5:
T1,计时计数器1输入。
P3.6:
WR:
外部数据存储器的写入信号。
P3.7:
RD,外部数据存储器的读取信号。
本系统所采用的AT89S51芯片如下图所示:
2.1.4AT89S51ISP
ISP为在线编程接口。
ISP在线编程接口为89S51单片机提供了方便的在线编程方法,使用时将ISP下载线一端与PC并口相连接,一端与ISP接口相连,使用ISP下载软件即可实现MCU在线编程。
下载线插接说明:
两排十针下载口,板图上都有一个小方框,为1号引角;
下载线的凸口为正方向,凸口的右侧边的第一个插孔为1号引角,这一点一定要切记,不然的话程序下载不进去。
本系统中所用AT89S51ISP原理图如下示:
AT89S51ISP
2.2串行通讯
2.2.1串行通讯的概念
串行通讯:
一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。
串行通讯的特点是:
数据位传送,传送按位顺序进行,最少只需一根传输线即可完成,成本低但传送速度慢。
串行通讯的距离可以从几米到几千米。
分类:
根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。
1引言
2、
C/T——功能选择位。
C/T=1时,选择计数功能;
C/T=0时,选择定时功能。
T0、T1的计数、定时功能是通过TMOD中的位来选择的。
3、
M1、M0——工作方式选择位。
由于有M1和M0两位,可以有四种工作方式,如下表所示。
定时器/计数器的工作方式
M1
M0
工作方式
计数器配置
0
0
方式0
13位计数器
1
方式1
16位计数器
1
方式2
自动重载的8位计数器
方式3
T0分为两个8位计数器,T1停止计数
3串行数据通信程序设计
3.1通信协议
本系统串行通信采用异步通信方式。
协议如下:
1.一帧数据由1位起始位、8位数据位、无奇偶校验位、1位停止位共10位组成。
2.波特率设为9600bps。
单片机串行口按方式1工作,波特率由定时器T1控制,PC机串口波特率通过VB通讯控件的Settings属性设置,为保证数据传送的准确性,两者的波特率必须一致。
本次通讯中,我们以一个测控系统的上位机和下位机之间的通信为背景,给出单片机部分和VB环境下的通信程序实例,系统中单片机负责数据采集、处理和控制,上位机进行现场可视化检测,通信协议采用异步串行通信方式,通过RS232的RTS信号进行收发转换,传输数据采用二进制数据,上位机与下位机之间采用主从式通讯。
3.2下位机(单片机)串行通信及程序设计
平台介绍及编程方法
汇编语言
汇编语言是针对一类(甚至几类)计算机,抽象出来的一种符号语言并把这些符号加以统一规定,使得使用同类计算机的人都了解这些符号的意义,这样,使得用汇编语言编写的程序可以在这一类型的任何一台计算机上使用。
这就有了极大的灵活性,当然不同类型的计算机的汇编语言也不同。
它们都必须由生产厂家提供的汇编语言来编写。
另外.汇编语言还增加了宏指令的功能。
汇编语言是计算机卫程控制中最常用的语言。
汇编语言的主要优点就是可以直接控制计算机硬件,可以编写在时间和空间两方面更有效的程序。
这些优点使得汇编语言在程序设计中占有重要的地位。
是不可取代的。
但汇编语言的缺点也是明显的,它与处理器密切相关,要求程序员熟悉计算机硬件系统,考虑许多细节问题,所以程序繁琐,调试、维护、交流和移植困难。
因此,有时可以采用高级语言和汇编语言混合编程的方怯,互相取长补短,更好地解决实际间题。
汇编语言生要应用场合有以下几种:
l)程序要具有较短的运行时问,或者只能占用较小的存储客量。
例如操作系统的核心程序段,实时控制系统的软件等。
2)程序与计算机硬件密切相关,程序要直接控制硬件。
例如to接口电路的初始化程序段,外部设备的底层驱动程序等。
3)大型软件需要提高性能、优化处理的部分。
例如计算机系统频繁调用的子程序、动态链接库等。
4)没有适合的高级语言的时候。
例如开发最新的处理器程序时。
伟福软件介绍:
伟福系列仿真器伟福仿真品种多、功能强,特点如下:
1)主机+POD组合,通过更换POD,可以对各种CPU进行仿真。
2)双平台:
DOS版本,WINDOWS版本。
其中WINDOWS版本功能强大。
3)双工作模式:
a.软件模拟仿真(不要仿真器也能模拟仿真)。
硬件仿真。
4)双CPU结构,100%不占用户资源。
5)双集成环境:
编辑、编译、下载、调试全部集中在一个环境下。
多种仿真器,多类CPU仿真全部集成在一个环境下。
可仿真51系列,196系列,PIC系列,飞利蒲公司的552、LPC764、DALLAS320,华邦438等51增强型CPU。
为了跟上形势,现在很多工程师需要面对和掌握不同和项目管理器、编辑器、编译器。
伟福WINDOWS调试软件为您提供了一个全集成环境,统一的界面,包含一个项目管理器,一个功能强大的编辑器,汇编Make、Build和调试工具并提供一个与第三方编译器的接口。
6)强大的逻辑分析仪综合调试功能:
随着科学技术的发展,单片机通讯方面的运用越来越多。
有了逻辑仪,用它可以分别或者同时对发送方、接收方的输入或者输出波形进行记录、存储、对比、测量等各种直观的分析,可以将实际输出通讯报文的波形与源程序相比较,可立即发现问题所在。
从而极大地方便了调试。
7)强大的追踪器功能:
追踪功能以总线周期为单位,实时记录仿真过程中CPU发生的总线事件,其触发条件方式同逻辑分析仪。
追踪窗口在仿真停止时可收集显示追踪的CPU指令记忆信息,可以以总线反汇编码模式、源程序模式对应显示追踪结果。
屏幕窗口显示波形图最多追踪记忆指令32K并通过仿真器的断点、单步、全速运行或各种条件组合断点来完成追踪功能。
总线跟踪可以跟踪程序的运行轨迹。
可以统计软件运行时间。
编程方法
本系统中传输协议为9600,8,N,1,即波特率为9600b/s,传送8个数据位。
没有校验位,一个停止位。
在PC机中也设置为相同的协议。
1)控制寄存器SCON的设置为:
SM0、SM1为0、1,即为串行工作方式1,REN为1,即允许接收。
这样SCON中的值是0X50H,(使用汇编语言是MOVSCON,#50H。
)2)TMOD寄存器的设置为:
使用定时器1。
M0=0,M1=1,工作于方式2,自动重新载入计数值。
TMOD=0X20H。
(使用汇编语言是MOVTMOD,#20H)3)波特率的设置:
本系统上的工作时钟为11.0592MHz,波特率为9600b/s,对TH1的重载入计数器值由下式计算可得:
TH1=256-11059200/384*9600=253=FDHTH1=0XFDH(使用汇编语言是MOVTH1,#0FDH)。
串口初始化
流程图如右:
接收程序:
发送数据
MAIN:
MOV
TMOD,#20H;
MOV
TH1,#0FDH;
TL1,#0FDH;
SETB
TR1;
SCON,#50H;
LOOP:
JBC
RI,DISP
SJMP
LOOP
DISP:
A,SBUF
DPTR,#TAB
MOVC
A,@A+DPTR
P2,A
TAB:
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
END
发送程序:
ORG0000H
START:
TMOD,#20H;
TL1,#0FDH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 环境下PC 机与单片机之间实现串行通讯的软硬件方案 环境 PC 单片机 之间 实现 串行 通讯 软硬件 方案