《单片机与PC机串口通信实验报告.docx》由会员分享,可在线阅读,更多相关《单片机与PC机串口通信实验报告.docx(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单片机与 PC 机串口通讯学生:何绍金 学号: 202303870408专业班级:自动化 1202 指导教师: 杨东勇2023 年 12 月一、 试验目的学习 PC 机的串口通讯原理。二、试验设备统一电子开发平台。三、试验要求单片机与电脑串口通讯,将单片机与电脑相连,借助串口调试助手,单片机发送“which led is light?”,串口调试助手中输入1-8 个数字中一个,相应的led 点亮,单片机再发送“which led is light?”消息提示输入下一个需要点亮的灯。通讯波特率:9600bps,信息格式:无校验位8 个数据位1 个停顿位,传送方式, 单片机承受中断方式接收信息。四
2、、试验原理鉴于 8051 单片机输入、输出电平均为 TTL/CMOS 电平,而计算机配置的是RS232 标准串行接口,使用的是 RS232 标准电平规律 0:+3V+15V,规律 1: 约-3V-15V,二者的电气标准不全都,因此要完成 PC 机与单片机的数据通讯,必需进展电平转换。这里,我们介绍 Sipex 公司的 SP3232 电平转换专用芯片7。1. SP3232 的工作原理SP3232 的引脚如图 1 所示。图 1SP3232 引脚图SP3232 管脚定义如表 1 所示:表 1管脚定义管脚名C1+,C1- V+C2+,C2-功能为正极充电泵的输入终端电容器+2VCC 电压充电泵为负极充
3、电泵的输入终端电容器V- T_OUT R_IN R_OUT T_IN GND VCCN.C.-2VCC 电压充电泵RS-232 发送输出RS-232 接收输入RS-232 接收输出RS-232 发送输入电源地+4.5V 到+5.5V 电压输出无连接端具体描述:SP3232 的内部包括 3 个局部:充电泵电压变换器,发送(传输器),以及接收装置。后缀是 E 的版本供给额外的 ESD 保护,经过了 15kV 的人体静电模拟放电测试。版本 E 可以用于严酷的环境或简洁频繁接触电的状况中。接口电路设计如图 2 所示:TXD3R1INT1OUTRXDPC机RS232单片机RXD2R1OUTT1INTXD
4、图 2232 接口电路留意,RS232 是三线制通讯协议,必需使PC 机与单片机系统“共地”。2. 试验原理图试验原理图如图 3 所示。图 3单片机与 PC 机串口通讯试验硬件原理图五、程序流程图程序流程图如图 4-1 和 4-2 所示。开头以MSCom控件翻开端口成功N显示错误信息Y串口设置与接口选项接缓冲区是否收到Rthresold个字符?NY是否有字符驻留在接收缓冲区等待被取出?NY接收串口数据关闭串口完毕图 4-1程序流程图一开头T1初始化,并启动设定串行通信方式发送数据NT1=1?Y清T1数据发送完NY完毕开头R1初始化,并启动设定通信方式R1=1?NY承受数据清R1N数据发送完Y完
5、毕图 4-2程序流程图二六、试验思考题假设PC机连续发送数字字符,如何避开错漏接收字符?答:利用中断推断是否承受完一个数字字符,承受完后再接收下一个数字字符。附:试验源代码;*ASM 汇编试验*;工程:;晶振: 11.0592M;*/#include “REG_MPC82G516.INC“/* 假设用到 MPC82G516 的特别存放器请包含这个头文件 */ORG 0000H AJMP MAIN ORG 0023H AJMP INT_COM1MAIN:MOV SCON,#50H ;MOV TMOD,#20H ; ;设置波特率MOV TH1,#0FDH ; ;SETB TR1;SETB EA;允
6、许总的中断SETB ESMOV R1,#01H ;发送消息推断标志,1 代表发送,0 代表不发送CALL SHOW ;发送显示灯选择消息LOOP:CALL LED1 SJMP LOOPINT_COM1:PUSH PSW ;保存存放器数据。PUSH ACC ;保存累加器CLR EA CLR ES CLR RIMOV A,SBUF ;接收数据MOV R1,A;POP ACC ;取出保存累加器存放器数据。POP PSW ;SETB EA;允许总的中断SETB ES ;允许串行中断RETI;LED1:CJNE R1,#31H,LED2 ; 点亮标号 LED4 的发光二极管MOV P1,#1111111
7、0B ;MOV R1,#01H ; 发送消息推断标志,1 代表发送,0 代表不发送CALL SHOW ; 发送显示灯选择消息JMP RETURN;LED2:CJNE R1,#32H,LED3 ; 点亮标号 LED5 的发光二极管MOV P1,#11111101B ;MOV R1,#01H ; 发送消息推断标志,1 代表发送,0 代表不发送CALL SHOW ; 发送显示灯选择消息JMP RETURN;仿照上面程序补充完整 LED5 发光二极管的程序LED3:CJNE R1,#33H,LED4 ; 点亮标号 LED6 的发光二极管MOV P1,#11111011B ;MOV R1,#01H ;
8、发送消息推断标志,1 代表发送,0 代表不发送CALL SHOW ; 发送显示灯选择消息JMP RETURN;仿照上面程序补充完整 LED6 发光二极管的程序LED4:CJNE R1,#34H,LED5 ; 点亮标号 LED5 的发光二极管MOV P1,#11110111B ;MOV R1,#01H ; 发送消息推断标志,1 代表发送,0 代表不发送CALL SHOW ; 发送显示灯选择消息JMP RETURN;仿照上面程序补充完整 LED7 发光二极管的程序LED5:CJNE R1,#35H,LED6 ; 点亮标号 LED5 的发光二极管MOV P1,#11101111B ;MOV R1,#
9、01H ; 发送消息推断标志,1 代表发送,0 代表不发送CALL SHOW ; 发送显示灯选择消息JMP RETURN;仿照上面程序补充完整 LED8 发光二极管的程序LED6:CJNE R1,#36H,LED7 ; 点亮标号 LED5 的发光二极管MOV P1,#11011111B ;MOV R1,#01H ; 发送消息推断标志,1 代表发送,0 代表不发送CALL SHOW ; 发送显示灯选择消息JMP RETURN;仿照上面程序补充完整 LED9 发光二极管的程序LED7:CJNE R1,#37H,LED8 ; 点亮标号 LED5 的发光二极管MOV P1,#10111111B ;MO
10、V R1,#01H ; 发送消息推断标志,1 代表发送,0 代表不发送CALL SHOW ; 发送显示灯选择消息JMP RETURN;仿照上面程序补充完整 LED10 发光二极管的程序LED8:CJNE R1,#38H,RETURN ; 点亮标号 LED5 的发光二极管MOV P1,#01111111B ;MOV R1,#01H ; 发送消息推断标志,1 代表发送,0 代表不发送CALL SHOW ; 发送显示灯选择消息JMP RETURN;仿照上面程序补充完整 LED11 发光二极管的程序RETURN:RET;SHOW:;发送显示灯选择消息CJNE R1,#01H,END_SHOWSHOW_
11、CHAR:MOV R6,#00H;MOV R7,#14H ;猎取发送字符串长度TX_NEWS:MOV A,R6;MOV DPTR,#TAB ;读取字符串地址MOVC A,A+DPTRMOV SBUF,A;发送字符WAIT3:JBC TI,NEXT2 SJMP WAIT3NEXT2:INC R6 ;数据存放地址加 1DJNZ R7,TX_NEWS;推断发送完毕MOV R1,#00H ;去除消息发送标志END_SHOW:RET;TAB:DB 77h,68H,69H,63H,68H,20H,6cH,65H,64H,20H,69H,73H,20H,6cH,69H,3FH,0AH; w h i c h l e d i s l i t ? END