1.實(shí)驗(yàn)任務(wù)
如圖所示,開關(guān)SP1接在P3.7/RD管腳上,在AT89S51單片機(jī)的P1端口接有四個(gè)發(fā)光二極管,上電的時(shí)候,L1接在P1.0管腳上的發(fā)光二極管在閃爍,當(dāng)每一次按下開關(guān)SP1的時(shí)候,L2接在P1.1管腳上的發(fā)光二極管在閃爍,再按下開關(guān)SP1的時(shí)候,L3接在P1.2管腳上的發(fā)光二極管在閃爍,再按下開關(guān)SP1的時(shí)候,L4接在P1.3管腳上的發(fā)光二極管在閃爍,再按下開關(guān)SP1的時(shí)候,又輪到L1在閃爍了,如此輪流下去。
2.電路原理圖
圖4.9.1
3.系統(tǒng)板上硬件連線
(1. 把“單片機(jī)系統(tǒng)”區(qū)域中的P3.7/RD端口連接到“獨(dú)立式鍵盤”區(qū)域中的SP1端口上;
(2. 把“單片機(jī)系統(tǒng)”區(qū)域中的P1.0-P1.4端口用8芯排線連接到“八路發(fā)光二極管指示模塊”區(qū)域中的“L1-L8”端口上;要求,P1.0連接到L1,P1.1連接到L2,P1.2連接到L3,P1.3連接到L4上。
4.程序設(shè)計(jì)方法
(1. 設(shè)計(jì)思想由來
在我們生活中,我們很容易通過這個(gè)叫張三,那個(gè)叫李四,另外一個(gè)是王五;那是因?yàn)槊總€(gè)人有不同的名子,我們就很快認(rèn)出,同樣,對于要通過一個(gè)按鍵來識別每種不同的功能,我們給每個(gè)不同的功能模塊用不同的ID號標(biāo)識,這樣,每按下一次按鍵,ID的值是不相同的,所以單片機(jī)就很容易識別不同功能的身份了。
(2. 設(shè)計(jì)方法
從上面的要求我們可以看出,L1到L4發(fā)光二極管在每個(gè)時(shí)刻的閃爍的時(shí)間是受開關(guān)SP1來控制,我們給L1到L4閃爍的時(shí)段定義出不同的ID號,當(dāng)L1在閃爍時(shí),ID=0;當(dāng)L2在閃爍時(shí),ID=1;當(dāng)L3在閃爍時(shí),ID=2;當(dāng)L4在閃爍時(shí),ID=3;很顯然,只要每次按下開關(guān)K1時(shí),分別給出不同的ID號我們就能夠完成上面的任務(wù)了。下面給出有關(guān)程序設(shè)計(jì)的框圖。
5.程序框圖
圖4.9.2
6.匯編源程序
ID EQU 30H
SP1 BIT P3.7
L1 BIT P1.0
L2 BIT P1.1
L3 BIT P1.2
L4 BIT P1.3
ORG 0
MOV ID,#00H
START: JB K1,REL
LCALL DELAY10MS
JB K1,REL
INC ID
MOV A,ID
CJNE A,#04,REL
MOV ID,#00H
REL: JNB K1,$
MOV A,ID
CJNE A,#00H,IS0
CPL L1
LCALL DELAY
SJMP START
IS0: CJNE A,#01H,IS1
CPL L2
LCALL DELAY
SJMP START
IS1: CJNE A,#02H,IS2
CPL L3
LCALL DELAY
SJMP START
IS2: CJNE A,#03H,IS3
CPL L4
LCALL DELAY
SJMP START
IS3: LJMP START
DELAY10MS: MOV R6,#20
LOOP1: MOV R7,#248
DJNZ R7,$
DJNZ R6,LOOP1
RET
DELAY: MOV R5,#20
LOOP2: LCALL DELAY10MS
DJNZ R5,LOOP2
RET
END
7.C語言源程序
#include 《AT89X51.H》
unsigned char ID;
void delay10ms(void)
{
unsigned char i,j;
for(i=20;i》0;i--)
for(j=248;j》0;j--);
}
void delay02s(void)
{
unsigned char i;
for(i=20;i》0;i--)
{delay10ms();
}
}
void main(void)
{ while(1)
{ if(P3_7==0)
{delay10ms();
if(P3_7==0)
{
ID++;
if(ID==4)
{
ID=0;
}
while(P3_7==0);
}
}
switch(ID)
{ case 0:
P1_0=~P1_0;
delay02s();
break;
case 1:
P1_1=~P1_1;
delay02s();
break;
case 2:
P1_2=~P1_2;
delay02s();
break;
case 3:
P1_3=~P1_3;
delay02s();
break;
}
}
-
二極管
+關(guān)注
關(guān)注
147文章
9706瀏覽量
167579 -
單片機(jī)
+關(guān)注
關(guān)注
6043文章
44621瀏覽量
638614 -
AT89S51
+關(guān)注
關(guān)注
3文章
229瀏覽量
34142
發(fā)布評論請先 登錄
相關(guān)推薦
藍(lán)橋杯中GPIO輸入之按鍵實(shí)驗(yàn)
![藍(lán)橋杯中GPIO輸入之<b class='flag-5'>按鍵</b><b class='flag-5'>實(shí)驗(yàn)</b>](https://file.elecfans.com/web2/M00/09/16/pYYBAGD0FvWAeWpFAAAb1Fux1oA753.jpg)
上位機(jī)如何實(shí)現(xiàn)發(fā)送參數(shù)給單片機(jī),單片機(jī)保存接收的參數(shù)重復(fù)運(yùn)行指定的功能
在中壓開關(guān)柜上使用微機(jī)五防鎖是否可以實(shí)現(xiàn)一鍵順控
![在中壓開關(guān)柜上使用微機(jī)五防鎖是否可以<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>一鍵</b>順控](https://file1.elecfans.com//web2/M00/0A/F2/wKgZomcq6VKAZ-vFAApgcwi8Ycc527.jpg)
人機(jī)界面在開關(guān)柜一鍵順控中起到什么作用?
![人機(jī)界面在開關(guān)柜<b class='flag-5'>一鍵</b>順控中起到什么作用?](https://file1.elecfans.com//web2/M00/0A/D6/wKgZomcpfJeAGzUBAAgAM5DUJE0878.jpg)
一鍵開關(guān)機(jī)電路的工作原理是什么
![<b class='flag-5'>一鍵</b>開關(guān)機(jī)電路的工作原理是什么](https://file1.elecfans.com/web2/M00/06/F8/wKgaombhX5CAIMAHAAHv4zE12Qw947.png)
一鍵斷電開關(guān)的種類有哪些
一鍵斷電開關(guān)的控制原理是什么
變電站一鍵順控系統(tǒng)和開關(guān)柜一鍵順控有區(qū)別嗎?
![變電站<b class='flag-5'>一鍵</b>順控系統(tǒng)和開關(guān)柜<b class='flag-5'>一鍵</b>順控有區(qū)別嗎?](https://file1.elecfans.com//web2/M00/00/8E/wKgaomapzOOAO9FiAAGivPFkirc598.jpg)
智能開關(guān)柜能如何實(shí)現(xiàn)“可視化一鍵順控”?
![智能開關(guān)柜能如何<b class='flag-5'>實(shí)現(xiàn)</b>“可視化<b class='flag-5'>一鍵</b>順控”?](https://file1.elecfans.com/web2/M00/EB/86/wKgaomZZbVWAaA9lAAQ90BhZqkU248.png)
基于STM32單片機(jī)的多功能水杯設(shè)計(jì)
![基于STM32<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>多功能</b>水杯設(shè)計(jì)](https://file1.elecfans.com/web2/M00/F9/24/wKgaomaHYPGAaQt0AABNtQr9tWk215.png)
2021款路虎攬勝運(yùn)動版車遙控及一鍵起動功能失效
![2021款路虎攬勝運(yùn)動版車遙控及<b class='flag-5'>一鍵</b>起動<b class='flag-5'>功能</b>失效](https://file.elecfans.com/web2/M00/3F/D7/poYBAGJqPMKAEXjWAAAOpepuZJ8475.jpg)
蜀瑞創(chuàng)新-智能開關(guān)柜一鍵順控解決方案
![蜀瑞創(chuàng)新-智能開關(guān)柜<b class='flag-5'>一鍵</b>順控解決方案](https://file1.elecfans.com/web2/M00/EA/9E/wKgZomZZbUaAXdLJAAhJ5ZVnwUg025.png)
簡析智慧燈桿一鍵告警功能的實(shí)用場景
![簡析智慧燈桿<b class='flag-5'>一鍵</b>告警<b class='flag-5'>功能</b>的實(shí)用場景](https://file1.elecfans.com/web2/M00/DE/39/wKgZomYuC9qAWFFpAACg8Fd6bFM993.png)
基于單片機(jī)多功能洗衣機(jī)控制
![基于<b class='flag-5'>單片機(jī)</b><b class='flag-5'>多功能</b>洗衣<b class='flag-5'>機(jī)</b>控制](https://file1.elecfans.com/web2/M00/C4/B6/wKgZomX3o7KAc9AZAAAReeI3K9k830.jpg)
評論