资源描述:
《单片机串口通讯实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验十单片机串行口与PC机通讯实验报告㈠实验目的1.掌握串行口工作方式的程序设计,掌握单片机通讯的编制;2.了解实现串行通讯的硬环境,数据格式的协议,数据交换的协议;3.了解PC机通讯的基本要求。㈡实验器材1.G6W仿真器一台2.MCS—51实验板一台3.PC机一台㈢实验内容及要求利用8051单片机串行口,实现与PC机通讯。本实验实现以下功能,将从实验板键盘上键入的字符或数字显示到PC机显示器上,再将PC机所接收的字符发送回单片机,并在实验板的LED上显示出来。㈣实验步骤1.编写单片机发送和接收程序,
2、并进行汇编调试。2.运行PC机通讯软件“commtest.exe”,将单片机和PC机的波特率均设定为1200。3.运行单片机发送程序,按下不同按键(每个按键都定义成不同的字符),检查PC机所接收的字符是否与发送的字符相同。4.将PC机所接收的字符发送给单片机,与此同时运行单片机接受程序,检查实验板LED数码管所显示的字符是否与PC机发送的字符相同。㈤实验框图单片机接收程序N开始置串口方式,设置波特率置T1模式及常数Y开串口中断接收完毕?启动定时器1,串口接收开放结束清串口中断标志ES设置波特率,启动定
3、时器T1开始设置串口方式YN读键盘,调用按键去抖子程序数据送串口发送完毕?单片机发送程序读串口数据送RAM调用显示子程序串口中断入口中断返回源程序代码:ORG0000HAJMPSTARTORG0023HAJMPSERVEORG0050HSTART:MOV41H,#0H;对几个存放地址进行初始化MOV42H,#0HMOV43H,#0HMOV44H,#0HMOVSCON,#00H;初始化串行口控制寄存器,设置其为方式0LCALLDISPLAY;初始化显示MOVTMOD,#20H;设置为定时器0,模式选用2
4、MOVTL1,#0E6H;设置1200的波特率MOVTH1,#0E6HSETBTR1;开定时器MOVSCON,#50H;选用方式1,允许接收控制SETBESSETBEA;开中断LOOP:ACALLSOUT;键盘扫描并发送,等待中断SJMPLOOPSERVEJNBRI,SEND;判断是发送中断还是接收中断,若为发送中断则调用ACALLSIN;发送子程序,否则调用接收子程序RETISEND:CLRTI;发送子程序RETISIN:CLRRI;接受子程序MOVSCON,#00HMOVA,SBUF;接收数据LC
5、ALLXS;调用显示子程序RETI子程序:SOUT:CLRTI;清发送中断标志位LCALLKEY;调用判断按键是否按下子程序MOVA,R0;将按键对应的数字存入AMOVSBUF,A;输出按键数字给锁存RETKEY:MOVP1,#0FFH;将P1设置为输入口MOVA,P1CPLA;将A内值取反ANLA,#0FFHJZKEY;将A与FFH与后判断是否为0,若为0则表示无按键按下跳回KEYLCALLD;调用延时子程序消抖MOVA,P1CPLAANLA,#0FFHJZKEYMOVB,A;判断有按键按下,将值赋
6、给BKEY1:MOVA,P1CPLAANLA,#0FFHJNZKEY1LCALLDMOVA,BJBACC.0,PKEY1;依次判断A内数据每个位是否为1,并跳JBACC.1,PKEY2;转到相对应位的子程序JBACC.2,PKEY3JBACC.3,PKEY4JBACC.4,PKEY5JBACC.5,PKEY6JBACC.6,PKEY7JBACC.7,PKEY8EKEY:RETPKEY1:AJMPK1PKEY2:AJMPK2PKEY3:AJMPK3PKEY4:AJMPK4PKEY5:AJMPK5PKEY
7、6:AJMPK6PKEY7:AJMPK7PKEY8:AJMPK8K1:MOVR0,#01H;将相应的数据赋给R0后跳转到EKEYSJMPEKEYK2:MOVR0,#02HSJMPEKEYK3:MOVR0,#03HSJMPEKEYK4:MOVR0,#04HSJMPEKEYK5:MOVR0,#05HSJMPEKEYK6:MOVR0,#06HSJMPEKEYK7:MOVR0,#07HSJMPEKEYK8:MOVR0,#08HSJMPEKEYXS:MOVSCON,#00H;显示子程序,采用同步移位寄存器CLR
8、TIMOVDPTR,#TABMOVCA,@A+DPTR;将相应数值的数码管显示数值送入SBUFMOVR5,#04H;共四位需要显示MOV41H,AMOVR0,#41HDISPLAY1:MOVA,@R0MOVSBUF,AJNBTI,$;是否传完了CLRTI;清除中断标志位INCR0DJNZR5,DISPLAY1MOVSCON,#50HRETD:;延时子程序MOVR7,#10HDELAY1:MOVR6,#0FFHDELAY2:DJNZR6,DELAY2DJN