关于单片机延时设置的问题

来源:互联网 发布:java web运行原理 编辑:程序博客网 时间:2024/05/16 07:56

今天把按键中断和按键查询都学习了一下,

 

其中碰到一个很棘手的问题就是按键去抖

 

我写了一个程序,通过按下按键发出指令来让单片机向PC机发送一串字符,每按一次,就发送一次字符串

 

第一次是用中断写的,很不稳定,老是按下一次键就发送出几条字符串

 

第二次是用查询写的,稳定性比中断好,而且稳定性跟我设的延时有很大的关系,设的好的话结果就很漂亮,不好的,结果还是很乱,

 

感觉这完全有一种碰运气的味道,对于这个延时时间长短的设置,我完全没有概念。要研究一下

 

 

与小宋老师的交流:

 

 snfqbfhv  9:55:37
关于单片机里面延时的设置,您有什么心得没有?像按键去抖里面的去抖延时, 串口通信里面收发数据时的延时等等,我在做的过程中发现要是没有设好的,要么没结果,要么结果很奇怪
小宋老师  9:56:02
肯定了,延时必须要准才行,最好定时器延时
snfqbfhv  9:56:40
我就是有时候不知道这个时间到底应该设在一个什么范围内,
snfqbfhv  9:56:47
经常就是要试半天 
小宋老师  9:56:52
串口通信是波特率
小宋老师  9:56:59
按键区都10ms
snfqbfhv  9:57:26
还有其他的一些延时小常识不,
小宋老师  9:57:33
你GOOGLE
snfqbfhv  9:57:47
哦,好的
与毛老师的交流;
 snfqbfhv  9:56:04
关于单片机里面延时的设置,您有什么心得没有?像按键去抖里面的去抖延时, 串口通信里面收发数据时的延时等等,我在做的过程中发现要是没有设好的,要么没结果,要么结果很奇怪
毛玉蓉13593820528  9:56:54
c语言里面就是for循环就好了
毛玉蓉13593820528  9:57:14
一般按键都是几十毫秒
毛玉蓉13593820528  9:57:18
的延时
snfqbfhv  9:58:25
哦,就说根据实际板子的情况还是要自己调试一下的
毛玉蓉13593820528  9:58:40
现在的按键都做得很好了
毛玉蓉13593820528  9:58:53
延时时间都很短
snfqbfhv  9:59:01
这个几十毫秒,范围还是有些大啊
毛玉蓉13593820528  9:59:02
我们做一般没调试
毛玉蓉13593820528  9:59:30
因为都是单击
毛玉蓉13593820528  9:59:34
性能都还可以
snfqbfhv  9:59:46
我做的时候老因为这个延时的问题没结果,或乱码
snfqbfhv  10:01:07
像昨天做的用按键查询给PC发字符串,去抖的时候如果延时不设好的话,就会没结果,或是显示的字符串不全
毛玉蓉13593820528  10:01:37
不会吧
毛玉蓉13593820528  10:01:41
你不做延时呢
毛玉蓉13593820528  10:02:02
我觉得不是按键的延时问题
snfqbfhv  10:02:20
我是按一次,发一次,不做就是按一次,发很多次
snfqbfhv  10:02:34
按键不是要去抖吗?
毛玉蓉13593820528  10:03:05
为什么要 去抖动是因为机械方面的原因,不是程序要求
毛玉蓉13593820528  10:03:42
你按键按了之后应该有个标志位的,执行完后记得把这个标志位清掉
snfqbfhv  10:04:10
但是按键比较多的时候一般就是通过软件清零啊,
snfqbfhv  10:04:45
软件去抖
毛玉蓉13593820528  10:04:46
不管多少个按键,每个按键都有个标志位,应该
毛玉蓉13593820528  10:04:57
不是去不去斗的问题
毛玉蓉13593820528  10:05:01
你检查一下程序
原创粉丝点击