欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
求解程序一邊控制LED一邊控制按鍵
[打印本頁]
作者:
大黃蜂001
時間:
2017-6-18 16:35
標題:
求解程序一邊控制LED一邊控制按鍵
我從廠里面拿來了一個學習板(作為初學者,我用的是AT89C52單片機),這個學習板數碼管位選是P0口,低電平有效,
段選是P2口,也是低電平有效。數碼管對應的按鍵是一邊是P2^2~P2^7,公共端接的是P3^3。怎么才能一邊控制按鍵一邊讓數碼管亮(程序不會寫)。這是我的寫的按鍵控制小燈的程序,可是控制數碼管就不會了。
//LED小燈區別按鍵
//LED小燈區別按鍵
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp;
sbit key=P3^3; //按鍵公共端
void delay(uchar z) //延時函數
{
uint x,y;
for(x=70;x>0;x--)
for(y=z;y>0;y--);
}
void main()
{
while(1)
{
key=0; //按鍵公共端置0
temp=P2; //用按鍵掃描方法判斷是否有按鍵按下
temp=temp&0xff;
while(temp!=0xff)
{
delay(5); //延時一段時間確認按鍵是否按下
temp=P2;
temp=temp&0xff;
while(temp!=0xff)
{
temp=P2;
switch(temp) //對應按下的不同按鍵,點亮不同的LED小燈
{
case 0x7f:P1=0x7f;break;
case 0xbf:P1=0xbf;break;
case 0xdf:P1=0xdf;break;
case 0xef:P1=0xef;break;
case 0xf7:P1=0xf7;break;
case 0xfb:P1=0xfb;break;
}
while(temp!=0xff) //消除按鍵松開時的抖動
{
temp=P2;
}
}
}
}
}
作者:
大黃蜂001
時間:
2017-6-18 17:28
P0段選,P2位選,說錯了
作者:
小潘哥
時間:
2017-6-18 17:53
數碼管驅動分為位選和段選,如果是多位數碼管,得進行動態掃描,建議先了解一下數碼管的驅動原理,然后先讓一位顯示,再升級成多位的
作者:
大黃蜂001
時間:
2017-6-18 19:31
小潘哥 發表于 2017-6-18 17:53
數碼管驅動分為位選和段選,如果是多位數碼管,得進行動態掃描,建議先了解一下數碼管的驅動原理,然后先讓 ...
數碼管動態顯示我也嘗試著做好了,可是不知道怎么把數碼管動態顯示和這個程序和在一起。
void display() //數碼管從0到255動態顯示
{
P2=0x7f;
P0=number[num/100];
delay(10);
P2=0xbf;
P0=number[num%100/10];
delay(10);
P2=0xdf;
P0=number[num%10];
delay(10);
}
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1