久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 請教16個獨立按鍵控制16個LED燈互鎖功能程序 [打印本頁]

作者: QDMLIT    時間: 2024-6-23 14:16
標題: 請教16個獨立按鍵控制16個LED燈互鎖功能程序
請教按圖,16個獨立按鍵控制16個LED燈,實現互鎖功能,按下K1按鍵后放開LED1點亮,按下K2按鍵后放開LED2點亮LED1熄滅,按下任意一個按鍵對應的LED燈點亮,原先點亮的LED熄滅的功能程序怎么寫,小白一個,辛苦了

互鎖.PNG (118.37 KB, 下載次數: 15)

互鎖.PNG

作者: lkc8210    時間: 2024-6-23 15:17
  1. #include <reg52.h>
  2. bit lock = 0;
  3. void main()
  4. {
  5.     while (1)
  6.     {
  7.                 if(P1!=0xff || P3!=0xFF)
  8.                 {
  9.                         if(lock==0)
  10.                         {
  11.                                 lock = 1;
  12.                                 P0=P1;
  13.                                 P1=P3;
  14.                         }
  15.                 }else{
  16.                         lock = 0;
  17.                 }
  18.     }
  19. }

復制代碼

作者: xiaobendan001    時間: 2024-6-23 15:30
所有按鍵的COM點是懸空的。這怎么搞?
while(1){
if(~P1||~P3){P0=P1;P3=P2;}
}
這樣可以不
作者: 單片機研究協會    時間: 2024-6-23 15:38
點亮之前先把所有燈滅了,怎么說就怎么寫呀
作者: xianfajushi    時間: 2024-6-23 19:29
首先按鍵公共點要接地才是獨立按鍵電路,控制很簡單,P1賦值給P0,P3賦值給P2即可,如P1的1引腳按下為低電平,那么,這時讀取P1的值是1,用1賦值給P0即可,余類推。
作者: xianfajushi    時間: 2024-6-24 09:17
  1. #include "reg52.h"
  2. void main()
  3. {//緣由http://m.zg4o1577.cn/bbs/dpj-236599-1.html
  4.         unsigned char sy=0,my=0,ls=0;
  5.         while(1)
  6.         {
  7.                 if(P1!=255&&++my==0){ls=P1;P0=ls;}
  8.                 if(P3!=255&&++my==0){ls=P3;P2=ls;}
  9.                 if(P1==255&&P3==255)my=0;//按鍵消抖綜合
  10.         }
  11. }
復制代碼

作者: xiaobendan001    時間: 2024-6-24 11:03
while(1){
if(~P1||~P3){P0=P1;P2=P3;}
}
不好意思,打錯了位置了,軟件模擬了一下,應該可以達到你要的
作者: QDMLIT    時間: 2024-6-24 15:35
xiaobendan001 發表于 2024-6-23 15:30
所有按鍵的COM點是懸空的。這怎么搞?
while(1){
if(~P1||~P3){P0=P1;P3=P2;}

按鍵另一端是接地的,圖畫錯了
作者: QDMLIT    時間: 2024-6-24 15:36
xianfajushi 發表于 2024-6-23 19:29
首先按鍵公共點要接地才是獨立按鍵電路,控制很簡單,P1賦值給P0,P3賦值給P2即可,如P1的1引腳按下為低電 ...

公共端是接地的,圖畫錯了
作者: QDMLIT    時間: 2024-6-24 16:18
xianfajushi 發表于 2024-6-24 09:17

非常感謝您的付出,仿真時有個現象,我再前面沒有描述明白,P1口按鍵從K1開始到K8,對應的P0口D1到D8都能實現互鎖功能,現象P1.7按鍵K8按下后對應的P2.7D8點亮,再按P3口按鍵K9后對應的P2口D9點亮,此時P2.7D8不熄滅,程序怎么改,謝謝。

仿真1.PNG (78.07 KB, 下載次數: 16)

仿真1.PNG

作者: QDMLIT    時間: 2024-6-24 22:28
lkc8210 發表于 2024-6-23 15:17

仿真后發現,按下K9后D8熄滅,D9不亮再按其它按鍵無反應。我再前面沒有描述明白,實驗目的是按鍵從K1開始到K16,對應D1到D16依次互鎖功能,不知程序怎么修改,謝謝。

仿真1.PNG (78.07 KB, 下載次數: 17)

仿真1.PNG

仿真2,按下K9后D8熄滅,D9不亮再按其它按鍵無反應。.PNG (80.15 KB, 下載次數: 18)

仿真2,按下K9后D8熄滅,D9不亮再按其它按鍵無反應。.PNG

作者: QDMLIT    時間: 2024-6-24 23:01
lkc8210 發表于 2024-6-23 15:17

按你的程序修改了14行IO口定義,仿真通過了。

仿真1.PNG (78.07 KB, 下載次數: 16)

仿真1.PNG

仿真通過2.PNG (6.35 KB, 下載次數: 18)

仿真通過2.PNG

作者: lkc8210    時間: 2024-6-24 23:34
QDMLIT 發表于 2024-6-24 22:28
仿真后發現,按下K9后D8熄滅,D9不亮再按其它按鍵無反應。我再前面沒有描述明白,實驗目的是按鍵從K1開始 ...

我打錯了13行,已修正
  1. #include <reg52.h>
  2. bit lock = 0;
  3. void main()
  4. {
  5.     while (1)
  6.     {
  7.                 if(P1!=0xff || P3!=0xFF)
  8.                 {
  9.                         if(lock==0)
  10.                         {
  11.                                 lock = 1;
  12.                                 P0=P1;
  13.                                 P2=P3;
  14.                         }
  15.                 }else{
  16.                         lock = 0;
  17.                 }
  18.     }
  19. }

復制代碼

作者: xianfajushi    時間: 2024-6-25 09:10
QDMLIT 發表于 2024-6-24 16:18
非常感謝您的付出,仿真時有個現象,我再前面沒有描述明白,P1口按鍵從K1開始到K8,對應的P0口D1到D8都能 ...

簡單,把清零添加到對應的地方即可,如:
                if(P1!=255&&++my==0){P2=255;ls=P1;P0=ls;}
                if(P3!=255&&++my==0){P0=255;ls=P3;P2=ls;}
不用就清零,應該想得到,我因為寫示例,讓學人明白道理即可,其余的該是學人自己理解并靈活應用.
作者: xianfajushi    時間: 2024-6-25 09:21
我由于懶得去畫電路圖,通常回復都是隨手拿個電路就可以寫示例的,然而,也通常學人不關注自己提問的部分,卻常常追問與提問無關的部分,應該看我鼠標指示的地方就是提問有關的部分,其他部分不用關注.








歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产成人99久久亚洲综合精品 | 成人黄色一级片 | 久久人体视频 | 日韩免费看片 | 精品一区二区三区在线观看 | 中文字幕在线观看免费视频 | av免费看片 | 一级黄色录像视频 | 青青草在线观看视频 | 曰本一级片 | 四虎在线播放 | 超碰国产在线 | 国产伦精品一区二区三区四区免费 | 快播少女爱欢乐 | 中文字幕在线观看亚洲 | 一极黄色片 | av手机天堂网| 久久99九九 | 免费一级黄色录像 | 手机av在线免费观看 | 97操碰| 亚洲av毛片| 97av视频 | 四虎在线免费观看视频 | 国产午夜视频在线观看 | 国产传媒视频在线观看 | 国产一区精品视频 | 美日韩一区二区三区 | 久热精品在线 | 性大毛片视频 | 亚洲区一区二 | 亚洲经典一区 | 国产成人99久久亚洲综合精品 | 永久在线 | 在线成人免费视频 | 午夜视频免费看 | 成人欧美激情 | 亚洲福利视频一区 | 国产精品一级 | 蜜桃精品视频 | 日韩国产精品一区二区 |