作者lion21 (好歹我也是个夕阳武士)
看板ASM
标题Re: [问题] 8051按键控制问题
时间Thu Oct 1 01:38:38 2015
※ 引述《chlb (微笑天使)》之铭言:
: 想请问一下
: 我使用keil c写一个按键控制程式
: 我有一个0v,5v的控制讯号,想要让两个led交互亮
: 动作是按键1按下时即开始侦测,输入第一次0v时,led1 on,led2 off
: 接着输入5v,led1 off,led2 off
: 再下来输入0v,led1 off ,led2 on
: 接着输入5v,led1 off,led2 off
写个逻辑给你参考
array []={.......}
bit temp1;
char out=0;
main()
{
temp1=in1;
while(1)
{
if( in1 != temp1)
{
out= ++out % 4
LED=array [ out ];
}
delay();
temp1=in1;
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.25.153.59
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/ASM/M.1443634720.A.0E1.html
※ 编辑: lion21 (114.25.153.59), 10/01/2015 01:40:42
※ 编辑: lion21 (114.25.153.59), 10/01/2015 01:53:32
1F:推 chlb: 请问这样LED要怎麽宣告,只有两颗LED灯占两个脚位 10/01 12:28
2F:→ lion21: 可以分开输出比如 LED1=(array[out]&1)?1:0; 10/01 12:57
3F:推 chlb: 值变换而不是交替变换 10/01 15:08
4F:→ chlb: 我现在的问题是用这个方法跟原本的方法做都会变成0V时,一 10/01 15:08
5F:推 chuegou: switch(array[out]){ 10/02 00:44
6F:→ chuegou: case 1: LED0=ON; LED1=OFF; 10/02 00:45
7F:→ chuegou: case 2: LED0=ON; LED1=OFF; 10/02 00:46
8F:→ chuegou: case 3: LED0=OFF; LED1=ON; 10/02 00:47
9F:→ chuegou: case 4: LED0=ON; LED1=ON; 10/02 00:48
10F:→ chuegou: } 加这段就好了阿 10/02 00:49
11F:→ lion21: break; 10/02 09:20
12F:推 chuegou: 感谢楼上...我昨天晚上在打啥... 10/02 23:16
13F:推 sunnysmart: 感谢楼上二位 :D 10/04 00:36