打印

频率计设计问题

[复制链接]
1049|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
秋天落叶|  楼主 | 2012-6-27 22:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在的想法是:用片内的两个定时/计数器,一个做定时器,一个做计数器计外部信号的脉冲数,当定时器计满时在中断子程序中停止计数器,然后将计数器的模式和初值置成串口通信所需值,最后读出TH0和TL0中的值并在串口调试助手中显示。
问题1:显示TH0、TL0时会多出一些乱码,是不是多读了一些数据?
问题2:如何将TH0、TL0中的数据合并,并转换成十进制数?
问题3:有没有什么更好的办法?

相关帖子

沙发
无冕之王| | 2012-6-27 22:36 | 只看该作者
1、没必要转换进制;
2、出现乱码的原因多半是单片机这端你送的是二进制,而PC端那边你却用ASCII去接收而引起的;
3、另一种可能性是两边的波特率校验位的参数不匹配

使用特权

评论回复
板凳
yybj| | 2012-6-27 22:49 | 只看该作者
1)乱码是啥意思?脉冲计数,只可能数值偏大,那么需要对输入脉冲进行滤波,滤掉脉冲尖毛刺。
2)在进行脉冲计数前,需要先清零TH0和TL0;或者,记录初始值。最后,用终值减去初始值,得到实际的计数值。
3)当脉冲频率超快时,需要外接计数器进行分频;
4)当脉冲频率奇慢时,应该采用固定的定时时间,在这个定时时间内,统计脉冲数。

使用特权

评论回复
地板
火箭球迷| | 2012-6-27 22:50 | 只看该作者
显示16进制还多数据吗
数字本无进制 你当成10进制就是10进制 你当成16进制他就是16进制

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:落叶很美

138

主题

3044

帖子

1

粉丝