Red de conocimiento informático - Consumibles informáticos - Buscando un programa con puntuaciones altas. Estoy usando AT89S52. ¡Se adjunta el esquema!

Buscando un programa con puntuaciones altas. Estoy usando AT89S52. ¡Se adjunta el esquema!

Según los requisitos de la pregunta, es un generador de secuencia de pulsos.

El pulso de control se ingresa desde P2.0. Siempre que se ingresa un flanco descendente, se emite un pulso de cambio en el puerto P1 y se emite un código de segmento en P0 para su visualización.

El programa es el siguiente:

#include?lt;reg51.hgt;?

#include?lt;intrins.hgt;?

#define?uint?unsigned?int?

#define?uchar?unsigned?char

sbit?sw?=?P2^0;

uchar ?code?table[10]?=?{0xC0,?0xf9,?0xa4,?0xb0,?0x99,?0x92,?0x82,?0xf8,?0x80,?0x90};?

/ /---------------------------------------------- --- --

void?Delay_1ms(uint?x)?

{?

uint?i;?

uchar ?j; ?

para(i?=?0;?i?lt;?x;?i )?para(j?=?0;?j?lt;=?148;?j );?

}?

//----------------------- --- ------------------

¿nulo?Principal(nulo)?

{?

mientras ?(1)?{

//1.?Cuando la entrada de P2.0 es "1" y la salida de P1.0 es "1", el tubo digital muestra el número 1 P1?=?255; P0 ?=?table[1]; Delay_1ms(20); while?(sw?==?1);

//2.?Cuando la entrada P2.0 es " Salidas 0" y P1.0 Cuando es "0", el tubo digital muestra el número 1 P1?=?0xfe; P0?=?table[1]; Delay_1ms(20); while?(sw?==?0 );

/ /3.?Cuando la entrada de P2.0 es "1" y la salida de P1.1 es "1", el tubo digital muestra el número 2 P0?=?table[ 2]; Delay_1ms(20); while?(sw?== ?1);

//4.?Cuando la entrada de P2.0 es "0" y la salida de P1.1 es "0", el tubo digital muestra el número 2 P1?=?0xfd; P0?= ?table[2]; /5.?Cuando la entrada P2.0 es "1" y la salida P1.2 es "1", el tubo digital muestra el número 3 P0?=?table[3]; =?1);

//6.?Cuando P2.0 Cuando la entrada es "0" y la salida de P1.2 es "0", el tubo digital muestra el número 3 P1?= ?0xfb; P0?=?table[3]; Delay_1ms(20); while?(sw?==?0 );

//7.?Cuando la entrada P2.0 es "1" y la salida P1.3 es "1", el tubo digital muestra el número 4 P0?=?table[4]; Delay_1ms( 20);(sw?==?1);

//8.?Cuando la entrada de P2.0 es "0" y la salida de P1.3 es "0", el tubo digital muestra los números 4 P1?=?0xf7; P0?=?table[3]; (20); mientras?(sw?==?0);

};?

>}

//------------------------------------------------ --- ------------

La visualización de la simulación es la siguiente: