国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee
ELEOK
標(biāo)題:
51單片機(jī)按鍵,led小燈泡,數(shù)碼管綜合程序與Proteus仿真
[打印本頁]
作者:
eng
時間:
2021-6-9 19:31
標(biāo)題:
51單片機(jī)按鍵,led小燈泡,數(shù)碼管綜合程序與Proteus仿真
其中開關(guān)SW1為系統(tǒng)總控制開關(guān)//系統(tǒng)初始為關(guān)閉狀態(tài)/此時按下SW1,系統(tǒng)開啟,指示燈D1亮,
第一塊數(shù)顯板會顯示按下次數(shù)1////此時按SW2/第一次D2亮起//第二次按下D3亮起//第三次按下D2和D3會同時熄滅,每按一次,
第四塊數(shù)顯板會顯示開關(guān)SW2按下次數(shù)。當(dāng)任意一個開關(guān)按下次數(shù)達(dá)到10次時,對應(yīng)的數(shù)顯板會從零開始重新計數(shù)。
開關(guān)SW3按下時,不管系統(tǒng)處于什么狀態(tài),都將關(guān)閉系統(tǒng),而SW4按下時,第二個小燈泡會點(diǎn)亮
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
1.png
(102.01 KB)
下載附件
2021-6-9 19:29 上傳
51單片機(jī)源程序如下:
/*此系統(tǒng)為開關(guān)聯(lián)合控制LED工作臺////其中開關(guān)SW1為系統(tǒng)總控制開關(guān)//系統(tǒng)初始為關(guān)閉狀態(tài)/此時按下SW1,系統(tǒng)開啟,指示燈D1亮,
第一塊數(shù)顯板會顯示按下次數(shù)1////此時按SW2/第一次D2亮起//第二次按下D3亮起//第三次按下D2和D3會同時熄滅,每按一次,
第四塊數(shù)顯板會顯示開關(guān)SW2按下次數(shù)。當(dāng)任意一個開關(guān)按下次數(shù)達(dá)到10次時,對應(yīng)的數(shù)顯板會從零開始重新計數(shù)。*/
#include"reg52.h"
sbit C1=P3^0; //定義數(shù)碼管四個引腳
sbit C2=P3^1;
sbit C3=P3^2;
sbit C4=P3^3;
unsigned char F=0; //定義系統(tǒng)是否開啟
unsigned char A=0; //定義D3燈開關(guān)次數(shù)
sbit D1=P1^0; //LED引腳
sbit D2=P1^1;
sbit D3=P1^2;
sbit SW1=P2^0; //開關(guān)引腳
sbit SW2=P2^1;
unsigned char s1=0,s2=0; //數(shù)顯管開關(guān)次數(shù)
unsigned char SMG[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void SMGDelay(unsigned char t) //此處為延時函數(shù)定義
{
while(t--);
}
void SMGPLAY(unsigned char P,unsigned char D) //四個數(shù)顯管的顯示位置
{
P0=0xff; //消隱
switch(P)
{
case 1:C1=1;C2=0;C3=0;C4=0;break;
case 2:C1=0;C2=1;C3=0;C4=0;break;
case 3:C1=0;C2=0;C3=1;C4=0;break;
case 4:C1=0;C2=0;C3=0;C4=1;break;
}
P0=D;
}
void PUT4SMG() //定義四個數(shù)顯管顯示內(nèi)容
{
SMGPLAY(1,SMG[s1]);
SMGDelay(100);
SMGPLAY(2,0xbf);
SMGDelay(100);
SMGPLAY(3,0xbf);
SMGDelay(100);
SMGPLAY(4,SMG[s2]);
SMGDelay(100);
}
void KEYS() //定義開關(guān)按下次數(shù)和系統(tǒng)開關(guān)和小燈泡亮滅
{
if(SW1==0)
{
SMGDelay(100);
if(SW1==0)
{
while(SW1==0)
{
PUT4SMG();
}
s1++;
if(s1==10)
{
s1=0;
}
if(F==0)
{
F=1;
D1=0;
}
else
{
F=0;
D1=1;
D2=1;
D3=1;
A=0;
}
}
}
if(SW2==0)
{
SMGDelay(100);
if(SW2==0)
{
while(SW2==0)
{
PUT4SMG();
}
s2++;
if(s2==10)
{
s2=0;
}
if(F==1)
{
A++;
switch(A)
{
case 1:D2=0;break;
case 2:D3=0;break;
case 3:D2=1;D3=1;A=0;break;
}
}
}
}
}
void main()
{
while(1)
{
PUT4SMG();
KEYS();
}
}
復(fù)制代碼
聯(lián)合控制開關(guān) LED.rar
(20.23 KB, 售價: 1 E幣)
2021-6-9 19:31 上傳
點(diǎn)擊文件名下載附件
售價: 1 E幣
[記錄]
[
購買
]
歡迎光臨 ELEOK (http://m.afoofa.cn/)
Powered by Discuz! X5.0