标题: 单片机怎么控制led灯长亮 熄灭 短亮,可以用按键结合 求思路 [打印本页]

作者: 小蒲蒲    时间: 2020-11-23 15:33
标题: 单片机怎么控制led灯长亮 熄灭 短亮,可以用按键结合 求思路
用一个按键作为输入,采用航海灯语方式,LED 灯跟随按键发送摩斯码,按键短按、长按、 抬起,控制 LED 灯利用短亮(.)、长亮(_)、熄灭( )的形式,发送字符信息,由字符组 成单词或短语,进而发送完整信息。


作者: 51hei团团    时间: 2020-11-23 15:53
由于论坛不允许直接要代码,你参考一下这个吧,长短按键思路很不错http://www.51hei.com/bbs/dpj-198527-1.html
作者: mvwtest    时间: 2020-11-23 15:56
單片機第一課應該就是控制LED,真不知道。。。。唉
作者: 一只废包    时间: 2020-11-23 16:12
亮 延时 灭 延时
作者: 压着我头发啦    时间: 2020-11-23 17:16
按键短按、长按、单击 抬起的程序直接复制粘贴就可以了,然后给个变量用于菜单,每个菜单放不同LED现象和串口信息。需要初始化串口,写个延时。         新手,仅供参考
作者: liuzx66    时间: 2020-11-23 18:23
看他说的挺复杂,其实就是一个按键控制LED的问题。
按下亮,松开灭。
就是这么简单
作者: 杨雪飞    时间: 2020-11-23 20:33
liuzx66 发表于 2020-11-23 18:23
看他说的挺复杂,其实就是一个按键控制LED的问题。
按下亮,松开灭。
就是这么简单

完美,看他说的不就是个发报机的嘀嘀嗒嗒么,还要啥单片机……
作者: YUANYUXING    时间: 2020-11-23 20:35
楼主想的太多了吧,这么简单的不需要用单片机的,直接用自复式开关就可以实现了

作者: 666662222222    时间: 2020-11-24 10:06
uint timer0_count=0;                                //计数次数,由于定时器的本质是计数器  void timer0_init(void)        //定时器0初始化 {         TMOD=0x01;                        //设置定时器0的定时方式         TH0=(65536-50000)/256;        //设置初值,相当于每50毫秒进入一次中断函数         TL0=(65536-50000)/256;         EA=1;                                //开启总中断         ET0=1;                                //开启定时器0中断         TR0=1;                                //启动定时器0中断 }  void timer0_interrupt(void)interrupt 1                //定时器0的中断函数 {         count++;                                                //每加一次代表过了一个50毫秒         if(count==220)                                        //代表过了11秒         {                 //然后打开LED2;         }         //之后的15秒钟的自己就OK了吧 }
作者: vhn    时间: 2020-11-24 10:31
按键短按、长按、单击 抬起的程序直接复制粘贴就可以了,然后给个变量用于菜单,每个菜单放不同LED现象和串口信息。需要初始化串口,写个延时。
作者: yyyy99    时间: 2020-11-24 12:05
检测开关按下之后,延时再检测一次,应该就可以达到长按的效果了




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