标题: 求助:关于按键控制流水灯速度(频率)的问题 [打印本页]
作者: az_noodle 时间: 2016-7-8 21:36
标题: 求助:关于按键控制流水灯速度(频率)的问题
我用的汇编,如果要添加P3.2和P3.3分别为一个按键控制增加流速(按一次固定增加多少ms,有最大值)和减少流速(按一次固定减少多少ms,有最小值),怎么设计?我用的两个灯一组循环移动,求大神解答一下,谢谢了!!!
ORG 0000H
LJMP START
ORG 0030H
START: MOV A,#0FCH ;LED灯初值,两个灯点亮(11111100)
LOOP: MOV P1,A ;P1口送控制值
LCALL DELAY ;延时
RL A ;移位
SJMP LOOP ;循环
DELAY: MOV R3,#200 ;延时大概100毫秒
DLY: MOV R4,#250
DJNZ R4,$
DJNZ R3,DLY
RET
END
怎么添加对应的子程序按键控制~
作者: l912094869 时间: 2016-7-9 05:46
求大神解释!
作者: zl2168 时间: 2016-7-9 07:41
本帖最后由 zl2168 于 2016-7-9 07:42 编辑
实例7 键控流水循环灯
先Proteus仿真一下,确认有效。
以上摘自张志良编著《80C51单片机Proteus仿真设计实例教程》清华大学出版社ISBN 978-7-302-41682-1
书中电路和程序设计有详细说明,程序语句条条有注解。
作者: az_noodle 时间: 2016-7-9 11:50
非常感谢,仿真很成功,但是如果有程序就再好不过了,书的话我看看图书馆有没有?初学者就不知道怎么写按键控制流速的问题~
作者: az_noodle 时间: 2016-7-9 11:52
非常感谢~但是有程序就最好了~书的话看看图书馆有没有~就是键控流速不知道怎么写才好~
作者: az_noodle 时间: 2016-7-9 12:26
非常感谢,但是程序按键控制流速的程序怎么样写?
作者: az_noodle 时间: 2016-7-9 12:37
这个实例貌似要不就是一直按着不放,要不就看准在流水灯最后按才有增加和缩短的效果(每循环一次),能不能直接在中途任意时刻按一下就是增加和缩短的?
作者: zl2168 时间: 2016-7-9 12:57
程序在书中
作者: zl2168 时间: 2016-7-9 12:57
任意时刻
作者: az_noodle 时间: 2016-7-9 13:12
按了很多次反应不大啊,而且每循环一次才增加和缩短,要一直按着才变化明显,我想是按一下任意时刻直接加速减速(不是循环一次才加速减速)这样按键才起到最好的调控效果~就是这种不会弄~求教了~
作者: zl2168 时间: 2016-7-9 14:38
本帖最后由 zl2168 于 2016-7-9 14:54 编辑
① 8个发光二极管从上到下(K0断开)依次循环点亮,每次点亮时间约为0.5秒。
② 按下K0,流水方向从下至上滚动点亮。
③ 按下K1(K2断开),每循环一次后间隔时间缩短0.1秒,直至最短间隔0.1秒后保持不变。
④ 按下K2(K1断开),每循环一次后间隔时间增加0.1秒,直至最长间隔1秒后保持不变。
⑤ K1、K2同时断开或同时闭合,保持原滚动间隔时间不变。
初设0.5秒,以后是每循环一次后间隔时间缩短或增加0.1秒,注意“每循环一次”,然后变化。
缩短或增加0.1秒,你有感觉吗?
如果嫌慢,按住不放或锁定按键(点击按键右侧小红点)。
这是仿真,象征性的。你要什么效果,都可修改啊!你们学单片机,就是学修改,学好了,就自己能创造了!
例如,你要每次缩短或增加0.2秒,按2次就玩完了,有劲吗?按5次才稍稍有劲些。
再例如,你要每次缩短或增加0.05秒,那就更没感觉了。
脑子想想,什么叫仿真?什么叫象征性?
实际上,单片机都可做到,你怎么想,怎么实现,问题是有没有必要,好玩不好玩。
作者: coliby 时间: 2016-7-9 14:46
http://wenku.baidu.com/link?url= ... ONpjdgCACqajqQXhG5a
作者: yzwzfyz 时间: 2016-7-11 01:18
写程序,主要是构思!
速度取决于你的延时,
将延时时间做成活的,即可达成目的.
所以最好用中断做延时.在中断中改更延时的时常数.(在你需要改变速度的时候,如按下了键)
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |