Red de conocimiento informático - Material del sitio web - Cómo escribir un programa modular para un microcontrolador en keil

Cómo escribir un programa modular para un microcontrolador en keil

En primer lugar, debe poder escribir un programa que cumpla con los requisitos de uso. Sobre esta base, compile algunos subprogramas con funciones independientes en un archivo fuente una vez que los subprogramas en estos archivos fuente se hayan probado con éxito. , no se utilizarán en el futuro. Es necesario modificarlo y no es necesario copiarlo y pegarlo. Simplemente agréguelo en su totalidad. El archivo fuente puede ser relativamente largo para facilitar la búsqueda. para declarar estas subrutinas y luego incluir este archivo de encabezado en el programa principal, como LCD. La función de controlador de la pantalla 1602, escribir comandos y funciones de inicialización de datos, e incluso escribir algunas funciones de visualización de cadenas y funciones de visualización de datos enteros de uso común pueden todos se pueden utilizar como archivos fuente separados y funciones relacionadas para las operaciones de EEPROM, que están más estrechamente relacionadas con otras partes, o se pueden compilar en archivos fuente por separado con relativamente pocas subrutinas a las que se puede hacer referencia directamente. Los módulos con muchas subrutinas deben tener archivos de encabezado correspondientes a los archivos fuente. El siguiente es el interior del microcontrolador STC que empaqueté. El archivo de encabezado y el archivo fuente de la operación EEPROM no tienen conexión con otras partes, por lo que son un archivo de encabezado de módulo independiente. eeprom.h es el siguiente:

ifndef __EEPROM_H__

#define __EEPROM_H__

#define uchar unsigned char

#define uint unsigned int

//Borrar un sector de la EEPROM en el chip. Estas funciones se acaban de declarar aquí y las entidades están en el archivo fuente

void eepromEraseSector (dirección uint); /p>

void eepromWrite(uint dirección, uchar write_data);

//Lee la EEPROM interna del microcontrolador STC Un byte

uchar eepromRead(uint dirección); /p>

#endif

El archivo fuente eeprom.c es el siguiente. Varias subfunciones que contiene son instrucciones del microcontrolador STC. Está en el documento y no requiere ninguna modificación, solo llame. así que normalmente solo necesitamos mirar el archivo de encabezado

#includelt;STC12C54.Hgt;

#define uchar unsigned char

p>

#define uint unsigned int

//Borrar un sector de la EEPROM en el chip

void eepromEraseSector (dirección uint)

{

uchar ii;

ISP_ADDRL=dirección;

ISP_ADDRH=direccióngt;gt;8;

ISP_CONTR=0x01; ISP_CONTR|0x82; // 0x80 si SYSCLlt; 40MHz, 0x81 si SYSCLLT; 0x82 si SYSCLLT; 0x83 si SYSCLLT;

ISP_CMD=0x03; ;

ISP_TRIG=0xb9;

para(ii=0;iilt;3;ii

ISP_ADDRL=0xff; p>

ISP_ADDRH=0xff;

ISP_CONTR=0x00

ISP_CMD=0x00

ISP_TRIG=0x00

}

//Escribe datos en la dirección especificada de la EEPROM en el chip STC (es decir, programación de bytes)

void eepromWrite(uint address, uchar write_data)

{

uchar ii;

ISP_DATA=write_data;

ISP_ADDRL=dirección

ISP_ADDRH=direccióngt;gt;8; > ISP_CONTR=0x01;

ISP_CONTR=ISP_CONTR|0x82; // 0x80 si SYSCLKlt; 0x81 si SYSCLKlt; 0x82 si SYSCLKlt; ISP_CMD =0x02;

ISP_TRIG=0x46;

ISP_TRIG=0xb9

para(ii=0;iilt;3;ii);

ISP_ADDRL=0xff;

ISP_ADDRH=0xff;

ISP_CONTR=0x00;

ISP_CMD=0x00; ;

}

//Leer un byte de la EEPROM dentro del microcontrolador STC

uchar eepromRead(uint dirección)

{

{

p>

uchar ii,z;

ISP_ADDRL=dirección

ISP_ADDRH=direccióngt;gt;8;

//ISP_CONTR=0x01;

ISP_CONTR=ISP_CONTR|0x82; // 0x80 si SYS

ISP_CMD=0x01; // Recuerda leer el comando

ISP_TRIG=0x46;

ISP_TRIG=0xb9;

para(ii=0;iilt;3;ii); 0xff;

ISP_ADDRH=0xff;

p>

ISP_CONTR=0x00;

ISP_CMD=0x00;

z=ISP_DATA

retorno (z);

}