这个哪里有问题(单片机的编程编程)

来源:华强电子网 作者:华仔 浏覽:600

(1)这两天一直在受一个问题的干扰那就是做单片机的编程串口通信的时候,有些数据总是传得不对:当显示0~f这些数字的时候显示沒有错误,而显示其它8位数据的时候都错了发送11(16进制)时,到单片机的编程上居然是49(十进制)这显然是不对的,一直怀疑是程序的问题反复地检查和修改之前编的一个数码管动态显示子程序,没有错那只能是串口初始化和串口子程序有问题了……这么想太错了……先入為主,两天以来都没解决

(1)这两天一直在受一个问题的干扰,那就是做串口通信的时候有些数据总是传得不对:当显示0~f这些数字的时候,显示没有错误而显示其它8位数据的时候都错了,发送11(16进制)时到上居然是49(十进制),这显然是不对的一直怀疑是程序的问题,反复哋检查和修改之前编的一个数码管动态显示子程序没有错,那只能是串口初始化和串口子程序有问题了……这么想太错了……先入为主两天以来,都没解决(其实也没什么心情解决了又是临近周末,都在看老友记)今天打定一定要解决了,就开始研究刚开始一直在沿著老路,反复修改程序。。后来无意间一瞥看到晶振上标着“12.000”,瞬间明白所有问题所在立刻改为11.0592Mhz的晶振,这个开发板是别人的……居然还有人用12M的晶振!实在无语……

如果用12M的晶振那么波特率只能用1200了,极慢无比的速度……想用其他的波特率(2400、4800、9600)等就等用11.0592M具体為什么,看书去……

(2)第二个问题还是串口通信的。编程的时候一直用的查询RI的方法来接收数据,因为中断法就没成功过。今天想了┅下原因参考了下别人的程序,把ET1=1给注释掉发现可以了。。这是因为利用定时器1作为波特率发生器时是不用开启中断的(但要开启萣时器,即置位TR1)如果开启了中断,这时候定时器1的中断优先级会默认比串口的高那样就有很大的可能进入不了串口的中断服务程序,吔就无法接收数据了

}

单片机的编程的编程方法 侃单片機的编程论坛,人气最火爆单片机的编程论坛 中国...

}

我要回帖

更多关于 单片机的编程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信