基于单片机的串行通信小系统_第1页
基于单片机的串行通信小系统_第2页
基于单片机的串行通信小系统_第3页
基于单片机的串行通信小系统_第4页
基于单片机的串行通信小系统_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机与PC机之间的串口通信摘要:随着数据采集系统的广泛应用,通常由单片机构成的应用系统,如仪器仪表、智能设备 等,都需要与PC机之间交换数据,实现与PC机之间的通讯功能,以充分发挥 PC和单片机 之间的功能互补,资源共享的优势。本文使用RS 232接口芯片,以及如何利用此芯片实现单片机与PC机之间的通讯。51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是rs232电平,而单片机的串口是ttl电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用

2、专用芯片更简单可靠。PC机和单片机的串口通信系统由一根串口连接线把带有软件上位机的(PC机)和下位机(即单片机)连接起来进行,借用串口调试助手实现PC机和单片机的串口通信,并观 察调试结果。上位机软件使用串口调试工具,下位机软件是本人所编写的一个串口测试程序关键词:单片机,串口通信,虚拟,仿真目录一、方案 31.1串行通信基本概念 31.2同步串行通信方式31.3串行通信的制式 41.4程序原理框图5二、模块电路设计 52.1 RS-232与TTL电平的转换 原理 52.2 MAX232芯片实现电平转换 62.3 A/D转换电路的设计 72.4液晶显示电路的设计 8三、 系统总电路9四、系统的

3、软件设计 104.1程序流程图 104.2串口通信总程序 11五、 结果分析 15六、 小结 18一、方案选择1. 1串行通信方式基本概念:串行通信方式是将数据字节分成一位一位的形式在一条传输线上逐个地传输,此时只需 要一条传输线,外加一条公共地线和若干控制线号线。因为一次只能传输一位,所以对于一 个字节的数据,至少要分8位才能传送完毕。串行通信的必要过程是:发送时,要把并行数据编程串行数据发送到线路上去,接收时, 要把串行数据转化成并行数据,这样才能被计算机及其他设备处理。串行通信传输线少,长距离传输时候,成本低,且可以利用电话网等现成的设备,但数据的 传输控制比并行通信复杂。串行通信方式:

4、异步串行通信和同步串行通信。异步串行通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。 在单片机和单片机之间,单片机与计算机之间,通常采用这种通信方式。本文主要介绍同步 串行通信方式。1.2同步串行通信方式:同步通信时要建立发送方时钟对接收方适中的直接控制,使双方达到完全同步。此时, 传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间不留间隙,即保持位 同步的关系,也保持字符同步关系。发送方对接收方的同步可以通过外同步和自同步两种方法实现面向字符的同步格式如图:SYNSYNSOH标题STX数据块ETB/ETX块校验图2 面向字符的同步格式此时,传输的数据和控制信息

5、都必须由规定的字符集(如ASCII码)中的字符所组成。图2中帧头为1个或2个同步字符SYN ASCII码为16H)S0H为序始字符(ASCII码为01H), 表示标题的开始,标题中包含源地址、目标地址和路由指示等信息。STX文始字符(ASCII码为02H),表示传送数据的开始。数据块是传送的正文内容,由多个字符组成,数据块后面是 组终字符ETB( ASCII码为17H)或文终字符ETX (ASCII码为03H),然后是校验码。典型的 面向字符的同步规程如IBM的二进制同步规程BSC面向位的同步格式如图3所示。8位8位8位=0位16位8位01111110地址场控制场信息场校验场01111110图

6、3面向位的同步格式此时,将数据块看做数据流,并用序列 01111110作为开始和结束标志。为了避免在数据 流中出现序列01111110时引起的混乱,发送方总是在其发送的数据流中每出现5个连续的1就插入一个附加的0;接收方每检测到5个连续的1并且其后跟一个0时候就删除该0。典型的面向位的同步协议,如ISO的高级链路控制规程 HDLC和 IBM的同步数据链路控制规程SDLC面向位的同步通信的特点是以特定的位组合01111110作为帧的开始和结束标志,所传输的一帧数据可以是任意位。它传输的效率较高,但实现的硬件设备比异步通信复杂。1.3串行通信的制式:(1) 单工。单工是指数据传输仅能沿一个方向,不

7、能实现反向传输(2) 半双工。半双工是指数据传输可以两个方向,但需要分时进行(3) 全双工。全双工是数据可以同时进行双向传输。三中制式分别如图3、图4、图5:O发送器地线接收器S3单工形式图5全双工形式1.4程序原理框图串行通信电路设计2.1 RS-232电平与TTL电平的转换PC机默认的高低电平分别是-3V -15V和3V 15V,为RS-232电平。单片机默认的高 低电平为5V 0V,为TTL电平。分析图5,首先TTL电平TXD发送数据时,若发送低电平 0,这时Q3导通,PCRXD由空闲时的低电平变成高电平(如PC用中断接收的话会产生中断)满足条件。发送咼电平1时,TXD为咼电平,Q3截止

8、,由于PCRXD内部咼阻,而PCTXD 平时是-3 -15V,通过D1和R7将其拉低PCRXD至-3 -15V,此时计算机接收到的就是1。反过来,PC发送信号,由单片机来接收信号。当 PCTXD为低电平-3-15V时,Q4截止,单 片机端口的RXD被R9拉到5V高电平;当PCTXD变高时,Q4导通,RXD被Q4拉到低电 平,这样便实现了双向转换。这也便是MAX232的转换原理。2.2 MAX232芯片实现电平转换MAX232芯片是MAXIM公司生产的、包含两路接收器和驱动器的IC芯片,它的内部有 一个电源电压变换器,可以把输入的 +5V电源电压变换成为RS-232输出电平所需的+10V电 压。

9、所以采用此芯片接口的串行通信系统只需单一的 +5V电源就可以了。对于 有+12V电源的场合,其适应性更强,加之其价格适中,硬件接口简单,所以被广泛采用。MAX232芯片引脚结构和外围连接如图8(&)和(b)12W.4 L* VMJ9(232&T Jr 川 clIrlR * c PH 1 ii I 2 7fc V _G r R R T r R4WCH0S JCuCl-TOLTAGE DjUBLEFL2+-V-C2-Vt-LlAfSE INVERfER*5Fl Hirjri.il |6工a)IZhTTL/CPdOS OUTPUTS.9Tt广TJtiuiR1quiiouipiqsI RS-233 f

10、 lMPirr(b)图8MAX232的外围电路连接如图9其数据传输过程如下:MAX232的11脚Tiin接单片机的TXD端P3.1,TTL电平从单片 机TXD端发出,经过MAX232转换为RS-232电平后从MAX232的14脚T1OUT发出,再连接 到实验板上串口座的第2脚,在经过平行串口线连接至 PC机的串口座第2个脚RXD端,至 此计算机接收数据。PC机发送数据时从PC机串口座第3脚TXD端发出数据,再逆向流向 单片机的RXD端P3.0接收数据。P3.1(RXDP3.0(TXD04o1iIJ1U仟Ct-T1 INT1OUTR1OIJTHumT2MT3DUTR33UTR91MV&-UHUW

11、3325r T114J1cSJn-osf1.C3T A需要注意的是,MAX232与串口座连接时,无论是数据输出端,还是数据输入端,连接 串口座的第2引脚获第3引脚都可以,选用不同的连接方式是,单片机与计算机之间的串口 线要谨慎选择,是选平行串口线还是交叉串口线、是母头对母头串口线还是母头对公头的串 口线这些都要非常注意,每种选择都有对应的电路,但是无论哪种搭配电路,在单片机与计 算机之间必须要有一条数据能互相传输回路,把握好信号交接点就一定能通信成功。2.3 A/D转换电路的设计A/D转换部分本实验采用ADC0832:ADC0832是美国国家半导体公司生产的一种 8位分辨率、双通道A/D转换

12、芯片。由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎, 其目前已经有很高的普及率。ADC0832具有以下特点: 8位分辨率; 双通道A/D转换; 输入输出电平与TTL/CMO相兼容; 5V电源供电时输入电压在0-5V之间;工作频率为250KHZ转换时间为32卩S; 一般功耗仅为15mWADC0832的外围电路和管脚图如图10 (&)和(b)CH-瞇 EF)-c.-jO(a)KO妙(b)图10ADC0832为8位分辨率A/D转换芯片,其最高分辨可达 256级,可以应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在05V之间。芯片转换时间仅为32卩S,据

13、有双通道输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI数据输入端,可以轻易的实现通道功能的选择。2.4液晶显示电路的设计液晶显示采用我们熟悉的16*2显示的LCD1602LCD1LM血RP1屮憶卜工TU.KT*U3於宙g 已吕UE3理出宫D- 一 二二二RSTPSJFh ALEAPI 0P1 1?1 2円JRi 4P1 5Pi勺Pi 7RCSPACKeOR1-P? fLMP2 l.ABR2.*-A12中気乂 1斗F2.7-A1SPJOiRXD-13 F DF3 3-1 Nil 眄听QF35THP3*-WftP3 丁

14、邓ALBECSI图11单片机液晶显示电路1三、系统总电路总体电路图:卜 X1RL1KWH3顾12PQW0IR1MD1RMDlRSTHIMDi POMM KIMOSK1MDT椁农 也in f22MlpsfiT*2轴1Alf輕啦&萨口P11襁 SJM3 I2SM4 KTMFJDfflijF1VTQPJiirra呛PjMfTTP14和MBP诗nsn陀ATOC5-I lfl ESI33JIU2*11 D B*2*图12串口通信系统总电路11二r药9*四、系统的软件设计CHcvTlhTWUTHWTmill仙TSJTMDUTKMCJ-C2 sHk-o:NN : i;4.1程序流程图:开始LCD1602初始

15、化串口初始化A/D孑专换1602显示采集数据计数器0计数满1秒启动定时器1PC机向单片机发送的字符单片机响应PC机单片机向PC机发送数 据,刷新1602显示结束图13总程序流程图4.2串口通信总程序:#in clude#include#include#define uchar unsigned char #define uint unsigned int uchar code table0=Mcu system;uchar code table1=Voltage:;sbit ADCS=P29 sbit ADDI=P2A1;sbit ADCLK=P2A2sbit lcden=P2A6;sbit

16、lcdrs=P2A7;/0832 片选端/0832数据端/0832 时钟端 /液晶使能端 /液晶数据命令选择端uint t0_num,num;uchar flag_uart,flag_time,flag_on,a,i,ad_val;float ad_vo;延时void delay(uint x) uint i,j;for(i=x;i0;i-) for(j=110;j0;j-);串口初始化void ck_init()TMOD=Ox21;/设定T1定时器工作方式2, TO定时器工作方式1;TH0=(65535-45872)/256;/T0 计数器装初值;TLO=(65535-45872)%256;

17、TH1=Oxfd; /T1 定时器装初值;TL1=Oxfd;TR1=1;/启动T1定时器;ETO=1;启动TO计数器;SMO=O;/设定串口工作方式 1SM1=1;/同上REN=1;/允许串口接收EA=1;/开总中断ES=1;/ 开串口中断/* 16O2 */void write_com(uchar com)delay(1);/选择写命令模式/将要写的命令字送到数据总线上/稍作延时以待数据稳定/给使能端一个高脉冲/稍作延时/使能端置 0 已完成高脉冲lcdrs=0;P0=com;_nop_();lcden=1;delay(5);lcden=0;void write_date(uchar dat

18、e)delay(1);/查忙lcdrs=1;/选择写数据模式P0=date; /将要写的数据送到数据总线上_nop_();lcden=1;delay(5);lcden=0;void lcd_init()/设置16*2显示, 5*7 点阵, 8位数据接口 /设置开显示,不显示光标 /写一个字符后地址加 1/显示清 0,数据指针清 0lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01) ;void display(uchar x)float j;uint aa;j=x*19.607;aa=j+0.5;writ

19、e_com(0x80+0x03) ;/设置第一行字符显示的起始地址 for(num=0;num10;num+) /通过 for 循环将 table0 中的字符写到液晶上 write_date(table0num);delay(1); write_com(0x80+0x42) ; for(num=0;num8;num+)/设置第二行字符显示的起始地址/通过 for 循环将 table1 中的字符写到液晶上write_date(table1num);delay(1);write_com(0x80+0x40+10);write_date(0x30+(aa/1000);/设置 A/D 转换数据的起始地

20、址 /写个位/写小数点/写小数点后面第一位 /写小数点后面第二位 /写字符“ V”write_date(0x2e);write_date(0x30+(aa%1000/100); write_date(0x30+(aa%100/10); write_date(0x56);0832uchar ad_0832()uchar date; uint i;ADDI=1;_nop_();_nop_();ADCS=0;_nop_();_nop_();ADCLK=1;_nop_();_nop_();ADCLK=0;ADDI=0;_nop_();_nop_();ADCLK=1;_nop_();_nop_();ADCLK=0;ADDI=0;_nop_();_nop_();ADCLK=1;_nop_();_nop_();ADCL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论