51单片机与PC机通信资料
- 格式:doc
- 大小:346.00 KB
- 文档页数:13
《专业综合实习报告》专业:电子信息工程年级:2013级指导教师:学生:目录一:实验项目名称二:前言三:项目内容及要求四:串口通信原理五:设计思路5.1虚拟串口的设置5.2下位机电路和程序设计5.3串口通信仿真六:电路原理框图七:相关硬件及配套软件7.1 AT89C51器件简介7.2 COMPIN简介7.3 MAX232器件简介7.4友善串口调试助手7.5 虚拟串口软件Virtual Serial Port Driver 6.9八:程序设计九:proteus仿真调试十:总结十一:参考文献一:实验项目名称:基于51单片机的单片机与PC机通信二:前言在国内外,以PC机作为上位机,单片机作为下位机的控制系统中,PC机通常以软件界面进行人机交互,以串行通信方式与单片机进行积极交互,而单片机系统根据被控对象配置相应的前向,后向信息通道,工作时作为主控机测对象,作为被控机接受PC机监督,指挥,定期或受命向上位机提供对象及本身的工作状态信息。
目前,随着集成电路集成度的增加,电子计算机向微型化和超微型化方向发展,微型计算机已成为导弹,智能机器人,人类宇宙和太空和太空奥妙复杂系统不可缺少的智能部件。
在一些工业控制中,经常需要以多台单片机作为下位机执行对被控对象的直接控制,以一台PC机为上位机完成复杂的数据处理,组成一种以集中管理、分散控制为特点的集散控制系统。
为了提高系统管理的先进性和安全性,计算机工业自动控制和监测系统越来越多地采用集总分算系统。
较为常见的形式是由一台做管理用的上位主计算机(主机)和一台直接参与控制检测的下位机(单片机)构成的主从式系统,主机和从机之间以通讯的方式来协调工作。
主机的作用一是要向从机发送各种命令及参数:二是要及时收集、整理和分析从机发回的数据,供进一步的决策和报表。
从机被动地接受、执行主机发来的命令,并且根据主机的要求向主机回传相应烦人实时数据,报告其运行状态。
用串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。
PC与51单片机串口通信串行通信是计算机和外设进行通讯、对外设进行监控并获取由外设采集到的监测数据的一个非常重要的手段。
由于其所用的传输线少,成本低,实现起来方便易行,因而得到广泛的应用。
STC89C52RC有一个可编程的全双工串行通信接口,可以方便的实现PC机与其之间的串行通信。
一、总体方案系统中采用STC89C52RC/STC89C54RD+单片机作为下位机,PC机为上位机,二者通过CH340将PC的USB口转成RS232的串行口接收或上传数据。
单片机部分的程序采用C语言编程,用Keil uVision4编译后产生HEX文件下载到单片机内,从而实现数据收发。
PC端采用一个串口调试助手(sscom4.2)或MATLAB GUI 实现数据的收发。
二、具体方案1、简单通信测试程序本程序为了测试通信方式是否合适,以便于下一步增加程序的内容。
(1)利用STC提供STC-ISP-V4.83软件检查MCU选项MCU Type is: STC89C54RD+MCU Firmware Version: 3.2CChinese:MCU 固件版本号: 3.2CDouble speed / 双倍速: 12T/单倍速振荡放大器增益: full gain下次下载时 P1.0/P1.1 与下载无关内部扩展AUX-RAM: 允许访问(强烈推荐)下次下载用户应用程序时将数据Flash区擦除: NO用户软件启动内部看门狗后: 复位关看门狗ALE pin 仍为 ALE内部时钟频率:11.061806M外部时钟频率:11.061806M(2)串行口初始参数设定串行口工作方式为方式1(10位异步收发),波特率为9600bps,用定时器1作波特率发生器,选用定时器模式2,其它详见程序及说明。
(3)程序功能说明通过串口调试助手,向单片机发送字符,发送字符的末尾需加“!”,让单片机识别数据接收完毕,返回“Wait command!”字符串。
单片机与PC 机的串口通信这一讲将介绍单片机上的串口通信。
通过该讲,读者可以掌握单片机上串口的工作原理和如何通过程序来对串口进行设置,并根据所给出的实例实现与PC 机通信。
一、原理简介51 单片机内部有一个全双工串行接口。
什么叫全双工串口呢?一般来说,只能接受或只能发送的称为单工串行;既可接收又可发送,但不能同时进行的称为半双工;能同时接收和发送的串行口称为全双工串行口。
串行通信是指数据一位一位地按顺序传送的通信方式,其突出优点是只需一根传输线,可大大降低硬件成本,适合远距离通信。
其缺点是传输速度较低。
与之前一样,首先我们来了解单片机串口相关的寄存器。
SBUF 寄存器:它是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据,可通过指令对SBUF 的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。
从而控制外部两条独立的收发信号线RXD(P3.0)、TXD(P3.1),同时发送、接收数据,实现全双工。
串行口控制寄存器SC ON(见表1)。
表1 SCON寄存器表中各位(从左至右为从高位到低位)含义如下。
SM0 和SM1 :串行口工作方式控制位,其定义如表2 所示。
表2 串行口工作方式控制位其中,fOSC 为单片机的时钟频率;波特率指串行口每秒钟发送(或接收)的位数。
SM2 :多机通信控制位。
该仅用于方式2 和方式3 的多机通信。
其中发送机SM2 =1(需要程序控制设置)。
接收机的串行口工作于方式2 或3,SM2=1 时,只有当接收到第9 位数据(RB8)为1 时,才把接收到的前8 位数据送入SBUF,且置位RI 发出中断申请引发串行接收中断,否则会将接受到的数据放弃。
当SM2=0 时,就不管第位数据是0 还是1,都将数据送入SBUF,并置位RI 发出中断申请。
工作于方式0 时,SM2 必须为0。
REN :串行接收允许位:REN =0 时,禁止接收;REN =1 时,允许接收。
TB8 :在方式2、3 中,TB8 是发送机要发送的第9 位数据。
采用MA232实现MCS51单片机与PC机的通信一、本文概述随着微处理器技术的飞速发展,单片机作为一种集成度高、功能强大的微控制器,在工业自动化、智能仪表、嵌入式系统等领域得到了广泛应用。
MCS51单片机作为其中的佼佼者,以其稳定的性能和广泛的适应性受到了工程师们的青睐。
然而,单片机与PC机之间的通信一直是困扰工程师们的难题之一。
本文旨在探讨采用MA232串口通信模块实现MCS51单片机与PC机之间通信的方法,为工程师们提供一种可靠的解决方案。
本文将首先介绍MCS51单片机的特点及其在嵌入式系统中的应用,然后详细阐述MA232串口通信模块的工作原理及其与MCS51单片机的接口方法。
在此基础上,本文将重点分析采用MA232实现MCS51单片机与PC机通信的硬件电路设计和软件编程实现。
通过实例演示和测试结果分析,验证采用MA232实现MCS51单片机与PC机通信的可行性和可靠性,为工程师们在实际项目中应用提供参考和借鉴。
通过本文的学习,读者可以深入了解MCS51单片机与PC机通信的原理和实现方法,掌握采用MA232串口通信模块实现通信的关键技术,为实际应用提供有力的技术支持。
二、MCS51单片机简介MCS51单片机,又称为Intel 8051微控制器,是Intel公司在1980年代初推出的一款8位CISC(复杂指令集计算机)单片机。
自推出以来,由于其出色的性能、合理的价格和广泛的应用场景,MCS51单片机在全球范围内得到了广泛的使用,成为了嵌入式系统领域的经典之作。
MCS51单片机采用了典型的微处理器结构,包括中央处理器(CPU)、内部数据存储器(RAM)、外部数据存储器(外部RAM)、各种I/O 接口电路以及时钟电路等。
其中,CPU是单片机的核心部分,负责执行程序中的指令,进行数据的运算和处理。
内部数据存储器用于存放程序和数据,而外部数据存储器则提供了更大的存储空间,用于存放更多的数据或程序。
MCS51单片机还提供了丰富的I/O接口电路,包括并行I/O口、串行通信口、定时/计数器、中断系统等,使得单片机可以与外部设备进行通信和控制。
单片机P2口接8只LED灯,P3.2~P3.3引脚连接有K1和K2共2个按键,使用单片机串行口与PC机通信。
1)由PC机控制单片机的P2口,将PC机送出的数以二进制形式显示在LED灯上;2)按下按键K1向PC机发送数字0x55,按下K2向PC机发送数字0xAA。
源程序如下:#define uchar unsigned char#include "string.h"#include "reg51.h"unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90, 0x08,0x03,0x46,0x21,0x06,0x0e}; //十六进制-7段译码表void mDelay(unsigned int DelayTime) //延时函数{ unsigned char j=0;for(;DelayTime>0;DelayTime--) //延时循环{ for(j=0;j<125;j++){;}}}void SendData(uchar Dat) //发送函数{ uchar i=0;SBUF=Dat; //发送Datwhile(1){if(TI) //如果发送中断标志为1,则等待,{ TI=0; break; } //否则清除发送中断标志}}uchar Key() //按键处理函数{ uchar KValue; //声明键值函数P3|=0x3e; //中间4位置高电平 0011 1101if((KValue=P3|0xe3)!=0xff) //如果按键按下{ mDelay(10); //延迟时间函数if((KValue=P3|0xe3)!=0xff) //如果按键还在按下状态{ for(;;) //等待if((P3|0xe3)==0xff) //如果按键抬起,return(KValue); //返回键值}}return(0); //如果按键没有按下,返回0}void main() //主函数{ uchar KeyValue; //定义键值变量KeyValueunsigned char ns,ng,temp; //定义变量ns,ng,tempP2=0xff; //熄灭P2口连接的所有发光管TMOD=0x20; //确定定时器工作模式,模式2,常数自动装入TH1=0xFD;TL0=0xFD; //定时器1的初值波特率为9600,晶体为11.0592MHz //PCON&=0x80; 若是SMOD=1 可以使波特率加倍TR1=1; //启动定时器1SCON=0x40; //串口工作方式1 运行在8位模式REN=1; //允许接收for(;;) //无限循环{if(KeyValue=Key()) //调用按键函数,获取按键信息{ if((KeyValue|0xfb)!=0xff) //如果按键k1按下SendData(0x55); //调用发送函数,送出0x55if((KeyValue|0xf7)!=0xff) //如果k2按下SendData(0xaa); //调用发送函数,送出0xaa}if(RI) //如果接收中断发生{ P2=SBUF; //将接收数据写到端口P2RI=0; } //清除接收标志位temp=P2; //暂存接收到的数据ng=temp & 0x0f; //取接收数据低4位ns=temp>>4; //将高4位右移4位ns &=0x0f; //取接收数据高4位P0=table[ng]; //P0口连接的数码管显示低4位P1=table[ns]; //P1口连接的数码管显示高4位}}。
单片机与PC 机的串口通信这一讲将介绍单片机上的串口通信。
通过该讲,读者可以掌握单片机上串口的工作原理和如何通过程序来对串口进行设置,并根据所给出的实例实现与PC 机通信。
一、原理简介51 单片机内部有一个全双工串行接口。
什么叫全双工串口呢?一般来说,只能接受或只能发送的称为单工串行;既可接收又可发送,但不能同时进行的称为半双工;能同时接收和发送的串行口称为全双工串行口。
串行通信是指数据一位一位地按顺序传送的通信方式,其突出优点是只需一根传输线,可大大降低硬件成本,适合远距离通信。
其缺点是传输速度较低。
与之前一样,首先我们来了解单片机串口相关的寄存器。
SBUF 寄存器:它是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据,可通过指令对SBUF 的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。
从而控制外部两条独立的收发信号线RXD(P3.0)、TXD(P3.1),同时发送、接收数据,实现全双工。
串行口控制寄存器SC ON(见表1)。
表1 SCON寄存器表中各位(从左至右为从高位到低位)含义如下。
SM0 和SM1 :串行口工作方式控制位,其定义如表2 所示。
表2 串行口工作方式控制位其中,fOSC 为单片机的时钟频率;波特率指串行口每秒钟发送(或接收)的位数。
SM2 :多机通信控制位。
该仅用于方式2 和方式3 的多机通信。
其中发送机SM2 =1(需要程序控制设置)。
接收机的串行口工作于方式2 或3,SM2=1 时,只有当接收到第9 位数据(RB8)为1 时,才把接收到的前8 位数据送入SBUF,且置位RI 发出中断申请引发串行接收中断,否则会将接受到的数据放弃。
当SM2=0 时,就不管第位数据是0 还是1,都将数据送入SBUF,并置位RI 发出中断申请。
工作于方式0 时,SM2 必须为0。
REN :串行接收允许位:REN =0 时,禁止接收;REN =1 时,允许接收。
TB8 :在方式2、3 中,TB8 是发送机要发送的第9 位数据。
MCS -51单片机与PC 机串行通讯的实现赵迎生(淮阴工学院,江苏淮阴223300)摘要:本文利用VB 程序在PC 机上的强大的编程功能和MCS -51单片机的接口设计简单可靠的特点,介绍了实现PC 机与MCS -51单片机相互间进行通讯的软硬件设计,提供了通讯的VB 程序和MCS -51单片机汇编程序。
关键词:PC 机;单片机;通讯;程序The R ealization of Serial Communication B et w een MCS -51Microcomputer and PCZHAO Y ing 2sheng(Huaiyin Institute of Technology ,Hua i ’an 223001,China )Abstract :Based on the powerful programming function of Visual Basic program on personal computer and the simple and reliable characteristic of interface design of MCS -51series microcomputer ,the design method of software and hardware is introduced to re 2alize the communication between PC and MCS -51series microcomputer ,and VB program and MCS -51assembly language pro 2gram process is offered.K eyw ords :Personal computer ;Microcomputer ;Communication ;Programm0 前言VB 程序的编程功能非常强大,根据实际应用系统的需要,在PC 机上可以迅速设计出应用系统的图文显示控制界面,且具有通用性,易于移植。
51单片机与PC串口间通讯设计与分析一、串口通讯原理串口通讯是指通过串口来进行数据的收发传输的一种通讯方式。
串口通讯分为同步串行通讯和异步串行通讯两种方式,而51单片机与PC之间的串口通讯采用的是异步串行通讯方式。
异步串行通信是指每个数据字节之间可以有可变长度的停止位和起始位。
串口通讯一般由以下几个部分组成:1.传输数据线:用于传输数据的信号线,包括发送数据线(TXD)和接收数据线(RXD)。
2.时钟线:用于提供通讯双方的时钟信号。
3.控制线:用于控制串口通讯的流程,包括数据准备好(DSR)、数据就绪(DTR)等。
二、串口通讯协议串口通讯协议是约定通讯双方数据传输的格式和规则,常见的串口通讯协议有RS-232、RS-485等。
在51单片机与PC之间的串口通讯中,一般使用的是RS-232协议。
RS-232协议规定了数据的起始位、数据位数、校验位和停止位等。
起始位用于标识数据的传输开始,通常为一个逻辑低电平;数据位数指定了每个数据字节的位数,常见的值有5位、6位、7位和8位等;校验位用于校验数据的正确性,一般有无校验、奇校验和偶校验等选项;停止位用于表示数据的传输结束,通常为一个逻辑高电平。
三、51单片机串口的程序设计#include <reg52.h>#define UART_BAUDRATE 9600 // 波特率设置#define UART_DIV 256- UART_BAUDRATE/300void UART_Init( //串口初始化TMOD=0x20;SCON=0x50;PCON=0x00;TH1=UART_DIV;TL1=UART_DIV;TR1=1;EA=1;ES=1;void UART_SendByte(unsigned char ch) //串口发送字节TI=0;SBUF = ch;while(TI == 0);TI=0;void UART_Interrupt( interrupt 4 //串口中断处理if(RI)unsigned char ch;ch = SBUF;RI=0;//处理接收到的数据}if(TI)TI=0;//发送下一个字节}void mainUART_Init(;while(1)//主循环}在上述程序中,首先通过UART_Init(函数进行串口初始化,其中设置了波特率为9600;然后使用UART_SendByte(函数发送数据,调用该函数时会把数据放入SBUF寄存器,并等待TI标志位变为1;最后,在UART_Interrupt(函数中,使用RI标志位判断是否收到数据,然后对数据进行处理,TI标志位判断是否发送完当前字节。
《专业综合实习报告》专业:电子信息工程年级:2013级指导教师:学生:目录一:实验项目名称二:前言三:项目内容及要求四:串口通信原理五:设计思路5.1虚拟串口的设置5.2下位机电路和程序设计5.3串口通信仿真六:电路原理框图七:相关硬件及配套软件7.1 AT89C51器件简介7.2 COMPIN简介7.3 MAX232器件简介7.4友善串口调试助手7.5 虚拟串口软件Virtual Serial Port Driver 6.9八:程序设计九:proteus仿真调试十:总结十一:参考文献一:实验项目名称:基于51单片机的单片机与PC机通信二:前言在国内外,以PC机作为上位机,单片机作为下位机的控制系统中,PC机通常以软件界面进行人机交互,以串行通信方式与单片机进行积极交互,而单片机系统根据被控对象配置相应的前向,后向信息通道,工作时作为主控机测对象,作为被控机接受PC机监督,指挥,定期或受命向上位机提供对象及本身的工作状态信息。
目前,随着集成电路集成度的增加,电子计算机向微型化和超微型化方向发展,微型计算机已成为导弹,智能机器人,人类宇宙和太空和太空奥妙复杂系统不可缺少的智能部件。
在一些工业控制中,经常需要以多台单片机作为下位机执行对被控对象的直接控制,以一台PC机为上位机完成复杂的数据处理,组成一种以集中管理、分散控制为特点的集散控制系统。
为了提高系统管理的先进性和安全性,计算机工业自动控制和监测系统越来越多地采用集总分算系统。
较为常见的形式是由一台做管理用的上位主计算机(主机)和一台直接参与控制检测的下位机(单片机)构成的主从式系统,主机和从机之间以通讯的方式来协调工作。
主机的作用一是要向从机发送各种命令及参数:二是要及时收集、整理和分析从机发回的数据,供进一步的决策和报表。
从机被动地接受、执行主机发来的命令,并且根据主机的要求向主机回传相应烦人实时数据,报告其运行状态。
用串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。
同时,系统的更改和扩充极为容易。
MCS-51系列单片机,由于内部带有一个可用于异步通讯的全双工的穿行通讯接口,阴齿可以很方便的构成一个主从式系统。
串口是计算机上一种非常通用的设备通讯协议,大多数计算机包容两个基于RS232的串口。
串口同时也是仪器仪表设备通过用的通讯协议,很多GPIB兼容的设备也带有RS-232口。
同时串口通讯协议也可以用于获取远程采集设备数据。
所以,深入的理解学习和研究串口通信相关知识是非常必要的。
此次毕业设计选题为“PC机与MCS-51单片机的串口通讯”,使用51单片机来实现一个主从式的总线通讯系统。
通过此次设计,对串口通讯的原理和应用融会贯通,为以后的时间工作储备知识和研究方法。
三.项目内容及要求基于51单片机,在相关软件的辅助下,建立起单片机与PC机之间的通信机制,使用proteus仿真软件进行仿真,要求可从PC机上发送数字及英文字母出来,由单片机接收并在虚拟软件显示屏上显现出来,有开关控制数字或者是字母的发送。
四:串口通信原理单片机与外围部件或设备的数据传输方式有并行通信和串行通信两种方式,本实验主要通过串行通信方式进行单片机与PC机之间的数据传输,故略去并行通信方式的介绍。
串行通信是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。
使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。
其只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。
串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。
这种传送方式具有方法简单,灵活性强,可靠性高等特点,同时需要的传送线少,适于远距离传送。
但是,由于数据是按位发送出去的,因此这种数据传送方式比并行通信速率低。
串行通信又可以分为同步通信和异步通信两种方式。
同步通信是指同步通信是一种比特同步通信技术,要求发收双方具有同频同相的同步时钟信号,只需在传送报文的最前面附加特定的同步字符,使发收双方建立同步,此后便在同步时钟的控制下逐位发送/接收。
进行数据传输时,发送和接收双方要保持完全的同步,因此,要求接收和发送设备必须使用同一时钟。
相对于同步通信,异步通信在发送字符时,所发送的字符之间的时隙可以是任意的,当然,接收端必须时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有意义,因为接收端根本无法接收)。
发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。
内部处理器在完成了相应的操作后,通过一个回调的机制,以便通知发送端发送的字符已经得到了回复。
五.设计思路Pc机和单片机的串口通信系统的调试一般通过一根串口连接线把带有软件上位机的(Pc机)和下位机(即单片机)连接起来进行,用这种调试串口通信程序比较烦琐。
本文介绍一种用纯软件实现PC机和单片机串口通信的仿真的方法,所有的调试都在一台电脑上通过软件完成。
上位机由Pc机代替,下位机由用PROTEUS软件设计的AT89C51单片机仿真电路代替串口及连接通过由虚拟串口软Virtual Serial Port Driver 6.9进行连接。
5.1虚拟串口的设置安装虚拟串口软件Virtual Serial Port Driver 6.9,然后打开,左边上面的COMl是电脑上实际的物理串口,下面是虚拟串口,在没有设置前是空的。
因为电脑最多有两个物理串口,将圆圈里的串口改为COMl,COM3,点击Add pair,这就表示,利用这个软件将计算机的串口l和模拟串口3联接了起来,这两个串口可以进行通信了。
5.2下位机电路和程序设计用Proteus6.9设计的仿真电路只用了几个元器件。
由于两个虚拟串口采用相同的标准电平,因此电路中用来作,ITllL电平向RS232电平转换的电路在仿真电路中可以省略。
单片机的实例程序用Keil C51语言编写,串口接收数据采用中断的方式,发送数据采用外部中断的方式,用按钮开关控制数据的发送。
5.3串口通信仿真打开友善串口调试助手,修改串口为COM3,波特率为9600,校验位为None,数据位8,停止位为1。
用Proteus打开仿真电路文件,先设置AT89C51的属性,右击选中AT89C5l,再用左键单击AT89C51,在出现的属性对话框里点击Program File后的打开按钮,找到自Keil源程序编译好的.HEX文件后单击打开,然后在Clock Frequency后填写12M。
单击OK接下来打开串口COMPIN的属性对话框,在PhsicalPort后选择COMl,波特率为9600,校验位为None,数据位8,停止位为l。
设置好后,启动仿真就可以实现电脑和单片机串口通信的仿真了。
首先演示一下单片机向计算机的串口发送数据。
拨动开关向右拨,运行,按一下开关。
虚拟串口终端最示单片机向计算机COMl发送的数据,而计算机的COMI已经和COM3相连,因软件PROTEUS 所此可以在COM3收到单片机发送给COMi的数据。
接着冉演示一下计算机的串口向单片机发送数据。
拨动开关向左拨,在口调试助手中输入想要发送的数据,点击手动则字符串由COM3发送给了计算机的COMI。
再由COMI发送给单片机。
单片机的程序里面有回显功能,将接送给了COM因此可以在COM3的接受框内能够接收到会显得字符串。
六.电路原理框图七.相关硬件及配套软件7.1 AT89C51器件简介AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
7.2 COMPIN简介COM口( cluster communication port )即串行通讯端口。
微机上的com口通常是9针,也有25针的接口,最大速率115200bps。
通常用于连接鼠标(串口)及通讯设备(如连接外置式MODEM进行数据通讯或一些工厂的CNC机接口)等。
一般主板外部只有一个COM口,机箱后面和并口一起的那个九孔输出端(梯形),就是COM1口,COM2口一般要从主板上插针引出。
并口是最长的那个梯形口。
本实验主要应用九针接口。
7.3 MAX232器件简介MAX232是一种双组驱动器/接收器,片内含有一个电容性电压发生器以便在单5V电源供电时提供EIA/TIA-232-E电平。
当用单片机和PC机通过串口进行通信,尽管单片机有串行通信的功能,但单片机提供的信号电平和RS232的标准不一样,因此要通过max232这种类似的芯片进行电平转换。
7.4友善串口调试助手一个强大而稳定的串口调试助手,支持常用的110-921600bps波特率及自定义波特率,波特率最高可支持8000000(串口硬件有关),可适应于非标准波特率。
支持串口自动识别,能设置校验、数据位和停止位,能以ASCII码或十六进制接收或发送任何数据或字符,可以任意设定自动发送周期,并能将接收数据保存成文本文件,能发送任意大小的文本文件。
7.5虚拟串口软件Virtual Serial Port Driver 6.9简介该软件安装成功后可以虚拟出多个串口用于实验,虚拟串口都是成对出现使用的,最大限度的方便了用户数的需求。
八.程序设计注:本程序采用C语言编写,程序如下:#include <reg52.h>#define uint unsigned int#define uchar unsigned charuchar Receive_Buffer[101];uchar Buf_Index = 0;uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};void Delay(uint x){uchar i;while(x--){for(i=0;i<120;i++);}}void main(){uchar i;P0 = 0x00;Receive_Buffer[0]=i;SCON = 0x50;TMOD = 0x20;PCON = 0x00;TH1 = 0xfd;TL1 = 0xfd;EA = 1;EX0 = 1;IT0 = 1;ES = 1;IP = 0x01;TR1 = 1;while(1){for(i=0;i<100;i++){if(Receive_Buffer[i]==-1)break;P0 = DSY_CODE[Receive_Buffer[i]];Delay(200);}Delay(200);}}void Serial_INT() interrupt 4{uchar c;if(RI==0)return;ES = 0;RI = 0;c = SBUF;if(c>='0' && c<='9'){Receive_Buffer[Buf_Index]=c-'0';Receive_Buffer[Buf_Index+1]=-1;Buf_Index = (Buf_Index+1)%100;}ES = 1;}void EX_INT0() interrupt 0{uchar *s = ("Receiving From 8051...\r\n");uchar i = 0;while(s[i]!='\0'){SBUF = s[i];while(TI == 0);TI = 0;i++;}}。