Re: [問題] 8051按鍵控制問題

看板ASM作者 (好歹我也是個夕陽武士)時間8年前 (2015/10/01 01:38), 8年前編輯推噓5(508)
留言13則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《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://www.ptt.cc/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

10/01 12:28, , 1F
請問這樣LED要怎麼宣告,只有兩顆LED燈佔兩個腳位
10/01 12:28, 1F

10/01 12:57, , 2F
可以分開輸出比如 LED1=(array[out]&1)?1:0;
10/01 12:57, 2F

10/01 15:08, , 3F
值變換而不是交替變換
10/01 15:08, 3F

10/01 15:08, , 4F
我現在的問題是用這個方法跟原本的方法做都會變成0V時,一
10/01 15:08, 4F

10/02 00:44, , 5F
switch(array[out]){
10/02 00:44, 5F

10/02 00:45, , 6F
case 1: LED0=ON; LED1=OFF;
10/02 00:45, 6F

10/02 00:46, , 7F
case 2: LED0=ON; LED1=OFF;
10/02 00:46, 7F

10/02 00:47, , 8F
case 3: LED0=OFF; LED1=ON;
10/02 00:47, 8F

10/02 00:48, , 9F
case 4: LED0=ON; LED1=ON;
10/02 00:48, 9F

10/02 00:49, , 10F
} 加這段就好了阿
10/02 00:49, 10F

10/02 09:20, , 11F
break;
10/02 09:20, 11F

10/02 23:16, , 12F
感謝樓上...我昨天晚上在打啥...
10/02 23:16, 12F

10/04 00:36, , 13F
感謝樓上二位 :D
10/04 00:36, 13F
文章代碼(AID): #1M31uW3X (ASM)
討論串 (同標題文章)
文章代碼(AID): #1M31uW3X (ASM)