"Teoría es cuando se sabe todo y nada funciona. Práctica es cuando todo funciona y nadie sabe porqué. En este recinto se conjugan Teoría y Práctica: nada funciona y nadie sabe porqué..."

---------------------------------------------------------------


Tarjeta Base para ESP32-WROOM
















Bajar archivo Diagrama Eléctrico (pdf)
Bajar archivo Diagrama Circuito Impreso PCB (pdf)
Bajar archivo Máscara de Componentes (pdf)

Semana Nacional de Ingeniería Electrónica SENIE 2026

 

Sistema ISP-USB-AT89S51-52



Bajar 
archivo Diagrama Eléctrico (pdf)
Bajar archivo Diagrama Circuito Impreso PCB_Top (pdf)
Bajar archivo Diagrama Circuito Impreso PCB_Bot (pdf)
Bajar archivo Máscara de Componentes (pdf)
Bajar archivo Material (pdf) 

Editor MCS51

Con esta herramienta podrás editar programas para los microcontroladores de la familia mc51 además de ensamblar y programar los microcontroladores con el hardware del Programador MCS51.
 
 Bajar Software MCS51 (zip)

Ejemplo de Comunicación Serie con la UART del mC51

Este es un ejemplo para configurar la UART y comunicar el microcontrolador mC51 serialmente con otro dispositivo. Usa las rutinas anteriormente diseñadas D_LCD, TECLADO y ASCII4B. Este ejemplo recibe un dato enviado por otro dispositivo, por ejemplo una PC através de la hiperterminal de windows, recibe este dato y lo despliega en una pantalla LCD, además de leer un teclado matricial y enviar el código ascii de la tecla solicitada (0 a F) hacia un dispositivo externo que podría ser una PC para visualizarlo en la hiperterminal de windows. Esta debe ser configurada a 9600 bits por segundo, 8 bits de datos, sin paridad y 1 bit de stop.

;------------------------------------------------------------

org 0H
INI_PRG:
acall INI_UART

RECIBIR:
jnb RI,TECLA ;espera fin de recepción
clr RI
mov A,SBUF ;recibe dato de PC
acall D_LCD ;despliega información en LCD

TECLA:
acall TECLADO ;lee el teclado matricial
cjne A,#10H,ENVIAR ;hay alguna tecla?
sjmp RECIBIR

ENVIAR:
acall ASCII4B ;genera ascii de la tecla
mov SBUF,A ;transmite información a PC
jnb TI,RECIBIR ;espera fin de transmisión
clr TI ;prepara nueva transmisión
sjmp RECIBIR


;**********************************
; Rutina de configuracion de la UART
;---------------------------------------------


INI_UART:
mov SCON,#50H ;transmisión en modo 1, habilita recepción serial
mov TMOD,#20H ;timer 1 en modo 2 autorrecargable
mov TH1,#0FDH ;baud_rate a 9600 @ 11.0592 MHz
mov TL1,#0FDH
setb TR1 ;inicia el baud_rate
ret
;---------------------------------------------

end

Rutinas para inicializar un LCD con mC51

Con estas pequeñas rutinas podras enviar un dato (D_LCD) o un comando (C_LCD) a un display de cristal liquido LCD mediante los microcontroladores de la familia INTEL mC51. El puerto P0 se usa para enviar la información y los pines WR y RD para control del LCD (RS y EN respectivamente; la terminal R/W' del display debe ser conectada a 0 volts). La información debes colocarla en el acumulador. Puedes hacer uso del Sistema de Desarrollo mC51.

;***********************************
; Rutina de configuracion del DISPLAY LCD
;---------------------------------------------

INI_LCD:
mov A,#38H
acall C_LCD
mov A,#01H
acall C_LCD
mov A,#0CH
acall C_LCD
mov A,#80H
acall C_LCD
ret

;-----------------------------------------------------------
; Rutinas para enviar un comando y/o dato al DISPLAY LCD
;-----------------------------------------------------------

C_LCD:
clr WR ;envia comando
sjmp L00
D_LCD:
setb WR ;envia dato en ascii
L00:
mov P0,A
djnz R7,$
clr RD ;habilita la pantalla
djnz R7,$
setb RD ;deshabilita la pantalla
ret

Rutina para leer un Teclado Matricial con MC51

Con esta rutina podras leer un teclado matricial de 16 teclas (4 renglones y 4 columnas). En el puerto P2 del microcontrolador de la familia MC51 se conecta el teclado. El código de la tecla solicitada se regresa en el acumulador (de 00H a 0FH para teclas individuales, 10H si no se oprimio ninguna tecla y 11H si se oprimieron mas de una tecla). Puedes hacer uso del Sistema de Desarrollo mC51. La distribución de las teclas es la siguiente:




;**************************************
; ------- Rutina para detectar una tecla -------
;-----------------------------------------------------
TECLADO:
mov R6,#0EFH ;inicia las columnas (nibble alto)
mov A,R6

CHK_TEC:
mov P2,A ;envia columna
djnz R7,$
mov A,P2 ;lee el renglón
mov R5,A
anl A,#0FH
cjne A,#0FH,TEC_00 ;verifica si hay tecla
mov A,R6
rl A ;siguiente columna
mov R6,A
cjne A,#0FEH,CHK_TEC ;verifica última columna
mov A,#10H ;código de no_tecla
ret
;------------------------------------------------------------

TEC_00:
mov A,R5
cjne A,#7EH,TEC01
mov A,#0FH
ret

TEC_01:
cjne A,#7DH,TEC02
mov A,#0BH
ret

TEC02:
cjne A,#7BH,TEC03
mov A,#00H
ret

TEC03:
cjne A,#77H,TEC04
mov A,#0AH
ret

TEC04:
cjne A,#0BEH,TEC05
mov A,#0EH
ret

TEC05:
cjne A,#0BDH,TEC06
mov A,#09H
ret

TEC06:
cjne A,#0BBH,TEC07
mov A,#08H
ret

TEC07:
cjne A,#0B7H,TEC08
mov A,#07H
ret

TEC08:
cjne A,#0DEH,TEC09
mov A,#0DH
ret

TEC09:
cjne A,#0DDH,TEC0A
mov A,#06H
ret

TEC0A:
cjne A,#0DBH,TEC0B
mov A,#05H
ret

TEC0B:
cjne A,#0D7H,TEC0C
mov A,#04H
ret

TEC0C:
cjne A,#0EEH,TEC0D
mov A,#0CH
ret

TEC0D:
cjne A,#0EDH,TEC0E
mov A,#03H
ret

TEC0E:
cjne A,#0EBH,TEC0F
mov A,#02H
ret

TEC0F:
cjne A,#0E7H,TEC_ERR
mov A,#01H
ret

TEC_ERR:
mov A,#11H ;código de más de una tecla
ret

Sistema de Desarrollo mC51

Con este sencillo sistema podras desarrollar las tareas de Sistemas Digitales con Microcontroladores con el microcontrolador de la familia mC51.



Bajar archivo Diagrama Eléctrico (pdf)
Bajar archivo Diagrama Circuito Impreso PCB (pdf)
Bajar archivo Máscara de Componentes (pdf)