GENERADOR DE FRECUENCIAS CON EL 8051

A continucación se muestra un programa desarrollado en ensamblador para el 8051 de ATMEL. Genera cuatro frecuencias de 1, 10, 100 y 1000 Hz dependiendo de que pulsador se presiona. El valor de la frecuencia de salida se muestra mediante unos displays de ocho segmentos. Al final se grafica la simulación del programa realizada en PROTEUS.

La simulación de este sódigo se la realizó en el demo de PINNACLE 52.

; Utilizacion de interrupciones
; Desarrollar un programa que permita generar una de las
; señales de reloj 1, 10, 100, 1000 Hz, al mismo teimpo
; que se observa en los displays el valor de la frecuencia que se
; esta generando: Eliminar tambien el uso de los interruptores que
;escogen la frecuencia y reeplazarlos por el uso del teclado
;
;Por: Pablo Vallejo
; Diego Barragán

; con la tecla 1 se escoge la frecuencia de 1hz.
; con la tecla 2 se escoge la frecuencia de 10hz.
; con la tecla 3 se escoge la frecuencia de 100hz.
; con la tecla 4 se escoge la frecuencia de 1hz.


DPORT EQU 0A0H ;DIRECCION PUERTO DE DATOS P1
INITD EQU 38H ; INICIALIZA DISPLAY
LIMP EQU 01H ;BORRA PANTALLA
INICIO EQU 02H ;POSICION INICIAL
VISUA EQU 0CH ;ENCIENDE Y CURSOR ESTATICO
CPORT EQU 0B0H ;DIRECCION PUERTO P3
STROBE EQU 0B4H ;P3.4 PIN 14-ENABLED
CTRL EQU 0B5H ;P3.5 PIN 11-RS
PROGP EQU 0010H
;*****************************
;AREA DE VECTORIZACION
;*****************************
ORG 0000H
LJMP PROGP
ORG 000BH
LJMP CHE


;**************************
;AREA PARA EL PROGRAMA PRINCIPAL
;************************** ;PROGP:
ORG 0010H
MOV SP,#2FH
MOV TCON,#01H
MOV IE,#83H

SETB P0.1
JNB P1.0,DDD
JNB P1.1,CCC
JNB P1.2,BBB
JNB P1.3,AAA

SJMP PROGP

CHE: JNB P1.0,DDD
JNB P1.1,CCC
JNB P1.2,BBB
JNB P1.3,AAA
RET;***********************
;F= 1kHz
;***********************
AAA: LCALL LCDA
MOV TMOD,#01
ALTO1: CLR TF0
MOV TH0,#254
MOV TL0,#51
SETB TR0
MOV A,PSW
PUSH ACC
JNB TF0,$
POP ACC
MOV PSW,A
CPL P0.1
LCALL CHE
SJMP ALTO1

;***********************
;F= 100Hz
;***********************
BBB: LCALL LCDB
MOV R0,#10
MOV TMOD,#01
ALTO2: CLR TF0
MOV TH0,#254
MOV TL0,#51
SETB TR0
JNB TF0,$
DJNZ R0,ALTO2
MOV R0,#10
CPL P0.1
LCALL CHE
SJMP ALTO2

;***********************
;F= 10Hz
;***********************
CCC: LCALL LCDC
MOV TMOD,#01
ALTO3: CLR TF0
MOV TH0,#76
MOV TL0,#01
SETB TR0
JNB TF0,$
CPL P0.1
LCALL CHE
SJMP ALTO3

;***********************
;F= 1Hz
;***********************
DDD: LCALL LCDD
MOV R0,#10
MOV TMOD,#01
ALTO4: CLR TF0
MOV TH0,#76
MOV TL0,#01
SETB TR0
JNB TF0,$
DJNZ R0,ALTO4
MOV R0,#10
CPL P0.1
LCALL CHE
SJMP ALTO4
;****************
;AL L C D
;****************LCDA: MOV P3,#00000000B
mov P2,#00000100B

RETLCDB: MOV P3,#00000000B
mov P2,#01000000B

RETLCDC: MOV P3,#00001000B
mov P2,#00000000B

RETLCDD: MOV P3,#10000000B
mov P2,#00000000B

RETEND

A continuación se muestra la simulación del programa.

simulacion

No response to “GENERADOR DE FRECUENCIAS CON EL 8051”