Design 1: 51 MCU Wasserlampensteuerung

Inhaltsverzeichnis

1. Inhalte gestalten

Zweitens die Analyse der Hardware-Schaltung

3. Schematische Darstellung der Simulation

4. Programmierung

5. Simulationsergebnisse

6. Denkfragen

Der Autor hat etwas zu sagen


1. Inhalte gestalten

       Dieses Design verwendet 4 Tasten. Wenn KEY1 gedrückt wird, leuchten die an den P0-Port angeschlossenen Leuchtdioden (D1~D8) dreimal von unten nach oben im Abstand von 100 ms auf. Das Intervall beträgt 3 Kreise von oben nach unten ; wenn TASTE3 gedrückt wird, leuchtet die LED zyklisch von beiden Seiten zur Mitte, die Anzahl der Zyklen beträgt 3 Kreise und das Zeitintervall beträgt 1000 ms; wenn TASTE4 gedrückt wird, leuchtet die LED zyklisch von der Mitte zu beiden Seiten Die Anzahl der Zyklen beträgt 3 Kreise und das Zeitintervall beträgt 1000 ms. Normalerweise ist der Status aller LEDs aus.

Zweitens die Analyse der Hardware-Schaltung

1. Funktion des Chips 74HC245, Pin-Bedeutung

Die Funktion von 74HC245 besteht darin, ein Puffer zu sein. Sein OE-Pin steuert die Ausgangsfreigabe, die bei niedrigem Pegel aktiv ist. Der DIR-Pin steuert die Datenübertragungsrichtung. Wenn DIR auf hohem Pegel ist, ist die Datenübertragungsrichtung A->B, Andernfalls sind es B -> A, die Pins A0->A7 und B0->B7 werden für die Dateneingabe/-ausgabe verwendet, VCC und GND sind der Stromversorgungsanschluss bzw. der Erdungsanschluss des Chips.

2. Funktion des Chips 74HC138, Pin-Bedeutung

Die Funktion von 74HC138 besteht darin, 3-Bit- Binärdaten in 8 Ausgangszustände zu dekodieren, und es gibt insgesamt 8 Ausgangs-E/As , A0->A2 sind Dateneingangspins, Y 0- >Y7 sind Datenausgangspins, E1, E2, E-Steuerchip-Aktivierung, nur wenn E1=0, E2=0, E3=1 , kann der Chip aktiviert werden , andernfalls hat der Chip keinen effektiven Ausgang , VCC und GND sind der Stromversorgungsanschluss bzw. der Erdungsanschluss des Chips .

3. Seien Sie vorsichtig, wenn der P0-Port als Allzweck-E/A-Port verwendet wird

Da der interne Pull-Up-Widerstand des P0-Ports groß ist, handelt es sich um einen „schwachen Pull-Up“, sodass der High-Level-Ausgangsstrom des P0-Ports sehr klein ist und bei niedrigem Ausgang ein Pull-Down erfolgt Der MOS-Transistor ist eingeschaltet, der Senkenstrom ist groß und die Lastkapazität ist hoch. Daher wird bei der Konstruktion im Allgemeinen der Low-Level-Antriebsmodus übernommen.

4. Schalten Sie die Leuchtdioden-Hardware ein, um die Bedingungen zu erfüllen

Um die Leuchtdiode einzuschalten, muss die Triode eingeschaltet sein, das heißt, Q3 ist auf einem niedrigen Pegel, das heißt, die Kathode der Diode ist auf einem niedrigen Pegel.

3. Schematische Darstellung der Simulation

4. Programmierung

/*******************************************************************************
* 函 数 名  				: main
* 函数功能		        : 按键流水灯
* 创作者  				: 薄情书生
* 创作时间  				: 2022.9.15
*******************************************************************************/

#include "reg52.h"         
#include "intrins.h"

/*********类型定义*********/
typedef unsigned char u8;
typedef unsigned int u16;

/*********按键定义*********/
sbit KEY0 = P3^2;
sbit KEY1 = P3^3;
sbit KEY2 = P3^4;
sbit KEY3 = P3^5;

/*********毫秒延时*********/
void delay_ms(u16 ms)
{
	u16 x,y;
	for(x=ms;x>0;x--)
		for(y=114;y>0;y--);
}

/*************38译码器**************/
void SelectHC138(unsigned char channel)
{
   switch(channel)
	 {
		 case 0:
        P1 = (P1 & 0x1f)|0x00;break;    //发光二极管(LEDS0)
   }
}

/*************LED由下至上**************/
void Bottom_Up()
{
	u8 i,j;
	for(j=0;j<3;j++)
	{
		for(i=0,P0 = 0xff;i<8;i++)
		{
			P0 = P0<<1;	 
			delay_ms(200); 
		}
	}
	P0 = 0xff;
}

/*************LED由上至下**************/
void Up_Bottom()
{
	u8 i,j;
	for(j=0;j<3;j++)
	{
		for(i=0,P0 = 0xff;i<8;i++)
		{
			P0 = P0>>1;	 
			delay_ms(100); 
		}
	}
	P0 = 0xff;
}

/*************两边至中间**************/
void LED_sides()
{
	u8 i,j,ri,lf;
	for(j=0;j<3;j++)
  {
		for(i=0,ri=0x7f,lf=0xfe;i<4;i++)
		{
			P0 = ri&lf;
			ri = _cror_(ri,1);
			lf = _crol_(lf,1);
			delay_ms(1000);
		}
  }
	P0 = 0xff;
}

/*************中间至两边**************/
void LED_middle()
{
	u8 i,j,ri,lf;
	for(j=0;j<3;j++)
	{
		for(i=0,ri=0xef,lf=0xf7;i<4;i++)
		{
			P0 = ri&lf;
			ri = _crol_(ri,1);
			lf = _cror_(lf,1);
			delay_ms(1000);
		}
	}
	P0=0xff;
}

/*******************主程序************************/
void main()
{
    SelectHC138(0);
	while(1)
	{
		if(KEY0==0)
		{
			delay_ms(10); 
			if(KEY0==0)
			{
               Up_Bottom();
			}
	    }
		if(KEY1==0)
		{
            delay_ms(10); 
			if(KEY1==0)
			{
               Bottom_Up();
		    }
	    }
		if(KEY2==0)
		{
            delay_ms(10); 
			if(KEY2==0)
		    {
               LED_sides();
			}
			
		}
		if(KEY3==0)
		{
            delay_ms(10); 
			if(KEY3==0)
		    {
                LED_middle();
			}
		}
	}
}

5. Simulationsergebnisse

Wenn TASTE1 gedrückt wird, leuchten die an den P0-Anschluss angeschlossenen Leuchtdioden (D1~D8) dreimal im Abstand von 100 ms von unten nach oben auf.

 Wenn TASTE2 gedrückt wird, leuchten im Abstand von 200 ms drei Kreise von oben nach unten auf.

 Wenn TASTE3 gedrückt wird, leuchtet die LED von beiden Seiten bis zum mittleren Zyklus, die Anzahl der Zyklen beträgt 3 und das Zeitintervall beträgt 1000 ms.

 Wenn TASTE4 gedrückt wird, leuchtet die LED von der Mitte nach beiden Seiten, die Anzahl der Zyklen beträgt 3 und das Zeitintervall beträgt 1000 ms.

Normalerweise ist der Status aller LEDs aus.

6. Denkfragen

Ändern Sie das Programm, um eine 4-Tasten-Steuerung zu realisieren, von oben nach unten, von unten nach oben, die LED blinkt dreimal, das Zeitintervall beträgt 500 ms, alle LEDs leuchten 3 Sekunden lang auf, erlöschen dann und kehren dann zum Normalzustand zurück Geben Sie an, dass alle LEDs aus sind. Bitte schreiben und debuggen Sie das Programm selbst. Das Referenzprogramm für Denkfragen wird in Design 2: 51 MCU External Interrupt Experiment angegeben.

Der Autor hat etwas zu sagen

Diese Kolumne ist ein praktisches Tutorial für 51-Einzelchip-Mikrocomputer, das darauf abzielt, das Lernen durch Praxis zu fördern und Freunden den schnellen Einstieg in den 51-Einzelchip-Mikrocomputer zu erleichtern. Bitte erlernen Sie selbst die entsprechenden theoretischen Kenntnisse über 51-Einzelchip-Mikrocomputer. Die relevanten theoretischen Kenntnisse in diesem Design: 51 MCU IO-Port-Steuerung, die Verwendung unabhängiger Tasten, bitte beachten Sie die Lernmaterialien.

Link zu diesem Design-Quellprogramm und den Simulationsquelldateien der Baidu-Netzwerkfestplatte: https://pan.baidu.com/s/17PtMjM5y-YSfdHlqnqAUnA Extraktionscode: 4ma5 
 

Supongo que te gusta

Origin blog.csdn.net/weixin_53402301/article/details/130907233
Recomendado
Clasificación