关于AT89S52单片机串口通信功能的单片机系统的设(7)
2013-06-18 02:00
导读:bsp; ;对A取反 MOV P0,A ;将接收到的数据在LED上显示出来 CLR RI ;清除RI JMP SCAN ;跳转到SCAN,继续进行检测 TABLE: DB 7EH,47H,7FH,3AH ;键盘所对应的值的编码 DB 44H,6BH,6
bsp; ;对A取反
MOV P0,A ;将接收到的数据在LED上显示出来
CLR RI ;清除RI
JMP SCAN ;跳转到SCAN,继续进行检测
TABLE: DB 7EH,47H,7FH,3AH ;键盘所对应的值的编码
DB 44H,6BH,6FH,75H
DB 3DH,7BH,5FH,3BH
DB 6DH,4CH,73H,1BH
六 实验过程
实验过程中出现了几个问题,主要有:
按键排布发生了错误,行和列发生了颠倒,为了简单起见,将TABLE里的行和列的对应编码进行了对调,解决了问题
连接好调试时没有任何结果,单片机发送数据时串口调试助手没有反应,而串口调试助手发送数据时单片机也没有反应,经过仔细检查后,认定电路和程序都没有问题,最后怀疑是串口线的问题。检查后发现,使用的串口线两头的发送端和接收端是交叉的,而电路在设计时已经在电平转换芯片上进行了两个发送端和接收端的交叉,因此只有将串口线一端的发送端和接收端进行交换,再次调试时,结果正确。
但在后来的资料检索中发现通常串口线两端都是交叉连接的,便于在两个单片机或两个PC机进行串行通信这样的情况下使用,因此这次单片机的电路在设计时应考虑到这一点,在最后接输出端口时再进行一次发送端和接收端的交叉。
(科教范文网http://fw.NSEAC.com编辑发布)
在串口线改过之后进行调试时,发现两边进行通信时结果完全不对,后来经过检查发现串口调试助手的波特率没有设置,PC的波特率和单片机的波特率不相等,改称相同后结果正确。但由于编码的问题,PC收到的数据和串口调试助手发送的数据都只能是2位16进制数,否则识别的都是错误的。
七 总结
以上就是本次实验的
总结报告,整个实验过程基本完成了设计任务,但仍有很多需要改进的地方,比如通信时只能传送一个2位16进制数,显示部分不够完善等,还可以进一步拓展,比如进行两个或多个单片机之间的通信等。
通过这次实验,我对单片机有了一个比较全面的认识,掌握了基本的概念和使用方法,并通过实际动手制作,加深了理解,增强了进一步学习的兴趣。应当认识到,学习单片机这才刚刚入门,我会继续努力,争取学到更多的知识。