文号
t67313
阅读
9729
回复
14
收藏
7
【求助】89C52的测速程序
2014/09/27
IP:北京
做了一个单片机控制的低压(75V)蛋蛋加速器,12级。调试加速器程序的时候没有测速器,所以没法调试。无奈51单片机只学了点皮毛,求助好心人帮助。
求帮忙写一个蛋蛋测速程序。最好用C语言(有注释最好了)。
系统板:JZ-M2
单片机:89C52
光电开关:3DV5G
LCD:12864
功能:1 测速(1m/s~300m/s)
           2 动能(蛋蛋重1.08g,采用6.35mm轴承钢珠) QQ图片20140927133309.jpg
14
12年3个月前IP:天津
722724
1楼
我的思路就是第一个光电对管接到单片机的外部中断上,设置成下降沿触发,子弹进入接收管失去光产生一个下降沿,在中断里打开重置定时器并开始定时器
然后第二个光电管接领一个断,服务程序里面关掉定时器,主程序读取时间就可以计算速度了
现在写大概会比较费时间吧。。可以按着这个思路写写试试,应该不会太复杂吧
引用
评论
12年3个月前IP:广东
722757
2楼
引用
评论
12年3个月前IP:北京
722816
3楼
引用 baiwenglong:
我的思路就是第一个光电对管接到单片机的外部中断上,设置成下降沿触发,子弹进入接收管失去光产生一个下降沿,在中断里打开重置定时器并开始定时器
然后第二个光电管接领一个断,服务程序里面关掉定时器,主程序读取时间就可以计算速度了
现在写大概会比较...
我的问题是不知道外部中断的指令怎么写。。。
引用
评论
12年3个月前IP:北京
722817
4楼
引用 向钱看向厚赚:
https://www.kechuang.org/t/41117
谢谢。我慢慢学习
引用
评论
12年3个月前IP:广东
722824
5楼
你这个例子可以用超声波的算法。

第一个灯检测到有东西通过时拉高,第2个灯检测有东西通过时下拉低,这样就有一段时间的高电平。

核心就是,检测到高电平就开计时器在开外部中断。
引用
评论
12年3个月前IP:浙江
722921
6楼
呃,为啥不用系统时钟,,当上升沿时记录系统时钟t1,当下降沿时记录系统时钟t2,子弹长度为s,那速度v=s/『(t2-t1)×机器周期』
引用
评论
12年3个月前IP:北京
722937
7楼
引用 fuwen0202:
呃,为啥不用系统时钟,,当上升沿时记录系统时钟t1,当下降沿时记录系统时钟t2,子弹长度为s,那速度v=s/『(t2-t1)×机器周期』
代码不会写。。。只会简单的高低电平出入输出操作。。。
引用
评论
12年3个月前IP:北京
722945
8楼
引用 wjd_213:
我的问题是不知道外部中断的指令怎么写。。。
看了一下教学视频,知道怎么中断了。。。不过好像电路有些问题。还有就是12864的液晶显示还不会用,慢慢来吧。
引用
评论
12年3个月前IP:北京
722952
9楼
引用 fuwen0202:
呃,为啥不用系统时钟,,当上升沿时记录系统时钟t1,当下降沿时记录系统时钟t2,子弹长度为s,那速度v=s/『(t2-t1)×机器周期』
知道怎么用定时器了。感觉比中断更好用一些。谢谢提示。
引用
评论
12年3个月前IP:未同步
722968
10楼
摆渡文库里看到过,不知道现在还有没有了,曾经我也想自己D个,后来还是花两百买了台,多方便………懒人请轻拍。。。^^
引用
评论
12年2个月前IP:云南
724305
11楼
找本单片机的书,把中断部分看完。两天就会了。
我做过一个是,INT0开计时器,INT1关计时器,读出时间计算速度。需要处理一些小细节。
液晶这个你要找数据手册看看,这个写进数据要按数据手册里的弄,不用花太多心思的。

另外,搞这些要戒浮躁的,忘了时间就学会了。
引用
评论
12年2个月前IP:北京
724336
12楼
引用 leeye:
找本单片机的书,把中断部分看完。两天就会了。
我做过一个是,INT0开计时器,INT1关计时器,读出时间计算速度。需要处理一些小细节。
液晶这个你要找数据手册看看,这个写进数据要按数据手册里的弄,不用花太多心思的。

另外,搞这些要...
程序是会了。又发现光电信号电路不行。。。快崩溃了
引用
评论
12年2个月前IP:云南
724359
13楼
引用 wjd_213:
程序是会了。又发现光电信号电路不行。。。快崩溃了
搜相应的数据手册,一般数据手册里的电路都能用。这个大概要加一个电压比较器的
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的