单片机串口通信

上传人:工**** 文档编号:490098560 上传时间:2023-07-28 格式:DOCX 页数:10 大小:188.45KB
返回 下载 相关 举报
单片机串口通信_第1页
第1页 / 共10页
单片机串口通信_第2页
第2页 / 共10页
单片机串口通信_第3页
第3页 / 共10页
单片机串口通信_第4页
第4页 / 共10页
单片机串口通信_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《单片机串口通信》由会员分享,可在线阅读,更多相关《单片机串口通信(10页珍藏版)》请在金锄头文库上搜索。

1、单片机串口通信串口通讯对单片机而言意义重大,不但可以实现将 单片机的数据传输到电脑端,而且也能实现电脑对单片 机的控制,比如你可以把写入单片机的数据码显示在电 脑上,如可以使用一个按键,当按下它时使某一个字母 如:AA,通过单片机的串口将它发送到电脑上显示,起 到仿真器的某些功效,站长在开发数据采集设备时就是 通过串口来检查数据正确与否的。MCS-51 内部含有一个可编程全双工串行通信接口, 具有UART的全部功能。该接口电路不仅能同时进行数据 的发送和接收,也可作为一个同步移位寄存器使用。在进行异步通信时,数据的发送和接收分别在各自 的时钟(TCLK和RCLK)控制下进行的,但都必须与字符

2、位数的波特率保持一致。MCS-51串行口的发送和接收时 钟可由两种方式产生,一种是由主机频率 fosc 经分频后 产生,另一种方式是由内部定时器T1或T2的溢出率经 16 分频后提供。51 单片机有一个全双工的串行通讯口,所以单片机 和电脑之间可以方便地进行串口通讯。进行串行通讯时 要满足一定的条件,比如电脑的串口是RS232电平的, 而单片机的串口是 TTL 电平的,两者之间必须有一个电 平转换电路,我们采用了专用芯片MAX232进行转换,虽 然也可以用几个三极管进行模拟转换,但是还是用专用 芯片更简单可靠。我们采用了三线制连接串口,也就是 说和电脑的9针串口只连接其中的3根线:第5脚的GN

3、D、 第2脚的RXD、第3脚的TXD。这是最简单的连接方法, 但是对我们来说已经足够使用了,电路如下图所示, MAX232的第10脚和单片机的11脚连接,第9脚和单片 机的10脚连接,第15脚和单片机的20脚连接。本网站 的提供的实验板上已经装配好了全部硬件。串口通讯的硬件电路如上图所示为了能够在电脑端看到单片机发出的数据,我们必须借助一个WINDOWS软件进行观察单片机串口通信,这里我们利用一个免费的电脑串口调试软件。inljcidA-丄还松有逝捋丈岸530MML jTEDhttp : /r Qari ngwind. best. 163. com18M 二 | 无如 | 3 jd关闭串口岌送

4、文件-ta Status;; ccmi ofebed j isoq, n.s, i串口调试朋手 SCQmAssistaiit 2.:AFAJAfAFAFAIAfAFAFHAfAFkFAfAfAFAJAFAFAJAfAfAf AFATAFAFAFATAPAFAFATAFAFAFAFAFAFATXFAFATAPArAFAF- 粧妊般 AFAFAIAAFATAJ串口減特率 校验位 数据位 停止位,啸峰关闭程序 g讥BESET |肌|山 扌清空重埴|发送的字羽7数据 厂十丸进制娄逵 厂自动发燧阔期改变后重选) 自动发送周期;iooo 毫秒濡空接收区I pw 停止显示.7自动清空V十六进制显示 顾;罷示

5、数据|匣丽咗捧岌送文件.点击这里可以下载并运行这个串口调试软件这是一 个绿色的软件,无需安装,可以直接在当前位置运行这 个软件。软件界面如上图,我们先要设置一下串口通讯 的参数,将波特率调整为 4800,勾选十六进制显示。串 口选择为COM1,当然将网站提供的51单片机实验板的串 口也要和电脑的 COM1 连接,将烧写有以下程序的单片机 插入单片机实验板的万能插座中,并接通 51 单片机实验 板的电源,这时只要按下K1 一次,在串口调试助手软件 的接收区界面中就会增加一个“AF”字符,表示单片机 向电脑发送“AF”字符成功。串口实验的源程序如下所 示:;这是一个AT89C51单片机实验开发板向

6、PC机的串口 单向发送数据AF的演示程序;采用MAX232专用芯片作 RS232/TTL电平转换;通讯波特率为4800KBPS,只要按下 一次K1 (就是P3.6引脚变成低电平);就发送一个16进 制的 AF 字符ORG 0000HMOV SCON,#50H;设置成串口 1 方式 MOV TMOD,#20H;波特率发生器T1工作在模式2上MOV PCON,#80H;波特率翻倍为 2400x2=4800BPSMOV TH1,#0F3H; 预置初值(按照波特率2400BPS预置初值)MOV TL1,#0F3H; 预置初值(按照波特率2400BPS预置初值)SETB TR1;启动 定时器 T1; 以

7、上完成通讯初始化设置WRIT:JBP3.6,$; 判断 K1 是否按下, 如果没有按下就等 待ACALL DELAY10;延时10毫秒消触点抖动JB P36,WRIT; 去除干扰信号JNB P36,$;等待按键松开MOV A,#0AFH;将16进制的字符AF发送到串口去MOV SBUF,A; 将 AF 通过串口发送出去AJMP WRIT;10 毫秒延时子程序 DELAY10:MOV R4,#20D2:MOV R5,#248DJNZ R5,$DJNZ R4,D2RETEND单片机串口通信一、发送和接收的过程如下:串行口的发送过程由指令MOVSBUF, A启动,即CPU 由一条写发送缓冲器的指令把

8、数据(字符)写入串行口的 发送缓冲器SBUF (发)中,再由硬件电路自动在字符的 始、末加上起始位(低电平)、停止位(高电平)及其它 控制位(如奇偶位等),然后在移位脉冲 SHIFT 的控制下 低位在前,高位在后,从 TXD 端(方式0 除外)一位位地 向外发送。串行口的接收与否受制于允许接收位REN的状态, 当REN被软件置“1”后,允许接收器接收。接收端RXD 一位位地接收数据,直到收到一个完整的字符数据后, 控制电路进行最后一次移位,自动去掉启始位,使接收 中断标志RI置“1”,并向CPU申请中断。CPU响应中断, 用一条指令(MOVA,SBUF)把接收缓冲器SBUF (收)的 内容读入

9、累加器。TI和RI是由硬件置位的,但需要用软件复位。二、 相关的寄存器1 、SBUF 是两个在物理上独立的接收、发送缓冲器, 可同时发送、接收数据。两个缓冲器只用一个字节地址 99H,可通过指令对SBUF的读写来区别是对接收缓冲器 的操作还是对发送缓冲器的操作。串行口对外有两条独 立的收发信号线RXD (P3.0)、TXD (P31),因此可以 同时发送、接收数据,实现全双工。2、SCON 寄存器用来控制串行口的工作方式和状态, 可按位寻址,其字节地址为 98H。3、PCON中的SMOD用来控制波特率加倍。4、TMOD 设置定时器 1 的工作方式,用来产生波特率5、如果用到中断,则还需要用到中

10、断相关的寄存器 IE,IP 等三、四种工作方式:方式 0:同步移位寄存器方式,其波特率是固定为振荡频率 fosc 的 1/12。在这种工作方式下,发送和接收串行数据 都通过RXD(P3.0)进行,从TXD(P3.1)输出移位脉冲, 控制外部的移位寄存器移位。 1 帧信息为 8 位,没有起始 位,停止位。方式 1 :8位UART,1帧信息为10位,其中一位起始位“0”、 八位数据位(先低位后高位)和一个停止位“1”,波特 率可变,根据定时器 1 的溢出率计算。方式 2:9 位 UART ,1 帧信息为 11 位,其中一位起始位“0”、 八位数据位(先低位后高位),一位控制位(第九位)和 一个停止

11、位“1”。波特率为振荡频率的 1/64或1/32 方 式 3 :9位UART,帧信息为11位,其中一位起始位“0”、 八位数据位(先低位后高位),一位控制位(第九位)和 一个停止位“1”。波特率可变,根据定时器 1 的溢出率 计算。附加的第9位数据为SCON中的TB8的值,它由软件 置位或清零,可作为多机通信中地址/数据信息的标志位 也可作为数据的奇偶校验位。四、连接由于串口用的是TTL电平,和RS232电平不同,因此, 单片机和PC通信时需要进行电平转换,常用的IC是 MAX232,连接图如图所示,其中MAX232供电脚为+ 5V, 中间连接的电解电容取 50V 1UF。+1CWT1OLTT

12、1114,10R1Im.121389TTLCLIOS OUTPUTSnbtMOSINPUTS4O0k T2inC5生_ -10?GND - 丄1EMAX232内部框图+5VINPUrRS-232INPUTSRS-232OUTPUTSC1 +Vccy45VT04WJC1-VDLT聒E DOUBLfRCZ+r-ICfif TO -1CWy_C2-VOLTAGE Ihli/ERIER16敗址理Qj ph酬比ca Pi.NTi P3 4T0i P3.韶II P3 胖世E P3.7/RD岁fff ifiLETPRiSj vcc GFIDUBR1FHR1OLJTR2LNR2SWTTl IMT1QUTTEI

13、HT2GWTC24他JIQF片机和PC通信连接图即所谓的三线连接法。用 VC 来做个上位机软件,用单片机来做下位机显示 数据从 PC 机发送过来,经过单片机处理显示。首先你想把它学好,就一定要下苦功夫,因为这个不 是一下子就能学好的,要经过不断的实践努力。学习也有一段时间了,用的书是(Visual C/Turbo C 串口通信编程实践 龚建伟)但是发现自己可能毅力 不够,经常被一些困难所吓倒。碰到问题时不能够想方 设法去解决。可能是可以学习例子太少了,网上的资源 也不是很多。发现假如用 MSCOMM 控件来编的话,就是那个变量VARIANT,这个不好弄懂。学VC首先要有一定的C语言基 础,和 C 基础,可能是 C 还没学完,基础不扎实,导致 继续下去有点困难。先实现一个简单的功能吧,用 VC 做个界面,当按下 相应的键时,发送相应的数据到单片机中,然后将数据 送到 P0 口来显示。呵呵,一定要把那个变量给弄懂了,这样一切都好办 了在后面的学习中,我将把学习的心得写出来,与大家 交流交流有在学 VC 的朋友可以和我交流交流 ,大家一起进步

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号