Red de conocimiento informático - Conocimiento informático - ¿Cuál es el diagrama de bloques completo del sistema de radio del software?

¿Cuál es el diagrama de bloques completo del sistema de radio del software?

1. Principios básicos 1.1 Principio de codificación de infrarrojos Los protocolos de transmisión de señales infrarrojas más utilizados incluyen el protocolo ITT, el protocolo NEC, el protocolo Nokia NRC, el protocolo Sharp, el protocolo Philips RC-5, el protocolo Philips RC-6 y el protocolo Philips RECS-. 80 y protocolo Sony SIRC, etc. 1) Composición del protocolo: generalmente compuesto por un código de inicio, un código de usuario, un código de datos, un código de repetición o el código inverso del código de datos y un código de finalización. 2) Portadora: las más utilizadas son 33K, 36K, 36,6K, 38K, 40K, 56K, sin portadora 3) Ciclo de trabajo: las más utilizadas son 1/3, 1/2, las menos utilizadas son 1/4 4) Método de modulación : modulación amplia de pulso, modulación de fase, modulación de posición de pulso 1.2 Principio de decodificación de infrarrojos Esta operación utiliza codificación de protocolo NEC, codificación de infrarrojos modulada por onda portadora de 38K. El entorno de codificación se basa en 51 microcontroladores y el lenguaje de programación es C51. El diagrama de bloques principal es el siguiente: 1.3 Método de codificación NEC: código de arranque, código de usuario de 16 bits (código de dirección), código de comando de 8 bits (código de datos) y su código inverso. 1) El código piloto consta de una forma de onda portadora de 9 ms y un tiempo de inactividad de 4,5 ms 2 2) El código de dirección es de 16 bits, con los 8 bits bajos al frente y los 8 bits altos detrás. 3) Código de comando de 8 bits y su código inverso 2. Entorno de decodificación 2.1 Entorno de hardware 1. Placa de desarrollo del microcontrolador SST89E58RD 2. Receptor de infrarrojos HX1838 1) Dimensiones generales y disposición de pines del receptor de infrarrojos HX1838: 3 2) Diagrama del circuito de aplicación 3. Resistencias, condensadores y otros componentes 2.2 Entorno de software 1) Keil u vision2 Keil C51 es un sistema de desarrollo de software en lenguaje C con microcontrolador compatible de la serie 51 producido por la compañía estadounidense Keil Software. En comparación con el ensamblaje, el lenguaje C es funcional, estructural y legible. Tiene ventajas obvias en cuanto a mantenibilidad. , lo que facilita su aprendizaje y uso.

2) C51? C51 es un lenguaje C diseñado para la serie 51 de microcontroladores. Es un lenguaje estructurado con código compacto: la eficiencia es comparable al lenguaje ensamblador. Es cercano al lenguaje real y el programa es muy legible. Función de depuración y mantenimiento Carga de trabajo de programación pequeña y rica: ¿ciclo de desarrollo de producto corto? Capacidad de control a nivel de máquina, funciones potentes: adecuada para el desarrollo de sistemas integrados. 4. ¿No tiene nada que ver con las instrucciones de ensamblaje, es fácil de dominar? la base de la microcomputadora de un solo chip 3.1 Diagrama de bloques de la estructura del programa: El temporizador se interrumpe una vez cada 20us. ¿Hay una señal (nivel bajo)? Determine si es un código de arranque. El tiempo de nivel bajo es superior a 600us. si el código de comando es 0 o 1. Guarde el código de comando y analícelo para mostrar SÍ en el tubo digital NO 3.2 Código fuente del programa //Programa de decodificación de control remoto infrarrojo codificado NEC 5 // // 2011-3-26. #include #include #include #define TIMERH 0xed //El bit alto del temporizador de definición de macro es 237 #define TIMERL 0xed //El bit bajo de la definición de macro el temporizador es 237 código de caracteres sin firmar seg_code[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; // Código de segmento de tubo digital unsigned char bcode[32]=0; matriz de código de comando binario de almacenamiento unsigned int count,dcode;//Definir variables//Descripción de la variable clave//es: aceptar código de comando habilitar control//flag: recepción completada bit de signo unsigned int i,j,en,k,m,flag ; //Conversión de código de segmento de visualización de valor decodificado char code_chg(unsigned char ch) { switch(ch) { caso 14:retorno 0; caso 16:retorno 1;retorno 2; 20:retorno 4; caso 21:retorno 5; caso 22:retorno 6; caso 24:retorno 7; caso 25:retorno 8; caso 26: retorno 9;retorno 0; (seg de carácter sin firmar) { if(seg>16) seg = 16; 6 seg = seg_code[seg]; = 0xe0; } // Muestra el código de bits digital void WriteCsData(unsigned char cs) { cs &= 0x0f; P0 = _nop_(); = 0xe0; } //Inicializa el temporizador void InitTimer() { TMOD=0x20; //Temporizador 1, modo de trabajo 2 TH1=TIMERH; / /Inicialización del bit alto del temporizador TL1=TIMERL; /Permitir interrupción ET1=1; //El temporizador 1 habilita la interrupción // for(m=0;m<32;m++)// Inicializa y almacena la matriz de código de comando binario { bcode[m]=0; función de interrupción void timer() interrupción 3

{ if((P1&0x80)==0x00) //Juzga si es nivel bajo { P1=P1&0xfe; //Enciende el diodo e5 7 if(count<100&&en==1)//Juzga si es código de arranque { count++; } else if(count>=100) // Si es un código de arranque, ignora { en=0; count=0 } } // El nivel alto del código de comando comienza a juzgar la duración del nivel bajo anterior/ /Si está entre 600-800us, es 0 //Si está entre 1600-1900us, es 1 //El período de tiempo definido aquí es para anti-interferencia else if(((P1&0x80)==0x80)&&en= =1) { P1=P10x01; / /Si es de alto potencial, apague la luz LED e5 if(i<31) { if(count>30&&count<40) //Si está entre 600-800us, es 0 { bcode[i]=0; //Almacenar el código de comando binario i++; //Después de almacenar este código de bits, inicialice el recuento=0 } else if(count>80&&count<95) //Si está entre 1600 -1900us, es 1 { bcode[i ]=1; i++; en=0; count=0; else if(((P1&0x80)==0x80)&&en==0) //Inicializar antes del código de comando { en=1; count=0; } else if(i==31) //Recepción completada{ flag=1