作者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/m.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