分类:
2011-02-25 11:48:39
我感觉你上面程序错啦! TL1=TH1=(-12000000/12/32/9600); //计数器1赋初值 (错了) 应该是TH1=TL1=256-[(2^1)*12*(10^6)/(9600*32*12)] 你程序中的波特率为9600b/s吧? 你应该去查下手册,现弄明白从波特率到初值的转换。 初值=256-【fosc*(SMOD+1)/(384*波特率)】(定时器1模式2,串行口1) 我的理解。 ================================================================ |
我想应该是这样 256的二进制是多少? 1 0000 0000 对于八位来说为0 而负值相当于0 - (正值) 所以,把减法计算丢给了编译器 ================================================================ 回复于:2010-06-23 15:09:09
|
chinaunix网友2011-03-05 13:17:53
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com