![]() |
發布時間: 2021-1-15 10:27
正文摘要:各位大佬,我想通過8255的A口接鍵盤控制B,C口的高低電平(例如,第一個按鍵按下后,PB0變為低電平,再按一下,PB0變為高電平),我應該怎么該程序 #include<reg52.h> #include<absacc.h> #define PA X ... |
我查了8255的資料,感覺你使用好像有問題。如果想作為掃描鍵盤用,你應該使用PC口作為鍵盤矩陣使用。掃描矩陣要求一部分輸出,一部分輸入。 對8255,在設置好控制字后,是沒法讓PA口的一部分成為輸出,而另一部分成為輸出。PB也是一樣的。只有PC口是允許一部分成為輸入、而另一部分成為輸出的。 你的程序中,在設置控制字時,應使 1、PA口作為輸出口,PB口作為輸出口。 2、PC7-PC4作為輸出、PC3-PC0作為輸入;或者PC7-PC4作為輸入、PC3-PC0作為輸出; |
在此提供一點思路,供參考。 u8 temp; if(k1)//k1按下 temp++; if(temp >1) temp = 0; if(temp==1) PB &= 0xfe;//PB0輸出低電平,LED亮 else PB |= 0x01;//PB0輸出高電平,LED滅 |