单片机与PC机串口通信
本设计是根据我们所学习的单片机课程,按照大纲要求对我们进行的一次课程检验,是进行单片机课程训练的必要任务,也对我们掌握单片机应用有很大的帮助。掌握单片机技术是一门不可或缺的技术,对我们将来的工作以及生活和学习都有很密切的联系。近年来,随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。本单片机系统采用AT89S51控制,整个硬件系统由A/D、D/A转换、LED显示、键盘、串行通信等模块组成。本设计只完成了单片机部分的开发设计,没有设计外部的采集和控制电路。因为没有外部采集电路,所以不能完成具体的测量功能,要完成具体的测量功能(如测量压力、温度、湿度)还要配上外部的各种传感器采集电路和相应的软件。若配上采集电路和相应的软件就能将测量结果用LED数码管十进制显示出来,其中包括了A/D、D/A转换,还可以用按键来控制,进行人机对话;系统中设置了5个按键,其中1个是复位键,其余的4个键,用程序来控制实现不同的功能。之所以没有设计外部采集电路是因为设计了外部采集电路系统的功能就比较单一,不方便系统功能的外部扩展。该系统还能实现单片机与PC机的串行通信和编程的下载、软件设计的时钟显示。
关键词:单片机AT89C51,串行通信,A/D转换,D/A转换,LED数码管显示
1、课程设计说明 (1)
1.1课程设计内容 (1)
1.2任务分析与设计思路 (1)
1.3总体方案设计 (1)
2、引言 (2)
2.1单片机与PC机串行通信研究背景 (2)
2.2单片机与PC机串行通信研究目的和意义 (2)
3、实验设备 (3)
3.1 Proteus (3)
3.1.1 Proteus软件简介 (3)
3.1.2 Proteus软件仿真 (4)
3.2 汇编软件keil c51 (4)
3.2.1 汇编软件 (4)
3.2.2汇编编程 (4)
4、相关参考程序内容 (4)
4.1资料转移指令 (4)
4.2算术指令 (5)
4.3逻辑指令 (5)
4.4控制转移类指令 (6)
4.5位变量指令 (6)
5、相关硬件内容 (7)
5.1MCS-51 (7)
5.2Virtual Terminal(VT) (7)
5.3COMPIM器件 (8)
6、流程图 (8)
7、源程序 (10)
8、汇编结果 (14)
9、电路连接 (14)
10、小结 (15)
参考文献 (16)
附录 (17)
1、课程设计说明
1.1课程设计内容
运用所学单片机、模拟和数字电路等方面的知识,完成单片机与PC计算机的串口接口设计。此系统具有如下功能:
1)单片机可以从RS-232串口接收PC计算机来的一组4位10进数,并显示在4位LED数码管显示器上,波特率可选1200、2400、4800、
9600,采用奇偶校验。
2)设置一个按键,按下按键时停止接收PC计算机发送的信号,再次按下按键又继续接收。
1.2任务分析与设计思路
1)设计要求接收数据并显示,接收数据的波特率可选1200、2400、4800、9600,并采用奇偶校验。设计思路为使用89c51的串行接口来接收数据,波特率越高,数据传输速度越快,任务对传输速度未作要求,考虑到定时器T1的时间常数初值与相应波特率之间有误差,在选择单片机时钟频率为12M情况下,4800的误差较小,所以波特率选择4800。由于采用奇偶校验,所以串口工作方式选择3。
2)采用4位LED数码管对接收数据进行显示,从节约硬件的角度考虑,采用软件译码,并采用动态显示。
3)按键控制接收,通过INT0中断实现。
1.3总体方案设计
通过RS-232实现PC机与单片机的连接,由于需要电平转换,采用MAX232芯片,设计采用两块单片机,其中一块作添加校验位来用。单片机通过P0.0~P0.6(字形码),P2.0~P2.3(字位码)与LED数码管相连。按键接INT0脚。设计框图如下
2、引言
2.1单片机与PC机串行通信研究背景
近年来,随着科学技术的发展,PC机以其优越的性价比和丰富的软件资源成为计算机应用的主流机种。在工业控制中单片机得到广泛的应用,现代化集中管理需要对现场数据进行统计、分析、制表、打印、绘图、报警等,同时,又要求对现场装置进行实时控制,完成各种规定操作,达到集中管理的目的。由于单片机的计算能力有限,难以进行复杂的数据处理。因此在功能比较复杂的控制系统中,通常以PC机为上位机,单片机为下位机,由单片机完成数据的采集及对装置的控制,而由上位机完成各种复杂的数据处理及对单片机的控制,二者结合,使得单片机的应用已不仅仅局限于传统意义上的自动监测或控制,而形成了向以网络为核心的分布式多点系统发展的趋势。
2.2单片机与PC机串行通信研究目的和意义
现代信息网络技术的一个突出特点,就是使工业控制系统中的所有设备连接成网,从而在一个核心软件管理下工作,形成一个有机的整体。这种整体网络方式在现代工业控制系统具有传统独立控制系统所无法比拟的先进性,不仅能极大地提高工业设备的生产效率,还可以大大提高系统的安全性和可靠性。
单片机自诞生以来以其性能稳定、价格低廉、功能强大,在智能仪器、工业装备以及日用电子消费品中得到了广泛的应用。在单片机的输入输出控制中,除
直接接上小键盘和LCD显示屏等方法外,一般都通过串口和上位机PC进行通信。这样不仅能够实现远程控制,而且能够利用PC机强大的数据处理功能以及友好的控制界面。在一般的利用PC机对单片机进行控制的场合,都是采用Windows 作为上位机的平台,其优点是界面友好,编程和操作都比较容易。因此研究PC 机与单片机串行通信具有重要的现实及工业意义。
3、实验设备
Proteus 7 Professional软件及汇编软件keil c51
3.1 Proteus
3.1.1 Proteus软件简介
Proteus不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、
PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。
3.1.2 Proteus软件仿真
在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:*.HE X,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。
3.2 汇编软件keil c51
3.2.1 汇编软件
KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2 IDE可为它们提供单一而灵活的开发环境。
3.2.2汇编编程
(1)新建工程→保存工程
(2)新建文件→保存文件(按格式保存)
(3)为source group增加文件
(4)调整目标属性
(5)生成HEK文件以备proteus仿真
4、相关参考程序内容
4.1资料转移指令
MOV 移动
MOVC 程式记忆体移动
MOVX 外部RAM和扩展I/O口与累加器A的数据传送指令
PUSH 放入堆叠
POP 由堆叠取回
XCH 8位元交换
XCHD 低4位元交换
SWAP 高低4位元交换
4.2算术指令
ADD 两数相加
ADDC 两数相加再加C
SUBB 两数相减再减C
INC 加一指令
DEC 减一指令
MUL (MUL AB乘法指令仅此一条)相乘指令,所得的16位二进制数低8位存累加器A高8位存B
DIV (DIV AB 除法指令仅此一条)相除指令,所得商存A,余数存B
DA (DA A 只此一条指令)调整为十进数
4.3逻辑指令
ANL做AND(逻辑与)运算
ORL做OR(逻辑或)运算
XRL 做(逻辑异或)运算
CLR 清除为0
CPL 取反指令
RL 不带进位左环移
RLC 带进位左环移
RR 不带进位右环移
RRC 带进位右环移
4.4控制转移类指令
JC C=1时跳
JNC C=0时跳
JB 位元=1时跳
JNB 位元=0时跳
JBC 位元=1时跳且清除此位元
LCALL 长调用子程序
ACALL 绝对调用子程序
RET 由副程式返回
RETI 由中断副程式返回
AJMP 绝对转移
SJMP 相对转移
JMP @A+DPTR 散转,相对DPTR的间接转移
JZ A=0时跳
JNZA 0时跳
CJNE 二数比较,不相等时跳
DJNZ 减一,不等於0时跳
NOP 空操作
4.5位变量指令
SETB 设定为1
ORG 程序开始,规定程序的起始地址
END 程序结束
EQU 等值指令(先赋值后使用)例:SUM EQU 30H DB 定义字节指令
DW 定义字内容
DS 定义保留一定的存贮单元数目
BIT 位地址符号指令例:SAM BIT P1.0
RET 子程序返回指令
RETI 中断子程序返回指令
$ 本条指令地址
5、相关硬件内容
5.1MCS-51
80C51单片机属于MCS-51系列单片机,由Intel
公司开发,其结构是8048的延伸,改进了8048的缺
点,增加了如乘(MUL)、除(DIV)、减(SUBB)、比
较(PUSH)、16位数据指针、布尔代数运算等指令,
以及串行通信能力和5个中断源。采用40引脚双列
直插式DIP(Dual In Line Package),内有128个
RAM单元及4K的ROM。80C51有两个16位定时计数
器,两个外中断,两个定时计数中断,及一个串行中
断,并有4个8位并行输入口。80C51内部有时钟电
路,但需要石英晶体和微调电容外接,本系统中采用12MHz的晶振频率。由于80C51的系统性能满足系统数据采集及时间精度的要求,而且产品产量丰富来源广,应用也很成熟,故采用来作为控制核心。
5.2Virtual Terminal(VT)
虚拟终端(VT)是一种提供类似于Internet的Telnet
协议的远程终端仿真的国际标准化组织(ISO)协议。在远程
终端的用户,可以在远程计算机上运行应用程序,就象他们
是坐在这台计算机前面一样。虚拟终端是在个人电脑上虚拟的一个终端以及为此目的而写的软件。虚拟终端的目的是达到个人电脑及其用户能够与大型计算机的连接。一般来说需要连接的大型计算机是IBM的大型计算机或者所谓的超小型计算机(过去往往是迪吉多的VAX)。虚拟终端使
得个人电脑的用户可以直接使用他的个人电脑来与大型计算机联系,而不必使用专门的终端。通过虚拟终端的软件虚拟终端还可以扩展大型计算机的标准终端的功能,通过虚拟终端不但可以将个人电脑上的数据传递给大型计算机,而且还可以将大型计算机的数据传递给个人电脑,并在个人电脑上继续加工。一般大型计算机的终端是字母式的输入和输出接口,因此一个虚拟终端至少需要一个能够模拟这样的字母式(比如ASCII)输入和输出接口的能力。最常见的平台是图像式的用户表面。要使得新的、图像式的程序能够使用老的字母式的或者没有图像式输入和输出能力的程序也需要虚拟终端。现代的大型计算机也内部使用虚拟终端,这样它们可以向老的、需要终端的程序假装一个终端,而实际上它则将程序的显示转到显示卡上。比如Linux以及其它大多数基于个人电脑的类似Unix的操作系统假装有六至十个这样的“虚拟”的终端。
字母程序 <---> 虚拟终端 <---> 图像显示
5.3COMPIM器件
protues的解释:COM Port Physical Interface model
串口物理端口模型。在protues里面COMPIM可以调用实际
的串口和外部通信。比如台式机有个串口COM1,我在
protues里添加COMPIM后设置属性,就能在仿真里通过
COM1和外部实际的东西进行通信
6、流程图
软件部分包括按键、通信、显示等,按键采用INT0中断,通信涉及对单片机串口的编程,采用动态显示编程
7、源程序
ORG 0000H
LJMP 1000H
ORG 1000H
MOV 70H,#0 ;显示区70H~73H
MOV 71H,#0
MOV 72H,#0
MOV 73H,#0
MOV R0,#70H ;R0指向显示区
MOV R3,#11H ;R3存位控位
MOV TMOD,#20H ;选择定时器T1,方式2
MOV TH1,#0F3H ;选择波特率4800,计算初值0F3H
MOV TL1,#0F3H
SETB TR1 ;启动定时器
MOV SCON,#0D0H ;串口选择方式3,允许接收
MOV PCON,#80H ;SMOD=1
MOV R1,#60H ;R1指向接收区60H~63H
MOV R4,#04H ;R4存接收个数
SETB EA
SETB ES ;开串口中断
SETB IT0 ;INT0中断选负边沿触发
SETB EX0 ;开INT0中断
MOV A,R3
LD0:MOV P2,A
MOV A,@R0
ADD A,#15
MOVC A,@A+PC
MOV P0,A
ACALL DELAY
INC R0
MOV A,R3
RL A
MOV R3,A
CJNE R0,#74H,LD0
MOV R0,#70H
SJMP LD0 ;显示显示区的数
DB 40H, 4FH,24H,30H,19H,12H,02H,78H,00H ,18H
DELAY: ;1ms延时程序
MOV R7,#02H
DELAY1:MOV R6,#0FFH
DELAY2:DJNZ R6,DELAY2
DJNZ R7,DELAY1
RET
ORG 0023H ;串口终端服务程序
LJMP 2000H
ORG 2000H
RE:CLR RI ;清标志位
MOV A,SBUF
MOV R5,A
MOV 20H,#00H
MOV 21H,#00H
MOV C,P
MOV 00H,C
MOV C,RB8
MOV 08H,C
MOV A,20H
XRL A,21H
JNZ L3
MOV A,R5 ;奇偶校验
L5: CJNE A,#30H,L2
L2:JC L3
CJNE A,#3AH,L4
L4:JNC L3 ;判断接收数据是否在30H~39H 之间
ANL A,#0FH ;清接收数据高四位
MOV @R1,A ;送数据接收区
INC R1
L3:CJNE R1,#64H,L1 ;判断是否接受完4个数据MOV R1,#60H
MOV 70H,60H
MOV 71H,61H
MOV 72H,62H
MOV 73H,63H ;若接收完则接收数据送显示区L1:RETI
ORG 0003H ;INT0中断服务程序
LJMP 2500H
ORG 2500H
CPL REN ;允许接收位取反
MOV R1, #60H
RETI
END
8、汇编结果
9、电路连接仿真前
仿真后
10、小结
通过本次课程设计,我有对51单片机有了更进一步的了解,对51单片机的更能结构更记得熟悉了。课程设计是在原有的学科基础上所进行的更深层次的综合性较强的学习。在本次课程设计中,我们3个人分为一组,彼此合作,经过几天的努力,终于基本上完成了本次课程设计。
在本次课程设计中,我们的课程设计题目为:单片机与PC机的串口通信。刚一接触这个题目,我们觉得找不到具体的着手点。但在3个人的努力思考下,我们决定彼此分工,各自完成自己的任务。
这一学期我们学习了《单片机原理及应用》。但由于所学时间不长,外加书本上的内容相对简单,我不太清楚如何去利用从中所学的知识,很难将书本上的基本理论与实际的问题结合起来。但在这次单片机的课程设计中,我加深了对单片机原理及应用的认识,并结合自己学到的知识,掌握了根据硬件电路设计软件的方法,培养了自己的实际能力。这也为我今后的实际应用奠定了基础。
总之,本次课程设计我完成了自己的任务,达到了课程设计的目的,为小组设计的成功贡献了自己的一份力量,并从中受益匪浅。
11、结束语
首先,理论课的重要性。平时上理论课的时候总觉得理论课上的知识与实践总有很远的距离,不知道上理论课的重要性,所以在学的时候兴致缺缺,但在课程设计时,才发现根修房子最重要是打好地基一样,没有理论课所学知识的支撑设计根本无法完成。
其次,不刚愎自用。在做该课程设计过程中遇到困难的时候,不要忘记学习除了一个人独自琢磨外还应多与同学切磋,一个人学习容易走进死胡同,而且进入死胡同后会大大的打击做设计的积极性,这时候应与同学多交流,从一个新的角度去看待问题、分析问题、解决问题,会有耳目一新的感觉。再做起设计来事倍功半,最主要的是,从课程设计中学会了把课本上的理论知识实践化,还有良好的编程风格,注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。如果注释和代码不一致,那就更加糟糕。
参考文献
1).胡汉才.单片机原理及其接口技术.清华大学出版社,2004
2).吴飞青等.单片机原理与应用实践指导.机械工业出版社 2009.2 3).李建忠.单片机原理与应用(第二版).西安电子科技大学出版社
4).李朝青.单片机原理及接口技术(简明修订版).杭州:北京航天航空大学出版社,1998
5).李广弟.单片机基础[M].北京:北京航天航空大学出版社,1994
6).阎石.数字电子技术基础(第三版).北京:高等教育出版社,1989
7).廖常初.现场总线概述[J].电工技术,1999
8).周良权,傅恩锡,李世馨.模拟电子技术基础(第二版).北京:北京高等教育出版社,2001..12
9).李干林.《STAR ES598PCI试验仪微机原理实验指导书》[M].南京工
附录
附录A:元件清单如下:
C51单片机和电脑串口通信电路图
C51单片机和电脑串口通信电路图与源码 51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对我们来说已经足够使用了,电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。 串口通讯的硬件电路如上图所示 在制作电路前我们先来看看要用的MAX232,这里我们不去具体讨论它,只要知道它是TTL和RS232电平相互转换的芯片和基本的引脚接线功能就行了。通常我会用两个小功率晶体管加少量的电路去替换MAX232,可以省一点,效果也不错,下图就是MAX232的基本接线图。
按图7-3加上MAX232就可以了。这大热天的拿烙铁焊焊,还真的是热气迫人来呀:P串口座用DB9的母头,这样就可以用买来的PC串口延长线进行和电脑相连接,也可以直接接到电脑com口上。
为了能够在电脑端看到单片机发出的数据,我们必须借助一个WINDOWS软件进行观察,这里我们利用一个免费的电脑串口调试软件。本串口软件在本网站https://www.360docs.net/doc/cb17935625.html,可以找到 软件界面如上图,我们先要设置一下串口通讯的参数,将波特率调整为4800,勾选十六进制显示。串口选择为COM1,当然将网站提供的51单片机实验板的串口也要和电脑的COM1连接,将烧写有以下程序的单片机插入单片机实验板的万能插座中,并接通51单片机实验板的电源。
51单片机串口调试实验(C语言)
//以下程序都是在VC++6.0 上调试运行过的程序,没有错误,没有警告。 //单片机是STC89C52RC,但是在所有的51 52单片机上都是通用的。51只是一个学习的基础平台,你懂得。 //程序在关键的位置添加了注释。 /****************************************************************************** * * 实验名: 串口实验 * 使用的IO : P2 * 实验效果: 将接收到发送回电脑上面。 * 注意: ******************************************************************************* / #include
汇编语言实现串口通信(PC和单片机间)教学文案
8.用C语言或汇编语言实现串口通信(PC和单片机间) 上位机和下位机的主从工作方式为工业控制及自动控制系统所采用。由于PC 机分析能力强、处理速度更快及单片机使用灵活方便等特点,所以一般都将PC 机作为上位机,单片机作为下位机,二者通过RS-232或者RS-485接收、发送数据和传送指令。单片机可单独处理数据和控制任务,同时也将数据传送给PC机,由PC机对这些数据进行处理或显示 1 硬件电路的设计 MCS-51单片机有一个全双工的串行通讯口UART,利用其RXD和TXD与外界进行通信,其内部有2个物理上完全独立的接收、发送缓冲器SBUF,可同时发送和接收数据。所以单片机和PC机之间可以方便地进行串口通讯。单片机串口有3条引线:TXD(发送数据),RXD(接收数据)和GND(信号地)。因此在通信距离较短时可采用零MODEM方式,简单三连线结构。IBM-PC机有两个标准的RS-232串行口,其电平采用的是EIA电平,而MCS-51单片机的串行通信是由TXD(发送数据)和RXD(接收数据)来进行全双工通信的,它们的电平是TTL电平;为了PC机与MCS-51 机之间能可靠地进行串行通信,需要用电平转换芯片,可以采用MAXIM公司生产的专用芯片MAX232进行转换。电路如图1所示。硬件连接时,可从MAX232中的2路发送器和接收器中任选一路,只要注意发送与接收的引脚对应关系即可。接口电路如图3.5所示。
总体设计按照整体设计思路方案绘制原理图如下所示: 2 系统软件设计 软件设计分上位机软件设计和下位机软件设计。这两部分虽然在不同的机器上编写和运行,但它们要做的工作是对应的:一个发送,另一个接收。为了保证数据通信的可靠性,要制定通信协议,然后各自根据协议分别编制程序。现约定通信协议如下:PC机和单片机都可以发送和接收。上位机和下位机均采用查询方式发送控字符和数据、中断方式接收控制字符和数据。采用RS-232串口异步通信, 1上位PC机与下位单片机异步串行通信的通信协议
实验单片机与PC机串口通信
实验单片机与PC机串口通信(C51编程)实验 要求: 1、掌握串行口的控制与状态寄存器SCON 2、掌握特殊功能寄存器PCON 3、掌握串行口的工作方式及其设置 4、掌握串行口的波特率(bondrate)选择 任务: 1、实现PC机发送一个字符给单片机,单片机接收到后即在个位、十位数码管上进行显示,同时将其回发给PC机。要求:单片机收到PC机发来的信号后用串口中断方式处理,而单片机回发给PC机时用查询方式。 采用软件仿真的方式完成,用串口调试助手和KEIL C,或串口调试助手和PROTEUS分别仿真。 需要用到以下软件:KEIL,VSPDXP5(虚拟串口软件),串口调试助手,Proteus。 (1)虚拟串口软件、串口调试助手和KEIL C的联调 首先在KEIL里编译写好的程序。
打开VSPD,界面如下图所示:(注明:这个软件用来进行串口的虚拟实现。在其网站上可以下载,但使用期为2周)。 左边栏最上面的是电脑自带的物理串口。点右边的addpair,可以添加成对的串口。一对串口已经虚拟互联了,如果添加的是COM3、COM4,用COM3发送数据,COM4就可以接收数据,反过来也可以。 接下来的一步很关键。把KEIL和虚拟出来的串口绑定。现在把COM3和KEIL绑定。在KEIL中进入DEBUG模式。在最下面的COMMAND命令行,输入 modecom39600,0,8,1 %分别设置com3的波特率、奇偶校验 位、数据位、停止位 assigncom3
(以上参数设置注意要和所编程序中设置一致!) 打开串口调试助手 可以看到虚拟出来的串口COM3、COM4,选择COM4,设置为波特率9600,无校验位、8位数据位,1位停止位(和COM3、程序里的设置一样)。打开COM4。 现在就可以开始调试串口发送接收程序了。可以通过KEIL发送数据,在串口调试助手中就可以显示出来。也可以通过串口调试助手发送数据,在KEIL中接收。 实验实现PC机发送一个字符给单片机,单片机接收到后将其回发给PC机。在调试助手上(模拟PC)发送数据,单片机收到后将收到的结果回送到调试助手上。 2、以下在Proteus和串口调试助手实现的结果: 将编译好的HEX程序加载到Proteus中,注意这里需要加上串口模块,用来进行串行通信参数的设置。 点击串口,可以对串口进行设置: 用串口调试助手发送数据,即可看到仿真结果。 实验参考程序源文件在exp2-comm文件夹中。
51单片机与PC串口通讯
目录 第1章需求分析 ............................................................................................................................ - 1 - 1.1课题名称 (1) 1.2任务 (1) 1.3要求 (1) 1.4设计思想 (1) 1.5课程设计环境 (1) 1.6设备运行环境 (2) 1.7我在本实验中完成的任务 (2) 第2章概要设计 ............................................................................................................................ - 2 - 2.1程序流程图 (2) 2.2设计方法及原理 (3) 第3章详细设计 ............................................................................................................................ - 3 - 3.1电路原理 (3) 3.1.1STC89C52芯片 ............................................................................................................. - 3 -3.2串口通信协议 (4) 3.3程序设计 (5) 3.3.1主程序模块 .................................................................................................................... - 5 - 3.3.2串口通讯模块 ................................................................................................................ - 6 - 3.3.3控制部分文件 ................................................................................................................ - 8 - 3.3.4公共部分模块 .............................................................................................................. - 11 -3.4电路搭建 (12) 3.4.1电路原理图 .................................................................................................................. - 12 -第4章上位机关键代码分析 ...................................................................................................... - 12 - 4.1打开串口操作 (12) 4.2后台线程处理串口程序 (15) 4.3程序运行界面 (18) 第5章课程设计总结与体会 ...................................................................................................... - 19 -第6章致谢 .................................................................................................................................. - 19 -参考文献........................................................................................................................................... - 19 -
PC机串口与多个单片机红外无线通信的实现
《工业控制计算机》!""#年$%卷第%期&’机串口与多个单片机红外无线通信的实现 周文举山东枣庄师专计算机系 (!%%$(")&’机与一台或多台单片机的通信系统中的数据通讯一般 采用的是串行通信方式。串行通信可采用有线与无线两种方式,作者根据单片机串行通信原理、脉冲编码调制)&’*+技术和红外无线通信技术,开发设计了单片机编解码红外无线通信接口。用该接口构成的多机通信系统,由于采用红外线为传输介质,而不是电缆线和电磁波,所以特别适用于那些不适合或不方便架设电缆线及电磁干扰较强的工作环境。本文就利用红外技术实现&’机与多台单片机无线串行通信的实现作一介绍。 !多机通信原理 在多机数据通信系统中,&’机与单片机之间的数据通信采 用一对多的主从模式,利用波长为,#"!-的远红外波通信。其原理示意图如图$。主机为&’机,从机选择*’./0$系列单片机,在&’机上用12345675328(9"编制一个主程序,负责发送从机地址、控制命令和从站之间的信息传输及调度,从站则负责收集现场信息,进行一定的数据处理,根据主站的要求返回数据,并执行主站发出的命令。主站&’机与从站之间的信息交换是通过*.’:--控件来实现。在采用主从式多机串行通信系统中,从机不主动发送命令或数据,一切都由主机控制。并且在一个多机通信系统中,只有一台&’机作为主机,各从机之间不能直接相互通讯,即使有信息交换也必须通过主机转发。由于发送和接收共用同一物理信道因此在任意时刻只允许一台从机处于发送状态,其余的从机不能发送。只有被主机呼叫的从机才能占用总线, 对主机做出应答。 图$&’机与一单片机串行通信 每台从机均分配有一个唯一的从机地址,主机与从机通信时,主机先呼叫某从机地址,唤醒被叫从机后,主、从两机之间进行数据交换,而未被呼叫的从机则继续进行各自的工作。主机发送的信息可以传到多个从机或指定的从机,各从机发送的信息只能被主机接收。单片机通过对多机通信控制位.*!进行置位和复位来控制正确接收地址和数据信号,在返回数据时通过设 ;7<为"或$来区别返回的是数据还是地址。只有正确地完成 了接收和发送任务,才能触发有效的;=,>=信号,进而完成下一步的通信。接收时,检测>=是否建立起来,当>=为高电平,表示接收完毕。发送时,检测;=是否建立起来,当;=为高电平时说明 发送已经完成。而在主机上也要设立相应的多机通信机制,这一任务是通过改变*.’:--控件的.?@@2AB 属性中的奇偶校验位来实现的。发送和接收地址时置奇偶校验位为*,则主机在发送地址过程中发送的第,位;7<为$,而在接收地址时,只有接收到的第,位>7<为$时才能引起’:--CD?A@属性的变化,从而触发EA’:--事件;发送和接收数据时,置该位为.。则主机在发送数据过程中发送的第,位;7<为",而在接收数据时,只有接收到的第,位>7<为"时才能引起’:--CD?A@属性的变化,从而触发EA’:--事件。 在本设计中主机微机发送字符与接受字符均采用查询方式,发送前先读取通信或状态寄存器,查询发送保持寄存器空否?接收前先读取通信或状态寄存器,查询一帧数据收完否?从机采用中断方式,即接收到地址帧后就进行串行口中断申请,’&F 响应后, 进入中断服务程序。在通信协议中规定:"单片机以方式G 进行通信,一帧数据的第,位为“$”,代表地址帧,为“"”,代表数据帧。#设定通信波特率为,(""HI3;$地址帧为"$JKLLJ 代表!00台从机地址。%""J 是以地址帧形式发送的一条对所有从机起作用的控制命令,命令各从机恢复.*!M$,等待接收状态。 为了实现多机通信,所有发射电路的振荡频率和所有的接收电路的振荡频率都必须调整一致,为保证正常通信,防止自己发自己接,数据传送方向必须为半双工传送,收发器在发射时,必须屏蔽自己的接收中断,发射结束后再开放中断。 多机通信过程为: $)主机*.’:--的属性.?@@2AB3M “,("",*,<,$”,所有从机的.*!M$,处于地址帧接收状态。 !) 主机发送一帧地址信息,其中包含<位地址,第,位为“$”,与所需的从机进行联络。 G ) 从机接收到地址信息后,各自将其与自己的地址相比较;对于地址相符的从机使>=M",;7 单片机实验报告 实验名称:串行通信实验 姓名:高知明 学号:110404320 班级:通信3 实验时间:2014-6-11 南京理工大学紫金学院电光系 一、实验目的(四号+黑体) 1、理解单片机串行口的工作原理; 2、学习使用单片机的TXD\RXD口; 3、了解MAX232芯片的作用; 二、实验原理 MCS-51单片机内部集成有一个UART,用于全双工方式的串行通信,可以发送、接收数据。他有两个相互独立的接收、发送缓冲器,这两个缓冲器同名(SBUF),共用一个地址号(99H)。发送缓冲器只能写入,不能读出,接受缓冲器只能读出,不能写入。要发送的字节数据直接写入发送缓冲器。SBUF=a;当UART接收到数据后,CPU从接收缓冲器中读取数据,a=SBUF;串行口内部有两个移位寄存器,一个用于串行发送,一个用于串行接收。定时器T1作为波特率发生器,波特率发生器的溢出信号昨接受或发送移位寄存器的位移时钟。TI与RI分别为发送完数据的中断标志,用来想CPU发中断请求。 三、实验内容 1、发送信号 1)C51程序: #include单片机串行通信实验