串行口通信实验
铜仁学院
实验报告
课程名称: 单片机原理与接口技术 专 业: 信息工程
班 级: 2011级
学生姓名: 王浩 刘军
铜仁学院实验报告
课程名称:单片机原理与接口技术 实验时间:3月19日
成绩评定: 实验地点:2602教室
【实验名称】
串行口通信实验
【实验目的】
掌握单片机串行口工作方式的设定及串行通信程序设计。
【实验内容及原理】
自发自收实验。实验电路如图(a)所示。编程通过串行口循环发送数据00H~FFH,并自收回来在LED显示出来。
注意:做本实验和做下面的实验二时,在下载程序时,TXD和RXD两信号不要短接,程序下载到单片机后,再将接PC机的RS-232电缆拔掉,然后将TXD、RXD短接。
【参考程序流程图】
【汇编程序代码】
org 00h
mov scon, #10010000B
mov a, #00h
start: inc a
;设置串行口方式2工作
mov sbuf, a ;将A中的内容发送
wait0: jnb ti, wait0 ;等待发送完成
clr ti ;清发送中断标志
;等待接收完成
;从接收缓冲器读入数据
;送到P1口显示 wait: jnb ri, wait mov a, sbuf mov p1, a
clr ri
call delay
ljmp start
delay: mov r0, #0
mov r1, #0
lp: djnz r1, lp
djnz r0, lp
ret
end
【测试情况】 ;清接收中断标志 ;延时 ;延时子程序
本次实验中解决了如何判断数据是发送还是接收的问题和如何判断数据是否发送或接受完毕的问题,通过实验中的讨论和研究书上关于串行口的内容,我们通过中断标志位和循环很好的解决了这个问题。这个实验让我认识到单片机中中断的巨大作用,它不仅可以省去很多繁琐的设计步骤,还可以帮助我们解决许多设计上的问题。
另外,我觉得这是一次较为综合性的实验,数码管显示,定时,串行口中断,串行口数据的收发这些内容都在本次实验中体现出来了,也算是让我们进行了一个小复习,让我们站在一个更高的平台上去编写程序。
主要操作上的问题有两个:
问题:PC机可以根据按键的按下显示相应的符号,但是不是预期的数字 原因:PC机没有设置十六进制显示和十六进制接收
解决办法:在与PC机相关的软件下方,在设置十六进制显示和十六进制接收的选项的前面打勾 问题:输入的字符串只能在四个七段数码管的最右边的那个显示,其余三个处于随机状态。
原因:其余三个数码管未给初值
解决办法:在程序开始的地方加上数码管显示初始化语句