其中開關SW1為系統總控制開關//系統初始為關閉狀態/此時按下SW1,系統開啟,指示燈D1亮,
第一塊數顯板會顯示按下次數1////此時按SW2/第一次D2亮起//第二次按下D3亮起//第三次按下D2和D3會同時熄滅,每按一次,
第四塊數顯板會顯示開關SW2按下次數。當任意一個開關按下次數達到10次時,對應的數顯板會從零開始重新計數。
開關SW3按下時,不管系統處于什么狀態,都將關閉系統,而SW4按下時,第二個小燈泡會點亮
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
1.png (102.01 KB)
下載附件
2021-6-9 19:29 上傳
51單片機源程序如下:
- /*此系統為開關聯合控制LED工作臺////其中開關SW1為系統總控制開關//系統初始為關閉狀態/此時按下SW1,系統開啟,指示燈D1亮,
- 第一塊數顯板會顯示按下次數1////此時按SW2/第一次D2亮起//第二次按下D3亮起//第三次按下D2和D3會同時熄滅,每按一次,
- 第四塊數顯板會顯示開關SW2按下次數。當任意一個開關按下次數達到10次時,對應的數顯板會從零開始重新計數。*/
- #include"reg52.h"
- sbit C1=P3^0; //定義數碼管四個引腳
- sbit C2=P3^1;
- sbit C3=P3^2;
- sbit C4=P3^3;
- unsigned char F=0; //定義系統是否開啟
- unsigned char A=0; //定義D3燈開關次數
- sbit D1=P1^0; //LED引腳
- sbit D2=P1^1;
- sbit D3=P1^2;
- sbit SW1=P2^0; //開關引腳
- sbit SW2=P2^1;
- unsigned char s1=0,s2=0; //數顯管開關次數
- unsigned char SMG[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
- void SMGDelay(unsigned char t) //此處為延時函數定義
- {
- while(t--);
- }
- void SMGPLAY(unsigned char P,unsigned char D) //四個數顯管的顯示位置
- {
- 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() //定義四個數顯管顯示內容
- {
- SMGPLAY(1,SMG[s1]);
- SMGDelay(100);
- SMGPLAY(2,0xbf);
- SMGDelay(100);
- SMGPLAY(3,0xbf);
- SMGDelay(100);
- SMGPLAY(4,SMG[s2]);
- SMGDelay(100);
- }
- void KEYS() //定義開關按下次數和系統開關和小燈泡亮滅
- {
- 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();
- }
- }
復制代碼
聯合控制開關 LED.rar
(20.23 KB, 售價: 1 E幣)
2021-6-9 19:31 上傳
點擊文件名下載附件
售價: 1 E幣 [記錄]
[ 購買]
【必讀】版權免責聲明
1、本主題所有言論和內容純屬會員個人意見,與本論壇立場無關。2、本站對所發內容真實性、客觀性、可用性不做任何保證也不負任何責任,網友之間僅出于學習目的進行交流。3、對提供的數字內容不擁有任何權利,其版權歸原著者擁有。請勿將該數字內容進行商業交易、轉載等行為,該內容只為學習所提供,使用后發生的一切問題與本站無關。 4、本網站不保證本站提供的下載資源的準確性、安全性和完整性;同時本網站也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。 5、本網站所有軟件和資料均為網友推薦收集整理而來,僅供學習用途使用,請務必下載后兩小時內刪除,禁止商用。6、如有侵犯你版權的,請及時聯系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|