标题: 按键编程 [打印本页]

作者: li3809    时间: 2013-12-18 00:54
标题: 按键编程
按键编程
一、在流水灯实验中加一按键暂停功能,一按暂停,一按开始。
二、K1~K4四键控制流水灯,K1按一下流水灯循环一次,K2按一下流水灯循环二次,K3按一下流水灯循环三次,K4按一下流水灯循环四次。
那位好心大神帮忙编下,请发送到984120912@qq.com。谢谢.

IMG_20131218_002309.jpg (412.64 KB, 下载次数: 89)

IMG_20131218_002309.jpg

作者: xzxlove    时间: 2013-12-18 10:55
给你说下流程吧,自己编出来才能进步:
    1、首先确定是按下后响应还是松开按键后响应,建议松开按键后响应。
    2、有一个按键扫描函数key1_scan();定义一个标志位bit key1,如果key1按下则置位,响应后清零,如果key1按键接的是P0.0口,按键按下后为低电平,则进行判断
                                       if(p0.0不等于高电平)//key1按下
                                        {
                                                    key1 = 1;
                                         }
    3、按键消抖10~20ms,在程序中建议不要使用延时,可以定义一个变量作为计时器unsigned char tim10ms,在定时器中断中进行计时if(key1 = 1){ tim10ms++;},主循环查询。
                  if(tim10ms >= 15) { if(p0.0为高电平){ 流水灯循环函数;key1 = 0;tim10ms = 0;}}
   4、流程已经很清楚了,自己编吧,按键程序是基础程序,最好自己编,这样才有进步。可根据上面的流程,结合自己的电路和IC编吧。
作者: admin    时间: 2013-12-19 00:48
楼上的回复很精彩
作者: 彬Lsl    时间: 2017-4-17 08:36
新手:按键按下响应与松开按键响应有什么区别
作者: 北语沉默    时间: 2017-4-17 21:50
哦哦,其实可以用的,小伙子想法不错
作者: 北语沉默    时间: 2017-4-17 22:20
不过小惠子做的确实可以哦,继续加油啊,加油,第一就是你
作者: 北语沉默    时间: 2017-4-17 22:20
其实成功就在眼前,万岁吗万岁
作者: zl2168    时间: 2017-4-17 22:38
彬Lsl 发表于 2017-4-17 08:36
新手:按键按下响应与松开按键响应有什么区别

按键按下响应与松开按键响应的区别
实例5  4不同方式键控信号灯
先Proteus仿真一下,确认有效。
实例5 不同方式键控灯.rar (31.72 KB, 下载次数: 12)

以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil C和Proteus》清华大学出版社ISBN 978-7-302-41682-1.书中电路和程序设计有详细说明,程序语句条条有注解。

作者: 51Lovers    时间: 2017-4-17 22:45
扫描方式时,按下后响应会影响程序的流程,原因是每次按键识别后,都要等待按键释放,程序处理原地死循环,这就是两者间的区别。想要按下后响应就要采用中断方式,识别后要关中,或设置标识位,其实关中后何时开中也很讨厌。
作者: maidezhu    时间: 2017-4-18 00:56
定义下开关然后写下流水灯的顺序然后延时下就可以得到你想要的这个了。
作者: 彬Lsl    时间: 2017-4-18 16:01
zl2168 发表于 2017-4-17 22:38
按键按下响应与松开按键响应的区别
实例5  4种不同方式键控信号灯
先Proteus仿真一下,确认有效。

程序确定有效?

作者: zl2168    时间: 2017-4-18 23:01
当然咯,我在本站回帖全部有效,因为可以Proteus仿真确认有效,不信,去操作随帖上传的Proteus仿真DSN电路,验证一下!
作者: zl2168    时间: 2017-4-18 23:03
彬Lsl 发表于 2017-4-18 16:01
程序确定有效?

当然咯,我在本站回帖全部有效,因为可以Proteus仿真确认有效,不信,去操作随帖上传的Proteus仿真DSN电路,验证一下!不过,仿真电路和Hex文件能在清华出版社网站免费下载,程序源代码只能到书上看了。
作者: 彬Lsl    时间: 2017-4-19 08:26
zl2168 发表于 2017-4-18 23:03
当然咯,我在本站回帖全部有效,因为可以Proteus仿真确认有效,不信,去操作随帖上传的Proteus仿真DSN电 ...

那可否问你个问题
作者: 曲终人未散    时间: 2017-4-19 10:11
正好在学习这部分,受教了
作者: quar    时间: 2017-4-19 19:34
重复一下
作者: zl2168    时间: 2017-4-19 20:13
彬Lsl 发表于 2017-4-19 08:26
那可否问你个问题

可以啊!简短点,我看了长程序就烦,因此,我基本不看别人的程序。
作者: zxdvw    时间: 2017-4-19 22:24
二楼的回答很详细了。
作者: 云端之上    时间: 2017-11-5 11:05
xzxlove 发表于 2013-12-18 10:55
给你说下流程吧,自己编出来才能进步:
    1、首先确定是按下后响应还是松开按键后响应,建议松开按键后 ...

写的很详细,
作者: 冷月丨花魂    时间: 2017-11-5 19:25
帮你顶顶
作者: ruanhua    时间: 2017-11-6 12:24
写的很详细,谢谢
作者: 他说的细水长流    时间: 2017-11-6 12:53
   学习一下下  





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1