单片机串口通讯实验报告文档格式.doc
- 文档编号:15502883
- 上传时间:2022-11-02
- 格式:DOC
- 页数:6
- 大小:53KB
单片机串口通讯实验报告文档格式.doc
《单片机串口通讯实验报告文档格式.doc》由会员分享,可在线阅读,更多相关《单片机串口通讯实验报告文档格式.doc(6页珍藏版)》请在冰豆网上搜索。
开始
置串口方式,设置波特率
置T1模式及常数
Y
开串口中断
接收完毕?
启动定时器1,串口接收开放
结束
清串口中断标志ES
设置波特率,启动定时器T1
设置串口方式
读键盘,调用按键去抖子程序
数据送串口
发送完毕?
单片机发送程序
读串口
数据送RAM
调用显示子程序
串口中断入口
中断返回
源程序代码:
ORG 0000H
AJMP START
ORG 0023H
AJMP SERVE
ORG 0050H
START:
MOV41H,#0H;
对几个存放地址进行初始化
MOV42H,#0H
MOV43H,#0H
MOV44H,#0H
MOVSCON,#00H;
初始化串行口控制寄存器,设置其为方式0
LCALLDISPLAY;
初始化显示
MOV TMOD,#20H;
设置为定时器0,模式选用2
MOV TL1,#0E6H;
设置1200的波特率
MOV TH1,#0E6H
SETB TR1;
开定时器
MOV SCON,#50H;
选用方式1,允许接收控制
SETB ES
SETB EA;
开中断
LOOP:
ACALL SOUT ;
键盘扫描并发送,等待中断
SJMP LOOP
SERVEJNBRI,SEND;
判断是发送中断还是接收中断,若为发送中断则调用
ACALL SIN ;
发送子程序,否则调用接收子程序
RETI
SEND:
CLR TI;
发送子程序
SIN:
CLR RI;
接受子程序
MOV SCON,#00H
MOV A,SBUF;
接收数据
LCALL XS;
子程序:
SOUT:
CLR TI;
清发送中断标志位
LCALL KEY;
调用判断按键是否按下子程序
MOV A,R0;
将按键对应的数字存入A
MOV SBUF,A;
输出按键数字给锁存
RET
KEY:
MOV P1,#0FFH;
将P1设置为输入口
MOV A,P1
CPL A;
将A内值取反
ANL A,#0FFH
JZKEY;
将A与FFH与后判断是否为0,若为0则表示无按键按下跳回KEY
LCALL D;
调用延时子程序消抖
MOV A,P1
CPL A
ANL A,#0FFH
JZ KEY
MOV B,A;
判断有按键按下,将值赋给B
KEY1:
MOV A,P1
ANL A,#0FFH
JNZ KEY1
LCALL D
MOV A,B
JB ACC.0,PKEY1;
依次判断A内数据每个位是否为1,并跳
JB ACC.1,PKEY2;
转到相对应位的子程序
JB ACC.2,PKEY3
JB ACC.3,PKEY4
JB ACC.4,PKEY5
JB ACC.5,PKEY6
JB ACC.6,PKEY7
JB ACC.7,PKEY8
EKEY:
RET
PKEY1:
AJMP K1
PKEY2:
AJMP K2
PKEY3:
AJMP K3
PKEY4:
AJMP K4
PKEY5:
AJMP K5
PKEY6:
AJMP K6
PKEY7:
AJMP K7
PKEY8:
AJMP K8
K1:
MOV R0,#01H;
将相应的数据赋给R0后跳转到EKEY
SJMP EKEY
K2:
MOV R0,#02H
K3:
MOV R0,#03H
K4:
MOV R0,#04H
K5:
MOV R0,#05H
K6:
MOV R0,#06H
K7:
MOV R0,#07H
K8:
MOV R0,#08H
XS:
MOV SCON,#00H;
显示子程序,采用同步移位寄存器
CLR TI
MOVDPTR,#TAB
MOVC A,@A+DPTR;
将相应数值的数码管显示数值送入SBUF
MOVR5,#04H ;
共四位需要显示
MOV41H,A
MOVR0,#41H
DISPLAY1:
MOVA,@R0
MOVSBUF,A
JNBTI,$ ;
是否传完了
CLRTI;
清除中断标志位
INCR0
DJNZR5,DISPLAY1
MOV SCON,#50H
RET
D:
;
延时子程序
MOVR7,#10H
DELAY1:
MOVR6,#0FFH
DELAY2:
DJNZR6,DELAY2
DJNZR7,DELAY1
RET
TAB:
DB 0BBH,09H,0EAH,6BH
DB 59H,73H,0F3H,0BH
DB 0FBH
本次实验中解决了如何判断数据是发送还是接收的问题和如何判断数据是否发送或接受完毕的问题,通过实验中的讨论和研究书上关于串行口的内容,我们通过中断标志位和循环很好的解决了这个问题。
这个实验让我认识到单片机中中断的巨大作用,它不仅可以省去很多繁琐的设计步骤,还可以帮助我们解决许多设计上的问题。
另外,我觉得这是一次较为综合性的实验,按键,消抖,数码管显示,定时,串行口中断,串行口数据的收发这些内容都在本次实验中体现出来了,也算是让我们进行了一个小复习,让我们站在一个更高的平台上去编写程序。
主要操作上的问题有两个:
问题:
PC机可以根据按键的按下显示相应的符号,但是不是预期的数字
原因:
PC机没有设置十六进制显示和十六进制接收
解决办法:
在与PC机相关的软件下方,在设置十六进制显示和十六进制接收的选项的前面打勾
输入的字符串只能在四个七段数码管的最右边的那个显示,其余三个处于随机状态。
其余三个数码管未给初值
在程序开始的地方加上数码管显示初始化语句
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 串口 通讯 实验 报告