欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

小弟我是大一新生 小弟我有思路但是不会写程序 求教 急

更新时间: 2014-01-05 03:14:26 责任编辑: Author_N1

 

我是大一新生 我有思路但是不会写程序 求教 急啊!!!

我是大一学生,刚接触了2周单片机,老师搞了个竞赛,现在要求是有电机A,老师给定电机B,电机B装有叶片(匀速转动,可以改变转速),我要使我的电机A可以与它的电机保持同转速(最好是相位都一样,我没打算做),在开始前和达到相同速度之后均以灯光方式表示。

用的芯片是AT89S51;
p0.0、p0.1是两个红色led,低电平亮;p2.1和p2.0是两个按动按钮,按下为低电平;p2.4是电机,低电平运行;p2.5是一个红外接受管,发射管始终发射,用来测叶片经过次数;p2.3是另外一套红外,用来测我自己电机的叶片(这红外就等于是一个光电门);复位电路和晶振(12mhz)都装好了。

我现在考虑:
1.我要电机可以匀速,我就给p2.4端口高低电平交替变换的方波,通过改变高低电平时间的比例来使它在不同速度稳定(要用计时器t0)
2.我要同时使用r1和r2来记录一定时间内(用计时器t1)叶片转过次数(p2.3和p2.5由高变低再变高的过程),通过比较来确定转速,以此来达到同转速的效果(这里要循环,但是我没想好怎么跳出循环,因为转速相同不好操作)
3.最后就是怎么加上灯光的提示,特别是最后的。


现在就是这样,第一天过去了,上午把板子焊好了,一下午就在研究怎么写代码,之前老师讲过一点汇编,所以最好有哪位大神可以给我把这个程序写一下啊,是在不行用c也可以啊,有说明就更加棒了!

明天还有一上午,求各路大神一起帮帮我啊!!
--参考方法--
周末大家都玩去了,没人在的,你自己想办法了,定时器和外部中断你学会用法了就知道该怎么写了。才上两周课就要焊板写程序感觉急燥了点。
--参考方法--
电机B的转速是匀速吗,要是匀速,你能测出来转速,直接在程序中使用定时器来让电机A转动即可
--参考方法--
1、简单地看了一下你的板子,没有发现电机驱动的电路,我先对你的电机A能转动质疑。
2、检测电机B的转动(无论是否匀速,都不要紧的),其实就是脉冲检测,获得当前脉冲的周期。这个可以先把定时器0设置为1ms或者更小的定时,然后使用外中断0检测脉冲的下降沿来触发定时器计数的开始和停止,将周期保存到一个变量如MotorB_Cycle中。
3、检测你的电机A对应的光电对管的脉冲周期,(使用外中断1和定时器1,等同于2),保存在MotorA_Cycle中,使用PID算法,通过调节电机A的输入端的PWM占空比来对电机A进行调速,将MotorA_Cycle的值尽量靠近MotorB_Cycle的值。

这个是我的思路,如果大家对这里有质疑的话可以提出来,一起讨论一下。
--参考方法--
个人感觉这个题目对新手来说太难了,很多单片机的熟手都未必能做得下来,或者说我把题目想得太难了?
有时间的话我会尝试做一下这个题目,印证我的想法。
--参考方法--
引用:
1、简单地看了一下你的板子,没有发现电机驱动的电路,我先对你的电机A能转动质疑。
2、检测电机B的转动(无论是否匀速,都不要紧的),其实就是脉冲检测,获得当前脉冲的周期。这个可以先把定时器0设置为1ms或者更小的定时,然后使用外中断0检测脉冲的下降沿来触发定时器计数的开始和停止,将周期保存到一个变量如MotorB_Cycle中。
3、检测你的电机A对应的光电对管的脉冲周期,(使用外中断1和定时器1,等同于2),保存在MotorA_Cycle中,使用PID算法,通过调节电机A的输入端的PWM占空比来对电机A进行调速,将MotorA_Cycle的值尽量靠近MotorB_Cycle的值。

这个是我的思路,如果大家对这里有质疑的话可以提出来,一起讨论一下。

支持

只要能知道流程 程序就容易写
--参考方法--
多谢版主大大支持
--参考方法--

基本上可以这样:

你设置一个有符号数据类型的计数器变量,用来保存和比较两个电机转动的周数。

你要做的,是不断地增减比较变量的值。

当检测到 A 转动一周,变量加 1;检测到 B 转动一周,变量减 1。

当变量绝对值在 0 和 1 之间跳变时,说明转速相同。

当绝对值大于某一个阈值时,说明相差太大,需要调整。

如果是正值,你就要提高电机 B 的供电电压,反之亦反。改变电压后,变量清零,进入新一轮检测。
--参考方法--
为什么不用 C,汇编看不懂
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:14:26
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/19940/
本文WWW.DOC100.NET DOC100.NET版权所有。