资源描述:
《单片机串口通讯实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单21选题背景在国内外,以PC机作为上位机,单片机作为下位机的控制系统中,PC机通常以软件界面进行人机交互,以串行通信方式与单片机进行积极交互,而单片机系统根据被控对象配置相应的前向,后向信息通道,工作时作为主控机测对象,作为被控机接受PC机监督,指挥,定期或受命向上位机提供对象及本身的工作状态信息。用串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。同时,系统的更改和扩充极为容易。MCS-51系列单片机,由于内部带有一个可用于异步通讯的全双工的穿行通讯接口,阴齿可以很方便的构成一个主从式
2、系统。2实验设备统一电子开发平台。3方案论证3.1实验原理鉴于8051单片机输入、输出电平均为TTL/CMOS电平,而计算机配置的是RS232标准串行接口,使用的是RS232标准电平(逻辑0:+3V~+15V,逻辑1:约-3V~-15V),二者的电气规范不一致,因此要完成PC机与单片机的数据通讯,必须进行电平转换。这里,我们介绍Sipex公司的SP3232电平转换专用芯片[7]。SP3232的工作原理SP3232的引脚如图1所示。图1SP3232引脚图SP3232管脚定义如表1所示:表1管脚定义管脚名功能C1
3、+,C1-为正极充电泵的输入终端电容器V++2VCC电压充电泵C2+,C2-为负极充电泵的输入终端电容器V--2VCC电压充电泵T_OUTRS-232发送输出R_INRS-232接收输入R_OUTRS-232接收输出T_INRS-232发送输入GND电源地VCC+4.5V到+5.5V电压输出N.C.无连接端4过程论述:SP3232的内部包括3个部分:充电泵电压变换器,发送(传输器),以及接收装置。后缀是E的版本提供额外的ESD保护,经过了15kV的人体静电模拟放电测试。版本E可以用于严酷的环境或容易频繁接触电
4、的情况中。接口电路设计如图2所示:图2232接口电路注意,RS232是三线制通讯协议,必须使PC机与单片机系统“共地”。5实验原理图实验原理图如图3所示。图3单片机与PC机串口通讯实验硬件原理图6程序流程图程序流程图如图6-1和6-2所示。图6-1程序流程图一图6-2程序流程图二7实验源代码;********************ASM汇编实验*******************;工程:;晶振:11.0592M;***********************************************
5、**//#include"REG_MPC82G516.INC"/*如果用到MPC82G516的特殊寄存器请包含这个头文件*/ORG0000HAJMPMAINORG0023HAJMPINT_COM1MAIN:MOVSCON,#50H;;MOVTMOD,#20H;;设置波特率MOVTH1,#0FDH;;SETBTR1;SETBEA;允许总的中断SETBESMOVR1,#01H;发送消息判断标志,1代表发送,0代表不发送CALLSHOW;发送显示灯选择消息LOOP:CALLLED1SJMPLOOPINT_COM1:
6、PUSHPSW;保存寄存器数据。PUSHACC;保存累加器CLREACLRESCLRRIMOVA,SBUF;接收数据MOVR1,A;POPACC;取出保存累加器寄存器数据。POPPSW;SETBEA;允许总的中断SETBES;允许串行中断RETI;LED1:CJNER1,#31H,LED2;点亮标号LED4的发光二极管MOVP1,#11111110B;MOVR1,#01H;发送消息判断标志,1代表发送,0代表不发送CALLSHOW;发送显示灯选择消息JMPRETURN;LED2:CJNER1,#32H,LED
7、3;点亮标号LED5的发光二极管MOVP1,#11111101B;MOVR1,#01H;发送消息判断标志,1代表发送,0代表不发送CALLSHOW;发送显示灯选择消息JMPRETURN;;仿照上面程序补充完整LED5发光二极管的程序LED3:CJNER1,#33H,LED4;点亮标号LED6的发光二极管MOVP1,#11111011B;MOVR1,#01H;发送消息判断标志,1代表发送,0代表不发送CALLSHOW;发送显示灯选择消息JMPRETURN;;仿照上面程序补充完整LED6发光二极管的程序LED4:
8、CJNER1,#34H,LED5;点亮标号LED5的发光二极管MOVP1,#11110111B;MOVR1,#01H;发送消息判断标志,1代表发送,0代表不发送CALLSHOW;发送显示灯选择消息JMPRETURN;;仿照上面程序补充完整LED7发光二极管的程序LED5:CJNER1,#35H,LED6;点亮标号LED5的发光二极管MOVP1,#11101111B;MOVR1,#01H;发送消息判断