Académique Documents
Professionnel Documents
Culture Documents
1’
Alumno: Gerard0 Márquez
Matricula: 88324556.
A mi madre y a mi padre
Por su ayuda y compresión para lograrmi carrera
A m i s . hermanos:
JOEL
LEONARD0
Al mi profesor de proyecto.
Enestemanualsehainscrtadoelmaterialdeinformación
necesario para su realización de cada una de las practicas, sin
embargo es bueno que se consulte la bibliografia para ampliar y
profundizar sus conocimientos.
1 .. INTRODUCCION..................................... 3
CAPI2wLO I
CAPITULO 11
3
CAPITULO I
MANUAL DE PRACTICAS
CARACTER~STICAS DEL z 8 0 .
I u Bus direcciones
16 bits
Figura 1.-Diagrama deblccAr-de la arquitectura interna del
procesador central280.
4
MANUAL DE PRACTICAS
1.REGISTROS.
A Acumuladores y registros de estado
El procesador central contiene dos pares independientes de
acumulador y registro de estado, uno en el conjunto de
registros principalesy el otro en el conjunto de registros
alternatidos. El acumulador recibe los resultados de todas
las operaciones lógicas y aritméticas de 8 bits, mientras
que el registrode estado indica la ocurrencia de condiciones
especificas lógicaso aritméticas en el procesador tales como
paridad,cero, signo, acarreo y desbordamiento.Una instrucción
cie intercambio simple permite al programador seleccir-lar uno
c o t r o par de acumuiadoreso registros de estado.
5
MANUAL DE PRACTICAS
6
MANUAL DE PRACTICAS
i
Figura 2.
280.
-Configuración de registros de procesador centra:
7
MANUAL DE PRACTICAS
6-
- a0
m A l
-MRE
a2
I ORQ A3
CONTROL DEL 9 a4
SISTEMA WD A5
A6
R X H A 7
HFILT a8 BU'S D E
DIRECCIONES
WCIIT A 9
A l 9
A l l
C O N T R O L DEL I NT A 12
CPU a13
NHI A l 4
ais
RES E T
D9
CONTROL DEL B U S RQ Dl
B U S CPU BUSAK D2
D3
BUS D E
D A T OS
nes) para
8
MANUAL DE PRACTICAS
la ejecución de códigosde operación de
2 bytes, MI es generada cuando se busca
cada byte de código de operación. Estos
códicros de operación de2 bytes
comienza siempre conCBH,DDH,EDH o FDH.
MI se presenta también con IORQ(negado)
para indicar un ciclo de acuse de
recibo de interrupción.
WR escritura
de Salida triestado, activa a nivelbajo. WR
22 memoria indica que el bus
de datos del procesador
(WR negada) central retiene datos validos a almacen
9
MANUAL DE PRACTICAS
arce en la memoriao dispositivo de E / S
objeto de direccionamiento.
RFSE regeneración Salida, activa a nivel bajo RFSH indica
28 (RFSHnegada) que los siete bits inferiores del bus de
direcciones de regeneración para
memorias dinámicas y la señal MREQ en
curso debe emplearse para realizar una
lectura de regeneración para todas las
memorias dinámicas.
10
MANUAL DE PRACTICAS
11
MANUAL DE PRACTICAS
3 ROTACI~NY DESPLAZAMIENTO
Los datos pueden ser objeto de rotacióny
desplazamiento
en el acumulador, un registro del procesador centralo
memoria. Estas instrucciones tiznen también mediosde
rrataxiento del código decimal coditicado en binarlo
!. BCD 1 .
z WIPULACI~N DE BIT
La manipulación de bits incluye las funciones de
posicionamiento de inicialización y de prueba. Los bits
indixTiduales pueden modificarseo probarse en el
acumulador, unprocesador central o memoria. Los
resultados de la operaciones de prueba se indican en el
registro de estado.
12
MANUAL DE PRACTICAS
H CONTROL CPU
Estas instrucciones incluyen la parada funcional eldeCPU
o la de hacer quese ejecute una NOP (sin operación). La
capacidad para desinhibiro inhibir entradas de
interrupción es un mediode control suplementario.
MSB
LSB
(Bit mas significativo) (Bit menos significativo)
C = 1NDIC.ADOR DE ACARREO.
N = INDI ADOR DE SUMA'RESTA
P/V = INDICD.?C)R DE PARIDAD/DESBORDAMIENTO
H = INDICADOR DE SEMIACAREO
Z = INDICADOR DE CERO
S = INDICADOR DE SIGNO
13
MANUAL DE PRACTICAS
X = NO UTILIZADO
figura 5 posiciones e identidad de los bits de indicación de
estado en el registro de estado.
Aj Arquitectura esLándar.
Laarquitectura estándar
se
caracteriza por utilizar u? microprocesador (MPU) que realizalas
funciones de C P U . La memoria ( R A M y ROM) y el control de l o s
dispositivos
de
entrada y salida (PIO) son
externos
al
microprocesador.Serequiere,además,ungenerador de reloj
externo y un cristal.
Esta arquitectura se distingue por poseer tres canales de
información datos, direcciones y control. Es importante hacer
notar que, en la arquitectura estándar es posible estándar es
posible conectar todo el número de dispositivos deseados a los
canales de información, es decir, este sistema es ilimitado.
B) Microcomputadora en un circuito en un circuito integrado.
Los progresos de la integración a gran escala han hecho posible
desarrollar en un solo integrado un micr?procesador, un reloj,
memoria ( R A M y ROM) y control de Yuertos <e E/S. Además de esto,
zluu~c scuentan también cor. reloje; programables, circuitosde
_ .
i : : i c i z - l z a c l o n , etc. El c r i s - t a l es externo.
. I
_,na
_ consecuencia imporEante e.1 esta arquitectura. es el no
requerir del canal de datos ni el de direcciones. Estas líneas
sobrantes se utilizan para proporcionar, al menos, tres canales de
S Sits de entrada y salida. Estos puertos se conectan directamente
a los dispositivos periféricos.
P Microcomputadoraendoscircuitc S integrados.Esta
arquitectura se encuentra entre la estándar y la microcomputadora
e:? un circuito integrado. En la microcomputa "Jra formadapor dos
integrados, el microprocesador es análogo a la primer arquitectura
mencionada. pero incorpora el reloj y capacidad de controlde
14
MANUAL DE PRACTICAS
D) Bit-slice. Estos
dispositivos son rebanadas de un
procesador, por lo que si se conectan en cascada, se cuenta con
una unidad lógica aritmética( A L U ) . El bit de acarreo (carry) y la
mejoría de la velocidad al multiplicar y al dividir deben ser
alambradas externamente. Sin embargo, el mayor problema radica en
la realización de!~a sección de control y su circuiteria asociada.
UnaALUconsusregistrospuedenserensambladacon 4 a 6
integradc.:,en cambio, la unidad de control del procesamielAco
r e q u i e r e ee 20 a 50 integrados.
15
MANUAL DE PRACTICAS
1 ARQUITECTURA E
CRISTAL
I - MPU ROM RAM PIO- PERIFERICOS
+
e
RELOJ A
9
A
rp
CANAL DE DIRECCIONES [NO SE INCLUYE EL CANAL DE CONTROL)
2 MICROCOMPUTADORA EN UNINTEGRADO
CRISTAL CANAL1
CONTROL - MPU
I
f
,
CANAL 2
PERIFERICOS
-
DATOS
CRISTAL -MEMORIA Y
CONTROL DE
MPU PERIFERICOS
L
PERIFERICOS
CANALE S E /S
2
Y4 I dL0L.L
SALlDb DATOS
ENTRADA INSTRUC CANAL DIREC.
I 1 -
BIT BIT BIT MEMORIA
Y
CONTROL SLICE SLICE CONTROL
SLlCi .
EXTERNO 2 N DE
1
PERIFERICOS
4 4 ++
I
CONTROL ~. -
ENTf4AG.A
16
PRACTICA 1
SISTEMA MÍNIMO.
el conociendo su
objetivo: Armar un sistema mínimo con 280,
arqitectura.
Material: Microprocesador Z8ci
Memoria
Ram
6264
MemoriaEprom2764
8255 Pio
245 er Buf
Convertidor D/A DACO8
Latch 323
Display
Compuertas
Resistencias,capacitores,etc
INTRODUCCI~NTE~RICA.
arquitectura
La microprocesador
del determina los
dispositivos de soporte requerido para hacer un sistema de mínimo.
Portantoesnecesarioexaminarbrevementelasprincipales
diferencias en la arquitectura.
Un sistema mínimo, tiene las características siguientes:
l.-ENTR?iDA Deben existir medios para permitir la introducción
de datos o instrucciones.
2 . - MEMORIA La secuencia del programa debe almaccmarse antes
Y despuésdelaejecución y debedinponersederecursos
paraalmacenar elresultados
-.. . - UNI3AD
decualquier sistema.
_ ARITMÉTICA Y LóGICA Realiza
operaciones
aritr,sticas con los datos
almacenados
de entrada.
4 . - SECCIóN DE CONTROL Toma decisiones con respecto al flujo
del programa y control del proceso basándose en los
estados internos delos resultados de cálculos
aritméticos.
5 . - SALIDA Los resultadosseentreganaldsdario o se
a-.
macsnanenunmedioadecuado.
El ricroprocesador es el circuito integrado único sobre el
qur esta construido un sistema mínimo. En su forma menos .-ompleja,
los microgrocesadores sólo incluyen las funciones de tres y cuatro
17
MANUAL DE PRACTICAS
elementos de datos y deben contar con dispositivos externos unidos
a los buses para realizar las demás tareas. En la figura 7 se
iicstra el diagrama de bloques básicos de una microcomputadora de
8 bits y muestra la interconexión de estos buses y elc-.mentosde
SALIDA DATOS
REGISTRO DE DATOS
DE HEHORIA
hL/mu.u~woR REG1 STRO DE DI RECCI ONES
t DE HEHORII
r . HEHORI I
'
I O
1 UNIDID RRITHETICI L O C I M
ACUHULRDOR
SALIDA
DATOS DE DATOS
118)
SALIDA ENTRADA
I I I
Figura 7.-Un diagrama debl'oques de una microcomputadora que
ilustra el concepto de la disposición
de buses de datos.
18
MANUAL DE PRACTICAS ~ ~~~ ~~
BUS DE
DIRECCIONES
BUS 3E (16)
DATOS
<8 >
19
MANUAL DE PRACTICAS
14
Y MEMOAlA
LOGIC4 DE REGISTRO
CONTROL DE ALMACENA- SALIDA
Y TEMPO MIENTO DE
RIZACION. DIRECCIONES
ENTRADA
U
U DlRECClON DERIVADA
20
MANUAL DE PRACTICAS
21
MANUAL DE PRACTICAS
DESARROLLO.
que se
1.- Armar el sistema mínimo, en base a el diagrama
muestra a continuación.
22
MANUAL DE PRACTICAS
CUESTIONARIO:
i.- Describa cada uno de los componentes que utilizo en el
sistema y diga que función tiene cada un-, de ellos.
EIBLIOGRAFÍA
23
"UAL DE PRACTICAS
PRACTICA 2 .
CHECAR RAM.
INTRODUC~I~N TS~RICA:
Para p,-xier
comprobar
que
nuestro
slsrema
funciona
correctamente tendremos que programarloy observar que lo realice
eficientemente esto puede implicar que esta bien armado.
Antes de podamos usar dispositivos de E/S debemos aprender
cómo actúa el direccionamiento del 280. Recordar que ladireccih
FF hexadecimal podría referirse a la memoria o a un puerto de
entrada o salida. El sistemapodríatenerlacapacidad de
diferenciar entrel o s tres posibles significados.
Las salidas de control del 280 tiene la información necesaria
para el encaminamiento,y seleccionando con puertaslas señales de
formas
adecuadas, se
obtienenlas
señalescorrectas.Para
operaciones de memoria y E/S básicas, las cuatro señales de
especiales interés son MREQ, IORQ, RD y WR. Sus definiciones son
las siguientes:
a) MREQ Petición de memoria.Siempreqye
sucede -ana
transacción entre el procesador central y la memoria, la línez.
MREQ pasa a nivel lógico " O " .
b) IORQ Peticijn de E J S . Siempre que sucede cna transacción
entre el procssaaor central y un puerto de encraca o de
salida, la linea IORQ pasa a un nivel lógico " 0 " .
c ) RD Petición de lectura. Siempre que el procesador central
lea datos deentrada de la memoria o de un puerto deentrada,
la 1 L I L C ~ .RD
~ pasa a un nivel lógico
"O".
d) WR Peticióndeescritura.Siemprequeelprocesador
central estc escribiendo datos en memoria o para un puerto de
salida, la línea m.pasa a un nivel lGgico " O " .
24
MANUAL DE PRACTICAS
U
STROBE DE
SERALES DE ESCRITURA
EL CPU -
WR I
E& (IOWR)
figura 11
3ESARROLLO.
1 . - Elaborar un programa qJe coqruebe el funcionamiento Us
la xemoria RAM y ROM.
25
MANUAL DE PRACTICAS
MREQ MEMWR
SERALES DE MREQWR
EL CPU
WR
""""""""""""" """"""""""""""
' RD
: MEMRD NO ES
NECESARIA
LA
HERORIA SE DEJA
EN EL ESTADO DELECTURA
CUANDO NO ESTAEN UNA OPERIlCION DE ESCRITURA .:
figura 12
CUESTIONARIO:
1.- A q u e se le llama fetch
26
MANUAL DE PRACTICAS
BIBLIOGRAFÍA:
1.- Steve Ciarcia.,Construyauna microcomputadora basado en
el Z80.,EdMcGRAW-HILL, Méx’co
1981
27
MANUAL DE PRACTICAS
PRACTICA 3 .
OBJETIVO: Lograrrranejar 6 manipular el modo O de la PPI
y realizar algunos ejemplos con el.
28
MANUAL DE PRACTICAS
del contador del programa se salva en el stock de la memoria y
continúa con la ejecución de la rutina de servicio a partir de la
dirección 0038H. La ventaja del modo 1 respecto al modo O es que
la interfaz del periférico no requicre enviar el código de la
instrucciónRSTalbusdedatoscuandoel 280 reconocela
solicitud de interrupción.
Interrupción en modo 2 El modo 2 de interrupción es el mas
poderoso de
. ,
los modos de el 280, permite hasta 128 niveles de
interrupclon.
E l modo 2 se ordena ejecutando la instrucción 1M2. Este modo
deirterrupciónrequierede una t;bla dedireccionesenla
memoria. El número de palabras de est? tabla es 2deX ?< en donde
N es el númerode interrupcionesposiblesdelsistemaen
particular.Elmodo 2 deinterrupcionespermiteseleccionar
cualquieráreadelamemoriaparaalmacenarlatabla de
direcciones de las rutinas de interrupción cargando el registro
vector 1 con 8 bits de mayor orden de la dirección que se desea.
DESARROLLO
1.- Realizar varios ejemplos utilizando el modoO , como por
ejemplo: Sacar información porel puerto A, poner en setCo,
leer un dato por el puertoB etc.
CUESTIONARIO:
3.
” Cuantas posibles configuraciones E
de/S del modo O .
diferentes pude haber.
EIBLIOGRAFÍA
1 . - William Barden Jr., The L b u Yicrocomputer handbook., Ed.
Howard W. Sams & CO; I~r.Indianapolis,Indiana E . U
1964.
29
MANUAL DE PRACTICAS
Solución de la 1
Practica
1. -Describa cada uno de los coaaponentes que utilizo en el
sistema y diga que función tienecada uno deellos.
a) 2 8 0 Es el microprocesador, el cual tiene mayor importancia
en nuestro sistema mlnimo, pues el se encarga de manejar los
dispositivos externos y llevar a cabo el procesamiento de las
señales o datos, todas sus características fueron descritas al
principio de este manual.
30
MANUAL DE PRACTICAS
Enparticularlasmemoriasocupadasnotendríanningún
problema, sola mente la que podrían tener algún problema serían
las SRAM, por que se tienen que estar refrescando un determinado
tiempo y si nosehaceestoadecuadamenteseperderíala
infJrmación o podría siempre estar refrescando la memoria
31
MANUAL DE PRACTICAS
LD HL,OOOOH ;x:=O
LD DE,OOOOH ;sum:=O
LD BC,OOOOH
FOR ;Ciclo for
LD A , (HL) ;mern[x:
CALL Suma ;s~m:=sum+mem[x]
INC H i
LD A ,FINROYI
SUB H
JP NZ,FOR
LD A,FINROML
SUB L
JP Z,FINFOR ;Si es iqual a fin termina el ciclo
for
JP FOR
32
MANUAL DE PRACTICAS
INC HL
L9 A,FINRAMH
SUB H;como estareStaconocemossiHL llego a
BFOOH
JP NZ,REPITE ;mientras no ocurre entrara al ciclo
LD A,FINRAML
SUBL;conestosesaldrádelcicl . cuandoHL
JP NZ,REPITE
LD HL,ORGRAM ;iniciamos la lectura al principio de la
m
LEE LD A, (HL) ;leemos el contenido de todas las posiciones
de
SUB 55H ;la memoria RAM y comparamos con 55h si no
JP NZ,ERRORRAM;coinciden enviamos mensaje de error
INC HL
LD A , FIN-
33
MANUAL DE PRACTICAS
SUB H
JP NZ,LEE
LD X,FINRAML;se controla el numero de localidades a
leer
SUB 3 ;como en el caso de la escritura
JP KZ,LEE
MSGBIEN CALL MSGRAM ;para desplegar r,a
;D D,04H ;para recorrer 4 localidades donde se
encuentra
LD EC,09H ;el código de mensaje
ADD XL,BC ;movemo,c a HL donde se encuentra en mensaje
de
CALL MUESTFA;bien
FIN: RET procedimiento
;del checkram
34
MANUAL DE PRACTICAS
OUT(1), A
LD A,TIMEBH
DELAY2 LD B,TIMEBL
ESPERA DJNZ ESPERA
DEC ii
JP NZ,DELAY2
INC HL
DEC 3
JP NZ,SIGUE
RET
35
MANUAL DE PRACTICAS
Clock
00-115
nREQ
-
WR
BUS D E
DATOS
CDB-D7 >
-
WIlI T
flotants
36
MANUAL DE PRACTICAS
7 -Cuando el camhlo de una sena1 condiclona el cambio de 011s. s e incluye una tlecha
indicando la inlerrelacidn como sigue.
-2
D E oxla torma el qua la tsanslci6n da una xefial de balo a alto provoque el camhao
do o t r a tefiel del nivel alto al bajo. s e represenla como sogue
Según eslo, una transicrm del nlvel bajo al alto de una señal que provoca
cambios en otras dos señales debe ilustrar como sigue
37
MANUAL DE PRACTICAS
Solución de la practica3 .
l.-Realizar varios ejemplos utilizados el modo O, como por
ejeqp1o:Sacar información por el puerto A, poner en set Co, leer
un dato por el puerto B etc.
OUT ( 0 4 ),A;sacamos un O
LD A,OFFH ;
OUT (041,A ;sacamos OFFh
JP OPERA ;Cerramos el loop
38
MANUAL DE PRACTICAS
l.-Dibujar e1 mapa de que utiliza
puertos elsistema.
1 PuertoA 1
1 Puerto c I
I Control I
39
MANUAL DE PRACTICAS
Solución a la practica 4.
Programa receptor
LD A,B 8 k ;Se carga la palabra de control
OUT (07),A
BANDERA: IN A, (o6j ;Se prueba el bit para encontrar
BIT 7,A
JP Z,BANDERA ;el dato al bus y pto. A
IN A , ( 0 4 ) ;se carga en ACC.A
RST 08 ;regresa
40
MANUAL DE PRACTICAS
2.-Mencione los tipos deinterrupciones que tiene el 2 8 0
interrupción no mascarable
I N T interrupción mascarable.
41
CAPITULO I1
ARQUITECTURA DEL MICROCONTROLADOR 8031
1.1 Características del Micro-8031
42
MANUAL DE PRACTICAS
Pl.O vcc
P1.l
P1.2
P0.4
Pl.6 P0.5
P1.7
RST 8031 P0.6
P0.7
CPU
RXD
INTO
TO
XTAL2 ,lg
XTALl 20'
GND .11)1
43
MANUAL DE PRACTICAS ~~ ~
~~
44
MANUAL DE PRACTICAS
XTALl 19 Cristal 1 es la entrada del cristal
para el circuito oscilador (generador
del reloj interno) que amplifica
e "nvierte la entrada.
GND 20Tierra O V referencia.
P2.o-P2.7 21-28 Puerto 2 Es un puerto bidireccional
con fijadores de nivel interno (pull
up) . Cuando se escriben1 ' S sobre el
puerto las líneas puedenser
utilizadas como entradas o como
sa'.idas. Como entradas, las líneas
q u ? son externamente colocadas en la
posición baja proporcionarán una
corriente hacia el exterior. El
puerto 2 es utilizado además para
direccionar memoria externa. Este
puerto, emite el byte más altode la
dirección durante la búsqueda de
datos en la memoria del programa
externo y durante el acceso a
memorias de datos externos que usan
direccionamientos de 16 bits.
Durante el acceso a una memoria de
datos externa que usa direcciones de
8 bits, el puerto 2 emite el
contenido del registro correspon
d'.ente a este puerto, que se
encuentra en el espacio de funciones
especiales.
45
MANUAL DE PRACTICAS
46
MANUAL DE PRACTICAS
EXTERNA
RAM
PSEN-O EXTERNA
lOOM
Figura 2 Estructura de la
INTERNA
256 BYTES
INTERNA.
DE RAM OoWH -
memoria
-
RD-WR-O
47
“ J A L DE PRACTICAS
lasa rutinas
sido asignadas por el fabricante, para dar servicio
it
0003H
TFO (interrupción del timerO ) OOOBH
IE1 (interrupción 1 externa) 0013H
TF1 (interrupción del timer1) OOlBH
R1 y T1- (interrupción serie) 0023H
Unainterrupciónpuedesercausadademaneraexterna
.
o
intei!:a,
es decirpuede
ser
producida
por
undj?;p<.Jsit.ivo
perifé-ico o por programación respectivamente. La interrupcicn con
mayor ilto orden es el RESET el cual no puede ser mascarable.
Cuando el RESET ocurre el programa comienza a partir de la
direccion O O O O H del programa.
48
MANUAL DE PRACTICAS
Cuandounainterrupciónesproducida,elcontadordel
programa (PC) almacena su contenido temporalmente dentro del SP
(apuntador de apilamiento) y se carga con la dirección de la
localidaddondeseencuentralarutinadeservicio de la
interrupción correspondiente.
Una vezposesionadoenesalocalidaddeberádecomenzarla
ejecución de larutinadeservicio,hastaqueencuentrela
instrucción RETI, que le permitirá al PC al recuperar nuevamente
su valor original almacenado en SP, el y continuar con el programa
anterior a la interrupción.
Por ejemplo a la interrupción O , se le asigna la localidad
0003H, si la interrupción no se utiliza, esta localidad puede
utilizarse
para
propósitos
generalesdel
programa,si la
interrupción ha sido permitido (estableciendo el correspondiente
dentro del registro del control IE ) , en el momento que exista una
activaciór! de la interrupción (estando bajo en la línea INTO) 21
PC se cargara con 0003 y saltara a esa localidad para comenzar a
ejecutar la rutina de servicio.
Estas localidades de memoria de los servicios de interrupción
están separadas en intervalos de 8 bytes, entre si, cuando el
servicio de interrupción es corto, este puede estar contenido en
los 8 bytes. En el caso de que fuese largo se puede ejecutar un
salto a otra localidad de memoria para continuar con la secuencia
de interrupción. El termino de servicio de interrupción deberá de
realizarse mediante la ejecución de la instrucción RETI .
1.4.2 Memoria de programa interna
y externa.
Cuando se utilizan elementos de la familia del 8051 con
memoria interna ROPI (16 K) , esta puede ser accesada mediante la
conexi& de la líxea EA=1 (Vcc). Si la memoria intern?: es 'de
4Kbytes y EA=1, el cpu seleccionara internamente el ROM, desde
OOOOH hasta OFFFH y de manera externa automáticamente a partirde
lOOOH hasta FFFFH.
Por el .contrario, si la línea E A = O , el cpu seleccionara de
forma ex+%xrs el ROM, desde la dirección OOOOH hasta FFFFH. e11 el
caso del 8031 esta línea se conecta siempre O aVolts (Vss).
La línea-PSEN(program store enable), que sirve para leer el
ROM externo, es activado en todas las búsquedas (fetches ) del
programa. PSEN no se activaenbúsquedas(fetches)del RUM
interno.
En la figura 3 , se muestra la conexión de una EPROM externo.
49
MANUAL DE PRACTICAS
PO
BUS D
DEATOS
fiCONTROLADOR
11
I I - I
EPROW
- .
Dir Ba j a
EA -. la d i w c c i o n
8031
-
ALE
P2 Direccion Alta
-
PSEN
50
MANUAL DE PRACTICAS
51
MANUAL DE PRACTICAS
BITS DE 7FH
S ELECC I ON ESPACIO LIBRE DE
DELBANCO 3 ElH DATOS
DE REGISTROS ~
10H 4 BANCOS
DE 8 REGISTROS
ElFH R0-R7
El8H
UlLOR DE RESET
DEL SP.
ACC
Registro B OFOH
I
word
status
Program
PSW ODOH
pointer
Stack I 081H
I Data
pointer I
I DPL I Data pointerlow 082H
U DPH I Data
pointer
high I 083H
I PO I Puerto O I 080H
I P1
52
P2 Puerto 2 OAOH
P3 Puerto 3 OBOH
IP Control
prioridad
de OB8H
de interrup .
OA8H IE de Control
validación de
interrup.
TMOD 089H
control
de Modo
timer/contador
TCON '388H
timer/
Control
de
contador
THO Byte
alto
del t/c O 08CH
TLO Byte
bajo
del t/c O O 8AH
TH1 Byte alto del t/c 1 O 8DH
TL1 Byte
bajo
del
t/c 1 O 8BH
SCON 098H
serie
Control
de
SBUF 099H
datosde
Buffer
serie
PCON Control
potencia
de087H
53
MANUAL DE PRACTICAS
FO PSW.SBANDERA O PARA USO GENERAL
RS1 PSW.4BIT 1 SELECTOR DEL BANCO DE REGISTROS
RSO PSW.3BIT O SELECTOR DEL BANCO DE REGISTROS
OV PSW. 2BANDERADEL SOBRE FLUJO
- PSW.1BANDERA SIN DEFINIR
P PSW.OBANDERA DE PARIDAD ES'TWLEC'E LIMPIA POR
HARDWARE, INDICA SI EL # 1 ' S E S PAR O IMPAR
DEL ACUMULADOR.
Este registro como ya se vio, reside en el espacio SFR. El
registrocontiene; el bitdecarry,elbitauxiliar (para
operaciones BCD), l o s 29s bitsdeseleccióndelbanco de
registros, labandera dl: overflow,elbit de paridad y dos
banderas sin definir.
El bit de paridad refleja el numero de l's, en el acumulador:
P=l, si el acumulador contiene un numero impar1's. de
P=O, si el acumulador contiene un numero parl's, de es decir el
numero de l ' s , en el acumulador mas P es siempre par.
2.3 REGISTRO DE CONTROL DE POTENCIA
54
MANUAL DE PRACTICAS
2 . 4 REGISTROS DE INTERRUPCIONES.
55
MANUAL, DE PRACTICAS
2A TIMER/CONTADOR.
56
MANUAL DE PRACTICAS
IT1 TCON.2Bit de control del Interrupción1.
IEO TCON.1 Bandera de transición de la interrupción O.
externa
IT0 TCON.0 Bit de control del InterrupciónO.
TF1 , TFO , IE1 , IEO Se activan por Hardware.
TR1 , TRO , IT1 , IT0 Se activan por Software.
57
MANUAL DE PRACTICAS
t I
OSC +I2
TU
5 bits
TH1
8bits - IPi -
INT
58
MANUAL DE PRACTICAS
osc '
32
w
qh4 Ill
- IFí
IHi
-,
IN
I
I
8 bits
1
8bits -
I --u
h
"lm TI I
GhIE
J
INTI
#
Figura 13 Modo 1 contador de 16 bits con Timer/Contador1
MOMS 3 DEL TIMER/CONTADOR.
El timer 1, en el modo 3 mantiene su cuenta, es decir, tiene
el mismo efecto que cuando se establece la banderaTRl=O.
59
MANUAL DE PRACTICAS
I NI1
Figura 14 Modo 2, registro
38bits
de 8 bits a ?.torecargable
60
MANUAL DE PRACTICAS
TRB
#TE
I NTB
TRI CONTROL
61
MANUAIL DE PRACTICAS
2B PUERTO SERIE.
62
MANUAL DE PRACTICAS
63
M
AN
U& DE PRACTICAS
MODO 3: 11 bits son transmitidos (TXD) o recibidos (RXD), en la
mismaforma que el modo 2, sólo que aquí la frecuencia de
transmisión/recepción (Baud Rate). Se utiliza el timer 1 para
generar el baud rate.
64
MANUAL DE PRACTICAS
PRACTICA 1
TRANSMISI~NDE DATOS m SERIE
Objetivo: Utilizar el sistema mínimo del
8031 para transmitir
señales de tiempo real hacia una computadora.
Material: Microcontrolador 8031
Memoria EPROM
2732
Memoria RAM 6116
Muitiplexores.
B v f f ers .
Controlador de Teclado 8279
Compuertas varias.
Phusbotons.
Displays.
Cristal etc .
12MHz,
Ver el diagrama.
Doble emisor/receptor1488
INTRODUCCI6N TE6RICA:
Un
parámetro
importante,
quese
debe
de
tomar
en
consideración, al iniciar cualquier diseño, en la capacidad de
almacenamiento de información de l o s dispositivos principalmente
en los sistemas de adquisición de datos, donde, el tratamiento
análisis y calculo de resultados es indispensable.
Nuestro sistema tendrá que conectarse con una PC y trasmitir
una sefía1 en tiempo real, puede ser cualquier señal (cuad.--ada,
triangular, senoidal, etc).
Hay dos formas de conectarse a la PC sin utilizar carjetas de
interfaz o dispositivos de E/S como
hacen los teclauos,
impresoras, ratones, etc. Estas formas son atraves delos puertos
serie RS 232 y dcl puerto paralelo de la impresora; se puede
acceder a ellos mediante el manejo de l o s conectores situados en
la parte traser?. de la P C . Si se desea realizar la interfase de un
dispositix.-oL Liiz de los puertos, corremos el riesgo de quemar
algúncircuitointegrado o algunatarjetade E/S poniendo
accidentalmente algunas de las líneas a masa o aplicandola
alimentación dondeAO se debe.
Un buen modo de evitar esos problemas es insertar un buffer
(circuito de separación) entre PC la y los circuitos fabricados en
65
MANUAL DE PRACTICAS
66
MANUAL DE PRACTICAS
PRACTICA 2
Manejo deADC
Objetivo: Utilizar el programa de transmisión anterior y
poder transmitir diferentes señales a la computadora.
Material: ADC8099
1488
DB2 5
Sistema anterior.
INTRODUCCI~NTEÓRICA:
67
MANUAL DE PRACTICAS
V REF
~
GENERADOR
DE RAMPA
ANALOGIM
RESET
ARRANQUE
A
I
ENTRADA V V
CONVERTIDOR DE'
m TENSION EN
ANCHO DE PULSO
CONTADOR
ANALOGICA
GENERADOR DE
RELOJ
SALIDAS
DIGITAL EN
PARALELO
68
MANUAL DE PRACTICAS
Uin
CONVERTIDOR DE
DIGITALAANALOGICO
, DE M BITS
e-
COMPARADOR
DE TENSION IC
SALIDA DE
PARALELO
DE N-BITS
---
RESET
69
MANUAL DE PRACTICAS
REFERENCIA
ANALOGICA D
p+ -~
I
~
CONVERTIDOR E
SAL1DA V DIGITAL A ANAL Jtlm
I
COMPARADOR
SALIDA DE
PARALELO
DE 8-BITS
-
ENTRADA V
wD I
1
REGISTRODE SALIDA
I RELOJ APROXIMACIONES
SUCESIVAS
DE SERIE
C O M I E N Z O DE
LA CONVERSION
Figura 18 Convertidor
analógico
por
aproximaciones
sucesivas.
Desarrollo:
70
MANUAL DE PRACTICAS
está
viendo,
además
como
van
cambiando
las
mediciones
respectivamente en dicho canal (en número del O al 9 "SISTEMAS
DECIMAL"), el formato visto en los DISPLAYS es el siguiente:
DISPLAYS DE-, O AL 7 :
Debe desplegar el canal en el cual se
está haciendo la medición en ese momento.
DISPLAYS DEL 8 AL 10:
Debeaparecercodificadosensistemas
decimal las primeras mediciones de OOH a FFH o mejor dicho en
sistemas decimal, variará de O00 a 255.
DISPLAYS DE, 11 AL 13
CUESTIONARIO:
1.-Que tipo de convertidor ocupo
2.-Mencione las características para seleccionar este
convertidor A/D.
3.-Cori que instrucción se obtiene el valor a que se trasmite.
SIBLIOGRAFÍA:
1.-8051 AND DERIVATE MICROCONTROLLER, PHILLIPS
COMPONENTS,
SIGNETISC 1930.
2.-EIGTH-?TT
80C51
EMBEDDED
PROCESSORS,
1990
DATA
BOOK,ADVANCL.3 L.IICRO DEVICES.
71
MANUAL DE PRACTICAS
PRACTICA 3.
Potencia.
Objetivo: Manejo y control de dispositivos externos
Materia: Sistema anterior.
Optoacopladores.
Un foco.
CD/A.
INTRODUCCI~NTE~RICA.
En muchas aplicacionesde control automático, es necesario el
accionamiento de válvulas o sistemas de engranes con una exactitud
y precisiónmuyalta.EnRobótica,sonindispensablesestas
características, donde las manos y los.brazos mecánicos deben
ejecutar movimientos de gran precisión. En el área de medicina o
de ingeniería civil, mecánica o en cualquier otra ingeniería es
necesario tener este tipo de dispositivos para obtener un buen
resultado.
En nuestro caso trataremos de controlar la intensidad de la
iluminación de un foco de 100 Watts, por medio del teclado ,
teniendo cuatro niveles de iluminación, encendidoy apagado.
Lacomunicacióndeelfoco y nuestrosistema es un
optoacoplador
y para controlar el opto acoplador utilizaremos un convertidor
Digital analógico.
También se necesita un TRIAC v e 2s si el dispositivo que
produce que la iluminación del foco varié.
Cuando se empezó a emplear el SCR c?da vez más en el control
de potencia eléctrica,y debido a cy-le la transmisión de la energía
eléctrica es senoidal (corriente alterna, dos polaridades), se
requirieron dos SCR para poder tener control sobre todo el ciclo
de la señal. Debido a esto es que los fabricantes se preocuparon
por
encontrar ur,a configuración que
3ermitiera crear
un
dispositivo con las características del X k , pero capaz de operar
eficientemente en forma direccional y tener g.e emplear únicamente
un dispositivo para el control del l o s 360' del ciclo de corriente
alterna.
Este
dispositivo se
logran
meL2lando
las
cuatro
configuraciones básicas delos SCR's.
72
MANUAL DE PRACTICAS
- vs
I
vs
73
MANUAL DE PRACTICAS
Terminal dos
T2
Compuerta G
Terminal uno
T1
CUESTIONARIO:
1.-Que dispositivo se utilizo para control&- el convertidor
D/A
2.-Debido a que se logro la variaciónde la intensidad.
74
MANUAL DE PRACTICAS
BIBLIOGRAF~A:
1.-8051 AND DERIVATE MICROCONTROLLER, PHILLIPS COMPONENTS,
SIGNETISC 1990.
2.-EIGTH-BIT 80C51
EMBEDDED PROCESSORS, 1990 DATA
BOOK,ADVANCED MICRO DEVICES.
75
MANUAL DE PRACTICAS
PRACTICA 4 .
Reloj de Tiempo Real.
Objetivo: Utilizar interrupciones del microprocesador
Material: Nada adicional al hardware
ya armado.
INTRODUCCI~NTE~RICA.
Cuando un periférico o cualquier dispositivo o simplemente
algúnproblemadentro de elpropiosistemasepresentauna
interrupciónla
cual los periféricos
la
valician. Existen
diferentes niveles de interrupción la cual es reconocida por el
procesador,despuésderecibirlapeticiónael dada, el
procesador compara el valor binario indicado con la máscara de
interrupciones en el registro de estado.
Si se muestra una prioridad mayor que la situada en la
máscara, o totalidad
la
si señales
de son
validadas
("interrupciones no mascarables"),el procesador iniciaun
procesamiento excepcional. En caso contrario, el procesador ignora
la peticióny continua con su procesamiento normal.
Si el procesador desea reconocer la interrupción, ejecuta un
ciclo de bus espacio CPU con la salida de nivel de prioridad de
interrupciones.
El dispositivo puede elegir enviar el numero de entrada de la
tabla de vector validadoy cargar el número de vzctor enbus el de
datos.
La mayoría de los nuevos dispositivo; perifel-icos 64K tiene
numeros de vectores de interrupción programable que envía al
procesador un reconocimiento de interrupción.
El 8031 proporciona cinco interrupcionzs, esto se muestra en
la figura 21
La interrupción externa y pueden ser cualquiera de las dos
pueden ser activadas por nivel o por transición, depende de los
bits IT0 y IT1 en el Registro TCON. Las bandeT.2 en realidad
generan esta interrumpción conlos bits IEO y IE; ell TCON. Cuándo
uFa interrupción externa es generada, la bandera q u , ; genera esta
es limpiada para el hardware cuándo l o s servicio de rutina están
~ectorizados, solamente se activa lainterrupción 1 esta en
transición.
76
MANUAL DE PRACTICAS
Si
lainterrupción seactivapornivel,entoncesel
requerimiento externo es una fuente que controla el requerimiento
de la bandera, más bien que enel chip por hardware.
Estructura del nivel de prioridad. cada una interrupción
fuente puede también ser individual programa hasta una de las dos
prioridades de nivel para limpiar un bit en Registro especial de
funciones IP. Unainterrupcióndebajaprioridadpuedeser
sustituida por una interrupción de alta prioridad, pero no por
otro interrupción de baja prioridad.
I
U
U
1
INTERRUPCIONES
TF1
T1
F1
TF2
EXF2
Figura 21 Interrupciones
77
MANUAL DE PRACTICAS
DESARROLLO :
Se creara un reloj de tiempo real y un fechador, el reloj de
tiempo real, el cual se va a mostrar en los displays de la manera
siguiente: Aparecerá al hora en sistema de 2 4 horas, podiendo
cambiar la hora, minutos, y segundos desde el teclado.
Este sistema funcionara parecido al que tiene PC. una
Se
contara
ademáscon
otra
tecla
también
codificada
previamente, que al ser presionada, nos dará la fecha en la cual
nos encontraremos. Esto lo hará, dado el día, mes y al igual que
la anterior, se deberá poder cambiar desde el teclado.
Este sistema también maneja las otras practicas anteriores.
CUESTIONARIO:
1.-Como se logro que todos l o s programas pudieran funcionar
enuno solo.
BIBLIOGRAFÍA:
1.-8051 AND DERIVATE MICROCONTROLLER, PHILLIPS COMPONENTS,
SIGNETISC 1990.
2 . -EIGTH-BIT 80C51
EMBEDDED
PROCES.?ORS,
1990
DATA
BOOK,ADVANCED MICXO DEVICES.
78
MANUAL DE PRACTICAS
Solución de la Practica 1
l. - Diagrama anexado.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% PROGRAMA DE TRASMISI6N
A LA PC. 8
% 8
.......................................................
INICIO2 : MOV PCON,#80H ;PARA PONER SMOD 1 Y LA K=2
MOV TYOD,#21H ;ACTIVA T1EN MODO AUTORRECARGA
MOV SCON,#40H ;SELECCI~NDE MODO 1 TRANSMISI~N
MOV TH1, #OCCH ;PROGRAMAR FRECUENCIA EN BAUDIOS
;DE 1200 b/seg.
SETB TI ;PRENDE LA INTERRUPCI~NDE
;TRASMISI~N
SETB TR1 ;GENERAR BAUDIOS ((TR1=1)
INICIO3 : MOV DPTR,#3000H ;SELECCI6N DEL ADC
EN MAPEO
MOVX @DPTR, A ;ESCRIBE PARA INICIAR
;CONVERSI6N
MOV R7,#05H
RETAR : DEC R7
CJNE R7,#OOH,RETAR
ESPE : m P1.7,ESPE ;ESPERA EL FIN DE CONVERSI~N
MOVX A,QDPTR ;LEER DATO DEL ADC
CLR TI ;BORRA LA INTERRUPCI~NDE
;TRANSMISI~N
l40V SBUF,A ;HACE TRANSMISI~NSERIAL
FINTRAS : JNB TI,FINTRAS ;CONCLUYA TRASMISI~N
MOV RO,FUNCION
CJNE RO,#05,INICJQ3 ;SI NO SE PULSA F5 PARA
;SALIR SIGUE
3 .-Programa de recepción de la PC.
79
MANUAL DE PRACTICAS
#include <bios.h>
#include <conio.h>
#include <stdio.h>
#define COM2
#define TRUE
#define FALSE
#define SETTINGS(OxE0~0x03~0xOO~Oxoo)
FILE *fp
int main
(void)
{
clrscr ( 1 ;
comunica ( 1 ;
transmitir ( ;
return O ;
1
comunica ( )
{
int out,status;
char in,str [40];
clrscr ( ) ;
gotoxy(1 ;
printf ("Introduzca el nombre del archivo
y la unidad de dis
co") ;
gotoxy(15,11);
printf ("Ejemplo:b:recepción\n");
gotoxy(24,12);
gets (str);
if((fp=fopen(str,"wb"))==NULL)
I
I
1
return O ;
.l
transmitir ( 1 ;
80
MANUAL DE PRACTICAS
int in,out,status,DONE=FALSE;
clrscr ( 1 ;
bioscom(O,SETTINGS,COM2);
cprintf .BIi3SCOM [ESCI to exit..-\n")
( ' l . . ;
while ( !DONDE)
{
& OxFF) ! = O )
if((out=bioscom(2,0,COM2)
if (out!=Ox40)
{
putt (out,fp);
1
else DONE=TRUE;
1
fclose(fp);
printf("\n. . . cierre dearchivo..
return O ;
BIOSCOM
CUESTIONARIO:
1.-Que modo de transmisión se utilizo
y por que
Se selecciono (.-1
modo 1, por que se trasmiten 10 bits por la
línea (TXD) o se reciben por la línea (RXD). Un bit de inicio
(Start bit de nivel O lógico), 8 bits de datos y un bit de fin
(Stop bit de
81
MANUAL DE PRACTICAS
82
1,
Isa
r-h
1
MANUAL DE PRACTICAS
SOLUCI~NDE LA PRACTICA 2 .
,. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...............................................................
I
; DEFINICI~NDE CONSTANTES.
DOV 48H
DO 49H ;DO-Dl5: BUFFFliS EN RAM INTERNA CONEL
Dl 4AH CONT1,NIDODE LOS DISPLAYS
D2 4BH
D3 4CH
D4 4DH
D5 4EH
D6 4FH
D7 50H
D8 51H
D9 52H
Dl0 53H
Dl1 54H
Dl2 55H
Dl3 56H
Dl4 57H
Dl5 58H
Dl5V 59H
ESTADO1 5AH ;ES AUXILIAY PARA HACER COMPARACIONES
TECLA 5BH ;EL VALOR DE LA ULTIMA TECLA PULSADA
FUNCIÓN 5DH ;PARA SABER LA FUNCIÓN QUE SE ESTA REALIZANDO.
ESTAD@ 5EH ;PARA CETECTAR EL TIPODE PROGRAMA EN LA ATEXTl
83
MANUAL DE PRACTICAS
I
................................................................
;DIRECCI~NDE INTERRUPCIONES, NO MODIFICABLES EN SOFTWRE
INTEXTO EQU 0003H
INTTIMO EQU OOOBH
INTEXTl EQU 0013H
INTTIMl EQU OOlBH
INTSERl EQU 0023H
,. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
;~ÓDIGOPARA LAS TECLAS PARA LA SELECCI~NDE FUNCIÓN
................................................................
I
,. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
; PARA LA INTERRUPCI~NDEL TIMER 1
INTTIMl
.’ )RG ;INTERRUPCI~NDEL TIMER 1
ALIMP
-kTTIMl ;SALTO A RUTINA DE ATENCI~N -)E
INTERRUPCI~N
84
MANUAL DE PRACTICAS
................................................................
I
ORGOlOOH
PI8279: PUSH ACC
PUSH DPH
PUSH DPL
MOV DPTR,#CTRL8279 ; APUNTA JIR. DE CONTROL DE 8279
MOV A,#MODO ; MODO: 16 DISPLAYS, ENTRADA POR
DERECHA ;
MOVX @DPTR
,A ; BARRIDO CODIFICADO, UNA TECLA A LA
VEZ
MOV A,#DIVCLK ; DIVISOR DE FRECUENCIAALE, OBTIENE
UN
MOVX @DPTR,
A ; BARRIDO DE lOOKHZ = 12MHZ / 6 / 2 0
MOV A , #CLEAR ; INICIALIZA MEMORIA DE DISPLAY,
STATUS
MOVX A
@DPTR, ; DE FIFO Y LOGICA DE INTERRUPCIONES
PI8279A: MOVX A,@DPTR ; LEF STATUS DE FIFO
JB ACC.7,PI8279A ; MIENTF’AS DISPLAY NO ESTE
DISPONIBLE
POP DPL
POP DPH
POT ACC
RET
.****r**********************************************************
I
85
MANUAL DE PRACTICAS
................................................................
I
86
MANUAL DE PRACTICAS
................................................................
I
BUFADSP:PUSHACC
PUSH DPH
PUSH DPL
PUSH PSW
PUSH OOH
PUSH 08H
MOV DPTR,#CTRL8279 ; PARA E'VIAR PALABRA DE CONTROL
MOV A,#VJROINC ; AVISA .UE VA A ESCRIBIR
MOVX @DPTR,A ; LO ENVÍA A 8279
MOV PSW,#OOH
MOV DPTR,#DAT8279 ; PAPA ENVIAR DATOS AL 827 9
MOV RO,#DO ;CARGA
BANCO O CON
EL DATO DEL
PRIMER
;DISPLAY
BUFADSPl:
MOV A,@RO ; TOMA EL
BUFFER EN CURSO
@DPTR,A
MOVX ; LO ENVÍA AL 8279
INC RO ; PASA AL SIGUIENTE BUFFER
C J N E RO,#D15V,BUFADSP1 ; HASTA QUE TRASMITE LOS 16
DISPLAYS.
POP 08H
POP OOH
POP PSW
POP DPL
E'OP DPH
?OP ACC
RET
87
MANUAL DE PRACTICAS
................................................................
I
LETVACIO: DB OFFH,OFFH,OFFH,OFFH
DB OFFH,OFFH,OFFH,OFFH
DB OFFH,OFFH,OFFH,OFFH
DB OFFH, OFFH, OFFHOFFH,
,. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
;% AUTOM ES EL ESTADO INICIAL DEL SISTEMA DEL CUAL INICIA %
;% LA FUNCIÓN DE SELECCIONAR CANAL %
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
AUTOM : MOV A,TECLA
CJNE A,#l,EDOOA
AJMP DIRl ;
EDOOA CJ-NE A, EDOOB;
#2,
AJMP DIR2;
EDOOB CJNE A,# 3 , EDOOC;
AJMP DIR3 ;
CJNE
EDOOC A, EDOOD;
#4,
AJMP DIR4;
CJNE
EDOOD A,# 5 , EDOOE;
AJMP DIR5 ;
EDOOE CUXE A,# 6 , EDOOF;
AJMP DIR6 ;
CJNE
EDOOF A,#7,EDOOG;
AJMP DIR7 ;
aa
M
AN
U& DE PRACTICAS
EDOOG CJNE Al#8,0TRO;
AJMP DIR8;
.................................................................
I
DIR3 : CLR P 1 . 0
SETB P 1 . l
CLR P 1 . 2
MOV R3,# O 1
MOV CANAL, # O 3
RET
DIR5: CLR 2 1 . 0
CLR 21.1
SETE P1.2
MOV F.3, # O 1
MOV CANAL, # O 5
RET
89
MANUAL DE PRACTICAS
90
MANUAL DE PRACTICAS
................................................................
I
MOV PSW,#OOH
MOV RO,#Dl5
MOV @RO, #087H ;ES UNA T
DEC RO
MOV @RO, #07FH ;ES UN PUNTO
DEC RO
MOV @RO, #OC6H ;ES UNA C
DEC RO
MOV @RO, #088H ;ES UNA A
DEC RO
MOV @RO, #OC8H ;ES UNA N
DEC RO
MOV @RO, #088H ;ES UNA A
DEC RO
MOV @RO, #OC7H ;ES TTA I
DEC RO
MOV R2,CANAL
MOV B,R2
ACALL BDECI
MOV @RO,B ;NUMERO
CANAL
DEL
DEC RO
MOV PSW,#08H
MOV B,
;GUARDA
A ENA B
ANL A,#00001111B
ACALL ADECI
MOV RO,#D6
MOV @RO,A ; X HEXAD
LSB
MOV A,B
91
MANUAL DE PRACTICAS
ANL A,#11110000B
SWAP A
ACALL ADECI
MOV RO, #D7
MOV @RO,A ;X HEXAD
MSB
MOV RO,#D5
MOV @RO, #089H ;ES LA H
MOV RO , #D2
MOV A,B
MOV B,#10
DIV AI3
ACALL BDECI
MOV @RO,B ;X DECI LSB
MOV B,#10
DIV Al3
ACALL BDECI
MOV RO,#D3
MOV @RO,B ;X DECI BITDE ENMEDIO
MOV B,#10
DIV AB
ACALL BDECI
MOV RO,#D4
MOV @RO,B ;X DECI
MSB
MOV RO , #Dl
MOV @RO, #OA1H ;ES LA D
DEC RC)
MOV @RO,d07FH ;ES UN PUNTO
DEC !?O
POP 08H
PO? 0013
POP PSW
POP DPL
POP DPH
POP ACC
RET
92
MANUAL DE PRACTICAS
................................................................
I
RET
,. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
;CORRESPONDENCIA PARA LOS
7 SEGMENTOS
TAB7SEG: DB 1lOOOOOOB ; ES O
DB 1llllOOlB ; ES 1
DB lOlOOlOOB ; ES 2
DB 10110000B ; ES 3
DB lOOllOOlB ; ES 4
DB lOOlOOlOB ; ES 5
DB 10000010B ; ES 6
DB lllllOOOB ; ES 7
DB lOOOOOOOB ; ES 8
DB 1OOllOOOB ; ES 9
DB 1OOOlOOOB ; ES A
DB 10000011B ; ES B
DB llOOOllOB ; ES C
DB lOlOOOOlB ; ES D
DB lOOOOllOB ; ES E
DB lOOOlllOB ; ES F
93
MANUAL DE PRACTICAS
................................................................
I
,. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
;ATENCIóN DE INTERRUPCIóN DEL TIMER1 PROGRAMA 1
94
MANUAL DE PRACTICAS
................................................................
r
95
MANUAL DE PRACTICAS
MOV CANAL,#O OH
MOV R3,# O 0
ESPERA1 : CJNE R3,# O 1 ESPERA"I
AJMPINICIO2
................................................................
I
DISPLAY:
ACALL
PI8279
;PROGRAMA
8279
AL
MOV DPTR,#LETVACIC ;DIRECCIONA A LETRERO EN VACIÓ
LCALL DESPLI ;PONE LETRERO VACI6 EN LOS
DISPLAYS
MOV DPTR,#MENSAJE ;DIRECCIONA A MENSAJE
MOV ESTADO, #o011 ;INICIALIZA ESTADO
MOV CUENT,#OOH ;INICIALIZA CUENT
MOV TMOD,# 11H ;SELECCI~NDE LOS TIMERS COMO DE
16 BITS
SETB EA ;HABILITA L A S INTERRUPCIONES
ET1
SETB ;HABILITA LA INTERRUPCI~NDE
;SOBREFLUJO
;DEL TIM1
SETB
;BIT
TR1 DE CONTROL DEL TIMER1
;ARRANCA EL TIMERl
CICLO : MOV R6,FUNCIÓN
CJNE R6,# 0 5 , CICI.5 ;CONTINUAR EN ESTE PROGRAMA
AJ'MP ATILND
;IR A OTRO
PROGRAMA
.............................................................
% 8
x PROGRAMA DE TRASMISI~NA LA PC. %
% %
%%%%%%%%%%%%%5%%%%x%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
INICIO2 : MOV PCON,# C o l i ;PARA PONER SMOD
1 Y LA K=2
MOV TMOD,#21H ;ACTIVA T1 EN MODO AUTORRECAR-
GA MOV SCOr;l,#40H ;SELECCI~NDE MODO 1
TRANSMISI~N
MOV TH1,#OCCH
;PROGRAMAR
FRECUENCIA
EN
BAUDIOS ;DE 1200 B/SEG
SETB TI ;PRENDE LA INTERRUPCI~NDE
;TRASMISI~N
SETB
BAUDIOS
;GENERAR
TR1 ((TR1=1)
96
MA
NU& DE PRACTICAS
RETAR : DEC R7
CJNE R7,#OOH,RETAR
ESPE : JNB P1.7,ESPE ;ESPERA EL FIN DE CONVERSI~N
MOVX A,@DPTR ;LEER DATO DEL ADC
CLR TI ;BORRA LA INTERRUPCI~NDE
;TRASMISI~N
MOV SBUF ,A ;HACE TRANSMISI~NSERIAL
FINTRAS: JNB TI,FINTRAS ;CONCLUYA TRASMISI~N
MOV R O ,FUNCIÓN
CJNE RO #05,INICIO3 ;SI NO SE PULSA F5 PARA
;SALIR SIGUE
I
................................................................
;ATEXTl ES LA ATENCIóN DE INTERRUPCIóN DEL TECLADO
ATEXT1:
CLR
EX1
ACALL CAPTEC
MOV A,TECLA
CJNE A,#F2,PROG3
MOV FUNCIbN, #O2
AJMPSALIR
................................................................
I
97
MANUAL DE PRACTICAS
CUESTIONARIO:
98
MANUAL DE PRACTICAS
SOLUCI6N DE WL PRACTICA 3
,. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...............................................................
I
; DEFINICI~NDE CONSTANTES.
DOV 48H
DO 49H ;DO-Dl5 : BUFF 3RS EN RAM INTERNA CON EL
Dl 4AH CONTENIDO DE LOS DISPLAYS
D2 4BH
D3 4CH
D4 4DH
D5 4EH
D6 4FH
D7 SOH
D8 51H
D9 52H
DlO 53H
Dl1 54H
Dl2 55H
Dl3 56H
Dl4 57H
Dl5 58H
Dl5V 59H
PULSOS 5CH ; PARA LAS VARIACIONESDE POTENCIA
FUNC IÓN 5 PARA SABER LA FUNCIÓN QUE SE ESTA REALIZANDO.
;DH
ESTADO 5EH ; PARA FETECTAR EL TIPO DE PROGRAMA EN LA ATEXTl
CUENT 5FH ;PARA USO DE LA INTERRUPCIóN DEL TIMER1
99
MANUAL DE PRACTICAS
,. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
;CÓDIGO PARA LAS TECLAS PARA LA SELECCI~NDE FUNCIÓN
EQU
F4
14H
;PARA
CONTROL
DEL
FOCO
,. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
; ORGANIZACI~N DEL PRINCIPIO DEL PROGRAMA
ORG OOOOH
AJMP INICIO
................................................................
I
100
MANUAL DE PRACTICAS
................................................................
; PI8279 ESTABLECE EL MODO DE OPEFWI~N Y LA FRECUENCIA DE BARRIDO
; DEL CONTROLADOR DE TECLADO Y DISPLAYS.
ORGOlOOH
PI8279 : PUSH ACC
PUSH DPH
PUSH DPL
MOV DPTR,#CTRL8279 APUNTA DIR. DE CONTROL DE 8279
MOV A,#MODC MODO: 16 DISPLAYS, ENTRADA POR
; DERECHA;
MOVX @DPTR, A BARRIDO CODIFICADO, UNA TECLA ALA
; VEZ
,. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 1 * *
; DESPLIEGA RECIBE EN DPTR LA DIRECCI~N DE UN LETRERO PARA
ESCRIBIR ; LO EN EL BUFFER Y ENVIARLO A LOS DISPLAYS.
DESPLI:ACALLMEMABUF
ACALL BIJFADSP
RET
101
MANUAL DE PRACTICAS
................................................................
; "ABUF RECIBE EN DPTR LA DIRECCI~N DE UN LETRERO PARA ESCRI-
BIRLO ; EN EL BUFFER DE RAM INTERNA.
" A B U F : PUSH ACC
PUSH DPH
PUSH DPL
PUSH PSW
PUSH OOH
PUSH 08H
MOV PSW,#OOH ; SELECCI~NDEL BANCO CERO
MOV RO,#D15 ; APUNTA RO AL BUFFERMAS SIGNIFICATIVO
POP 08H
POP OOH
POP PSW
POP DPL
POP DPH
POP ACC
RET
102
MANUAL DE PRACTICAS
................................................................
I
BUFADSP:PUSHACC
PUSH DPH
PUSH DPL
PUSH PSW
PUSH OOH
PUSH 08H
POP 0811
POP OOH
2OP PSW
POP DPL
POP DPH
PC-P ACC
RET
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MENSAJE: DB OC7H,OF9k!,092H,087H
DB OCOH,@7FH,07FH,07FH
DB 07FH,07FM i)7FH,07FH
DB 07FH,07FH,07FH,07FH;(LISTO. . . . . . . . . . .
103
MANUAL DE PRACTICAS
................................................................
MENSFUN: DB 08EH,OCOH,OC6H,OCOH
DB 07FH,07FH,07FH,07FH
DB 07FH,07FH,07FH,07FH
DB 07FH,07FH,07FH,07FH ;(FOCO. . . . . . . . . . . . )
,. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
; CAPTEC RESPONDE A LA INTERRUPCI~NDEL 8279 LEYENDO DE su
; DIRECCIóN DE DATOS EL C6DIGO DE LA TECLA PRESIONADA
CAPTEC:
PUSH ACC;
PUSH DPL;
PUSH DPH;
MOV DPTR,#CTRL8279;APUNTA A LA DIRECCI~NDE CONTROL
;DEL 8279
POP DPH ;
POP DPL ;
POP ACC ;
RET ;
104
MANUAL DE PRACTICAS
................................................................
I
INC
DPTR
MOV R1,ESTADO
INC
R1
MOV ESTADO, R1
CJNE R1,#32,FIN ;COMPARA R1 CON 32 QTX E S LA
;CANTIDAD
MOV DPTR,#MENSAJE ;QUE REQUIERE EL ULTIMcl
;CARÁCTER EN
MOV ESTADO, #OOH ;SALIR
FIN : RET1
105
MANUAL DE PRACTICAS
................................................................
I
ATIEND:MOV DPTR,#MENSAJE
LCALL DESPLI ;DESPLIEGA EL MENSAJE (LISTO .....)
ESTACI~N:CJ-NE R~,#O~,ESTACI~N
SJMP ATIEND
................................................................
;ATEXTl ESLA ATENCI6N DE INTERRUPCIóN DEL TECLADO
ATEXT1:
CLR
EX1
ACALL CAPTEC
MOV A,TECLA
TRES : C J N E A,#F4,PKjG3
MOV FUNCIóN, # O 4
AJMPSALIR
106
MANUAL DE PRACTICAS
.........................................................
I
SALIR : SETB
EX1
RET1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
% RECIBE
PROG5 LA TECLADO
ENTRADA
DEL %
% SE DAN LOS NIVELES PARA CONTROL DEL FOCO DEPENDIENDO DE %
% LAS VECES %
% QUE SE HA PULSADO LA TECLA F Y SI SE DESEA APAGAR EL FOCO %
% SE %
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
107
MANUAL DE PRACTICAS
CJNE
SIGl: RO, #02H, SIG2
; INTENSIDAD NORMAL
SETB P1.3
SETB P1.4
CLR P1.5
CLR P1.6
LJMP RETORNO
108
MANU= DE PRACTICAS
RETORNO:
SETB
EX1
RET1
END
CUESTIONARIO:
1.-QUE DISPOSITIVO SE UTILIZO PARA CONTROLAR EL CONVERTIDOR
D/A
UR Jptoacoplador, este fungió como un potenciómetro, pues de
una manera sencilla para explicar su función es la siguiente:
este entrega una variación de corriente para que el triac
funcione y pueda hacer variar la intensidad luminosa.
2.-DEBIDO A QUE SE LOGRO LA VARIACIóNDE LA INTENSIDAD.
debido a un triac.
109
R
MANUAL DE PRACTICAS
SOLUCIóN DE LA PRACTICA 4 .
...............................................................
I
.**************t***********************************************
I
; DEFINICI~NDE CONSTANTES.
CANAL 2FH
EQU
8
" EQU30H ; ESPACIO DE MEMORIA INTERNA USADO PARA LAS
7" EQU31H ; VARIABLESDELPROGRAMA,BANDERAS Y ALMACÉN
"6 32H
EQU
5" 33H
EQU
4
" 34H
EQU
3" 35H
EQU
2" 36H
EQU
1" 37H
EQU
MESES
38H
EQU
39H
EQU
DIAS
EQU
SEGU 3AH
MINU 3BH
EQU
HORA 3CH
EQU
FLAG1 3QU 3DH
FLAG2
3EH
EQU
FLAG3 E911 3FH
FLAG-: EQU40H
FLAG5
41H
EQU
FLAG6
42H
EQU
FLAG7
43H
EQU
FLAG8
44H
EQU
FLAG9
EQU 45H
FLAG1O EQU46H
MEM9 53" 47H
EQUDOV 48H
DO EQU49H ;DO-D15: B'JFFERSEN RAM INTERNACON EL
Dl EQU 4F11-f 1 . CONTENIDO DE LOS DISPLAYS
D2 4BH EGU
110
LD
0 0 0 0 0 o P P o o o w w
0 0 0 0 0 OPOPOO0303
N P P O O 03000P000
w m w m w 4 o P o l ~ o P o
zzzzz roo or^^
P O O P 0
bh
PH
O
3
m
P
P
P
MANUAL DE PRACTICAS
................................................................
;CÓDIGO PARA LAS TECLAS PARA LA SELECCI~NDE FUNCIÓN
F1 EQU 10H ;PARA MOSTRAR EL LETRERO QUESE RECORRE
QU F2 11H ;PARA ESCOGER CANL~L DEL ADC Y LECTURA HEXA
Y ; DECI
QU F3 12H ;PARA EL RELOJ
EQU F4 14H ;PARA CONTROL DEL FOCO
EQU F5 15H ;PA= SALIR
. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * f * * f * * * * * * *;
+* * * * * * * * * * * * * * i * * * * * * *
; ORGANIZXI~N DEL PRINCIPIO DEL PROGN-
ORG OOOOH
AJMP INICIO
................................................................
LAS DIRECCIONES DE ATENCI~N DE INTERRUPCIONES SE MAPEA
EN LA PARTE ALTADE LA MEMORIA R A M EXTERNA,PARA QUE PUEDAN
SER MANEJADAS POR EL PROGRAMADOR
112
MANUAL DE PRACTICAS
................................................................
; PI8279 ESTABLECE EL MODO DE OPERACIóN Y LA FRECUENCIA DE BARRIDO
; DEL CONTROLADOR DE TECLADO Y DISPLAYS.
ORG OlOOE
PI8279: PUSH ACC
PUSH 3PH
PUSH 3PL
MOV DPTR,PCTRL8279 ; APUNTA DIR. DE CONTROL DE 8279
NOV A , #!!IODO ; MODO: 16 DISPLAYS,ENTRADAPOR
; DERECHA
!*IOVX GDPTF.,
A ; BARRIDOCODIFICADO, UNA TECLA PA LA
; VEZ
113
MANUAL DE PRACTICAS
114
MANUAL DE PRACTICAS
MOV PSW,#OOH
MOY DPTF., #DAT8279 ; PARA ENVIAE DATOS 827AL 9
Mor' RO,P30 ;CARGA BANCO O ?ON EL DATO DEL
; PRIMER
;DISPLAY
BUFADSPl : Mol' A,@I70 ; TOMA
ELBUFFER EN CURSO
MOl,Y @DPT'R,A ; LO ENVÍA AL 8279
INC RG ; PASA AL SIGUIENTE BUFFER
CJXE R G ,iiD15V, BUFADSPl; HASTA QUE TRASMITE LOS 16
; DISPLAYS.
POP 08H
POP OOH
POP PSW
POP DPL
POP DPH
POP ACC
RET
MENSAJE: DE ?C7H,3F5H,v3?H,087H
DB 2COH,07FH,07 'H, 07FH
DB C7FH, 37FH, G7FH, 07FH
DE :7FH,07FH,071 'i,07FH; (LISTO... . . . . . . . .)
115
MANUAL DE PRACTICAS
,. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MENSFUN: DB 08EH,OCOH,OC6H,OCOH
DB 07FH,07FH,07FH,07FH
DB 07FH,07FH,07FH,07FH
DB 07FH,07FH,07FH,07FH ; (FOCO.. . . . . . . . . . . )
.****+***+*********+************+****************+**************
AUTOM ES EL ESTADO INICIAL DEL SISTEMA DEL CUAL IICICIA
LA FTUNCIÓN DE SELECCIONAR CANAL
116
MANUAL DE PRACTICAS
.*****************r********************************************~
117
MANUAL DE PRACTICAS
. * f t r * * * * r * * * * * * * * r * * * * ~ * * * * * * * * * * * * ~ * * * * * * * * * * * * * * * * * * * * * * . ~ ~ * * * * * ~
118
MANUAL DE PRACTICAS
MEMABHD:PUSEACC
PUSEDPH
PUSEDPL
PUSEPSW
?USE OOE
PUSE 08H
MOV PSD,#OOE
MOV R O ,#Dl5
MOV @RO,#087H ;ES UNA T
DEC RO
MOV @RO,#07FH ;ES UN PUNTO
DEC RO
MOV @RO,#OC6H ;ES UNA C
DEC RO
MOV @RO, #088H ;ES UNA A
DEC RO
MOV @RO, #OC8H ;ES UNA N
DEC RO
MOV @RO, #088H ;LS UNA A
DEC RO
MOV @RC,#OC7H ;ES cJNA L
DEC RO
MOV R2,CANAL
MOV B ,E;.?
ACALL BDECI
MOV @RC,I3 ;NUMERO DEL CANAL
3EC RO
MOV PSW,# O 8H
MOV R ,A ;GUARDA A EN B
ANL A ,#00001111B
ACALL ADECI
MOV RO,#D6
MOV @RO,A ;X HEXAD LSB
119
MANUAL DE PRACTICAS
MOV A,E
ANL A,#11110000B
SWAP A
AC 6LL
ADEC I
MOV RO,#D7
MOV @RC,A ;X HEXAD MSB
MOV RO,gD5
MOV @RG,#089H ;ES LA H
MOV RO,#D2
MOV A ,E
MC.’ B,& ; O
3IV AB
ACALL BDECI
MOV BRO,B ;X DECI LSB
MOV B,#10
DIV
AB
ACALL BDECI
MOV RO,#D3
MOV BRG,B ;X DECI BITDE ENMEDIO
MOV B,#10
DIV AI3
ACALL BDECI
MOV RO,#D4
MOV @RO,B ;X DECI MSB
MOV RO,#DI
’IOV @RO, #OA1H ;ES LA D
JEC RO
MOV @RC, #07FH ;ES UN PUNTO
DEC RO
POP 08H
POP OOH
POP PSW
POP 3PL
;3? 3PH
PC’’ACC
RET
120
MANUAL DE PRACTICAS
,. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PUSH DPL
PUSH ACC
MOV DPTR , #TAB7SEG
MOV A,B
MOVC @AA, + D P T R
MOV B ,A
POP ACC
POP DPL
POPDPH
RET
................................................................
I
121
MANUAL DE PRACTICAS
,. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
; CAPTEC RESPONDE A LA INTERRUPCI~NDEL 82-79 LEYENDO DE su
; DIRECCI~NDE DATOS EL CÓDIGO DE LA TECLA PRESIONADA
POP DPH;
POP DPL;
POI' ACC;
RET :
.******\*T********,t*******************************************
122
MANUAL DE PRACTICAS
...............................................................
; CORRESPONDENCIA DE DECIMAL A HEXADECIMAL
123
MANUAL DE PRACTICAS
................................................................
. .
; CAPTU ES LA CAPTURA Y DE DATOS PARA LOS SEGUNDOS
CAPTU : MOV RO,FLAG4
CJNE RO,#O:, ETIQ3
AJMP ETIQ4
ETIQ3 : CJNE A,+06H,REVISA ;MENOR QUE 6 PARA QUE ENTRE
LJMP SALIR
REVISA : JC BIEN
LJ-MP SALIR
BIEN : MOV MEB:1 , A
MOV FLkG4,# O 1H
LJMP SALIR
ETIQ4: CJNE A,P3AH,REV1 ;MENOR QUE O A H PARA QUE ENTRE
LJMP SALIR
REV1 : JC BIENl
LJMP SALIR
BIENl : MOV MEM2, A
MOV FLAGS,#01H
MOV A,M EMl
SWAP A
MOV B , M5M2
PRL A,F ;LO HACE DECIMAL
ACALL TABLADH ;TRANSFORMA DE DECIMAL A
HEXADECIMAL
DFC A
MOV SEG'J, A
AJMP SIG'JE1
. * * * * * * * * * * * * * * * ' r r . ~ i * ~ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
124
MANUAL DE PRACTICAS
125
MANUAL DE PRACTICAS
REVISA3 : JC BIEN3 O
LJMP SALIR
BIEN3 O : MOV MEM5, A
MOV FLAG9,#01H
LJMP SALIR
126
MANUAL DE PRACTICAS
BIEN6:
MOV MEM1,A
MOV FLAG4,#01H
LJMP SALIR
ETIQlO : CJNE A,# O A H ,REV4 ;QUE SEA MENOR QUE O A H
LJMPSALIR
REV4 : JC BIEN7
LJMP SALIR
BIEN7: MOV MEM2,A
MOV FLAGS,#01H
MOV A,MEMl
SWAP n
MOV B,MEM2
ORL A,B
ACALL TABLADH
CJNE A,#O13 ,REV12 ;QUE SEA MENOR QUE 13
LJMP SALIR
REV12 : JC BIEN8
LJMP SALIR
BIEN8 : CJNE A, #OOH,EXITOl
MOV FLAG4,#O OH
MOV FLAGS,#O OH
LJMPSALIR
EXITOl : MOV MESES,A
AJMPSIGUE4
.*****t**r**************************************************
127
MANUAL DE PRACTICAS
............................ ********x**************************
128
MANUAL DE PRACTICAS
129
MANUAL DE PRACTICAS
130
MANUAL DE PRACTICAS
................................................................
;EN DIAMES DADOUN MES OBTENEMOS SU NUMERO
DE DIAS QUE POSEE
DIAMES: PUSH DPH
PUSH DPL
MOV DPTR,#TABMES
MOVC A,@A+DPTR
POPDPL
POPDPH
RET
....................................................................
;TABLA DE CORRESPONDENCIA DE MESES A DIAS
TABMES: DB O 0 ;INICIO DE TABLA
DB 31 ;ENERO
DB 28 ;FEBRERO
DB 31 ;MARZO
DB 30 ;ABRIL
DB 31 ;MAYO
DB 30 ;JUNIO
DB 31 ;JULIO
DB 31 ;AGOSTO
DB 30 ;SEPTIEMBRE
DB 31 ;OCTUBRE
3B 30 ;NOVIEMBRE
DB 31 ;DICIEMBRE
,. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * i * * * * * * * * * * * * * * * * * * * * * * * *
; EL NUMERO QUE SE ENCUENTRA
EL EL ACUMULADORA LO PASA A 7SEG
ADEC I : P'JSH DPH
PUSH DPL
MOV DPTR,#TAB7SEG
MOVC A,@A+DPTR
POP DPL
POP DPH
RET
131
MANUAL DE PRACTICAS
................................................................
I
132
"UAL DE PRACTICAS
133
MANUAL DE PRACTICAS
AJMP ATIEND
134
MANUAL DE PRACTICAS
................................................................
; RUTINA PARA MOVIMIENTODE DISPLAYS
DISPLAY:
ACALI
PI82”9 ;PROGRAMA8279
AL
MOV DPTR,#LETVACIO ;DIRECCIONA A LETRERO EN VACIÓ
LCALI DESPLI ;PONE LETRERO VACIÓ EN LOS DIS-
PLAYS
135
MANUAL DE PRACTICAS
; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
; % 8
; % PROGRAMA DE TRASMISI~NA LA PC. 8
; % %
; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
136
MANUAL DE PRACTICAS
................................................................
I
; PROGRAMA PRINCIPAL, INICIALIZA 8031
Y HACE LAS " A D A S A Los
; PROCEDIMIENTOS
PRINCIPALES.
PROGRAMA 5
INICIO4 : ACALL
PI8279 ; PROGRAMPI AL
8279
MOV IE,#86H
MOV PULSOS,#OOH
CLR P1.3
CLR P1.4
CLR P1.5
CLR P1.6
................................................................
;ATEXTl ES LA ATENCIóN DE INTERRUPCIóN DEL TECLADO
ATEXTl : CLR EX1
ACALL CAPTEC
MOV A,TECLA
CJNE A,#F5 I DETEC
MOV FUPlCI:6N,#O5
AJYP SALT?
137
MANUAL DE PRACTICAS
................................................................
: PROG3 RECIBE LA INTERRUPCIóN DEL TECLADO PARA EL PROGRAMA 3
PROG3 : MOV R O ,FUNCIÓN
CJNE RO , #O 2 , PROG4
ACALL AUTOM
AJMP SALIR
................................................................
I PROG4 RECIBE LA ENTRADA DEL TECLADO PARA PF 3 ELG W 4
PRO5 : AJMP PROG5
138
MANUAL DE PRACTICAS
139
MANUAL DE PRACTICAS
140
MANUAL DE PRACTICAS
................................................................
I
SALIR : SETE
EX1
RET1
. * * * * * * * * * * * * * f * * * * * * * * * * * * * * * * * * t * f * * * * * * j * * * * * * * * * * * * ~ * * ~ * * * * * *
; FULSA E
RETURN:
LJMP
RETORNO
141
MANUAL DE PRACTICAS
SIG2:
CJNE RO,#03H,SIG3
SETB P1.3
SETB P1.4
SETB Pi.5
CLR Pi.6
LJMP RETORNO
142
MANUAL DE PRACTICAS
SIG7:
CJNE RO,#08H,INICIAL
CLR P1.3
CLR P1.4
CLR PI.5
CLR P1.6
AJMP RETORNO
INICIAL:
MOV PULSOS,#OOH
AJMP
RETORNO
CHECA1: CJNE A,#OEH,RETORNO ;TECLA E PARA APAGAR FOCO
MOV RO,#08H
MOV PULSOS,#OOH
AJMP
SIG7
RETORNO:
SETB EX1
RET1
END
CUESTIONARIO:
1 .-COMO SE LOGRO QUE TODOS LOS PROGRAMAS PUDIERAN FUNCIONAR,
EN LWO SOLO.
143
EA IE.7 DESACTIVA TODAS LAS INTERRUPCIONES%=O
ET2 IE.5 ACTIVA LA INT. CAUSADA POR EL TIMER2 (ET2=1)
ES IE.4 ACTIVA LA INT. CAUSADA POR EL PUERTO SERIE
ET1 IE.3 ACTIVA LA INT.DE SOBREFLUJO 3AUSADA POR EL TIMER
1
EX1 IE.2 ACTIVA LA INT. CAUSADA EXTERNAMENTE EN INTl
ET0 O
IE.l ACTIVA LA INT. DE SOBREFLUJO CAUSADA POR EL TIMER
EX0 IE.0 ACTIVA LA INT. CAUSADA EXTERNAMENTE ENINT O
EN EL PROGRAMA UTILIZADO TENEMOS DEFINIDAS LA INTERRUPCIONES
DE LA MANERA SIGUIENTE:
INTEXTO EQU 0003H
INTTIMO EQU OOOBH
INTEXTl EQU 0013H
INTTIMl EQU OOlBH
INTSERl EQU 0023H
144
MANUAL DE PRACTICAS
145
CAPITULO I11
MANUAL DE PRACTICAS
DE 68HCll
1.1 CARACTEZ~ÍSTICA~
PA7 48 VDD
PA6 z P D 5
PA5 46, PD4
PA4 A Po3
PA3 44, m2
PA2
PA1 & PDl
PDO
PA0
68HC1 *
"4' IRQ
XlRQ
RESET
CPU 37,
PC7AD7
PC6AD6
36 PC5AD5
x
35' PC4AD4
PB1 A9 PC3AD3
PBO AB PC2 AD2
zg
PE O 32 PC1
AD1
PCOADO
* XTAL
EXTAL
STB R N
VR+
vss
MODB
I _
261 E
~
27
?C STA AS
MODA
figura 3.1
146
MANUAL DE PRACTICAS
I 1
116 LnsarAO-Al5j
But de Dmaccana
U R W 11 L m a )
U
figura 3 . 2
Convertidor A , ' D .
Miembros de las familias M68HCll y M6805 incluyen un convertidor
multicanal de 8 bits analógico. El 6805R y la versión S contiene 4
entradas análogas y el M68HCl3 MCTT's forma hasta 88canales.
COP.- "ComputerOperatingPropetingProperly" ( Operativo de
computación propiamente) restablece el temporizador que actúa como
vigía para restablecer automáticamente el CPU si no restablece por
secuencia de programa en una cantidad de tiempo dado. Todas la
familias M68Hcll contienen esta forma.
MODOS DE OPERACI~N.
c) SPECIAL B0OTSTRAP.S
b) DIilECTO:
internos, o espacio
de
memoria
externa
puede
ocupar
estas
direcciones.
c ) EXTENDIDO
En este caso , el segundo y el tercer bytes (siguientes al
opcode) contiene la dirección absoluta del operando. Estas son 3 o 4
instrucciones de byte (si se requiere prebyte) uno o dos para el
opcode y dos para el direccionamiento efectivo.
C ) INDEXADO
En este caso unode l o s registros index (X o Y) ya antes
mencionados se usan para calcular la dirección efectiva. En este
caso, la dirección efectiva es variable y depende de dos factores:
1.- Los contenidos de corriente en el registro index (X o Y) son
usados.
2 . - El offset asignado de 8 bits contenido en la instrucción.
Este modo de direccionamiento permite referenciar localidades de
memoria en elespaciode 64 Kbytes.Usualmentehaydos o tres
instrucciones byte (si se requiere prebyte), el opcode mas el offset
de 8 bits.
e ) INHERENTE
Toda la información e s t á contenida en el Jpcode. Los operandos
(cualquiera) son registros y no memrria..; S': requiere referencia.
Estas son comúnmente una o dos instrucclones byte.
f ) RELATIVO
Es usado para bifurcaro ramificar instrucciones.
Si la condición de bifurcar es verdadera, l o s contenidos de , 8
bits son marcados byte siguiente del opcode (of' .et). Esta adición de
los contenidos del contador de programa para rorm-ir direccionamientos
bifurcados efectivos, de otra manera, procede ,
:
1 control para la
siguiente instrucción. Son comúnmente instrucciones de dos bytes.
153
MANUAL DE PRACTICAS
MANEJO DE REGISTROS.
b) OVER-FLOW (V):
154
f) HALF CARRY (H):
Se habilita para que un 1 lógico cuando ocurre un CARRY entre
los bits 3 y 4 del ALU durante una instrucciónADD, ALA, ADC; de otra
manera el bitH se va a clear.
g) X interrupt MASK (X):
Se acciva solarnente por hardware ( RESET o XIRQ ) se va a clear
sólo por instruccibz de programa ( T A P o RPI).
Se activaparadeshabilitarlainstrucción deprograma.La
instrucción de STO? es tratada como operación (NOP) si el bit S se
activa.
155
MANUAL DE PRACTICAS
PRACTICA 1
SISTEMA MÍNIMO
objetivo: Armar un sistema mínimo conel 68HCl1, conociendo su
arquitectura.
Material: Microcontrolador 68HCll.
Memoria
6264
Ram
Memoria
Eprom
2764
245 Buffer
Latch 323
Displays.
Compuertas.
Resistencias ,capacitores, etc
INTRODUCCI~NTE~RICA.
Laarquitecturadelmicrocontrolador68HClldetermina los
dispositivos de soporte requeridos para hacer una sistema mínimo.
Como se vera posteriormente en el diagrama electrónico del
sistema minimo, se comunican las memorias RAM, EPROM por medios de
bus.
El bus de datos se considera su funcionamiento clave pues por
medio de él, se logra la transferencia de información entre la UCP y
los demás elementos del sistema.
Como se sabe, esto se puede lograr únicamente gracias a los
dispositivos de tercer estado. De manera que todos l o s dispositivos
que se conecten al ductodi: datos para entrar en comunicación con la
U C P , debe contar c3n b3ja- de especificación de las R A M , ROM y EPROM
con las que se
puede formar
el módulode
menoria
de
una
microcomputadora . En dichas especificaciones puede comprobarse que
todas estas memoriLs tienen en sus salidas dispositiTLros con tercer
estado.
Generalmente laseñalquecontrolaeltercerestadoesla
entrada de selección de dispositivo (chip select: C S ) . En algunas
memorias se tienen varias 'ntradas, las salidas del sistema estarán
en el estado de alta impedanci-a.
Como se ve en las hojas de especificación de memorias hay muchos
parárnetros para medir la velocidad de 19s circuitos de memoria. De
todos los parámetros el más común es el tiempo de acceso (Access
Time) que generalmente se define comoel. tiempo comprendido desde el
inicio
156
MANUAL DE PRACTICAS
CUESTIONARIO:
1.-Después de ejecutar la ISR (Interrupt Service Routine), ¿Cómo
sabe el pP a qué dirección debe regresar en el programa principal?
157
MANUAL DE PRACTICAS
PRACTICA 2.
TRANSMISI~N SERIAL.
Objetivo: Lograr Trasmitir datos por el puerto serie (interfase
?S-232c) del microcontrolador 68HCll hacia una computadora del
tipo PC-Compatible con IBM.
Material: Microcontrolador 68HCll
Interfase serial MC145407
Conector DB25.
Resistencias, Capac.-tores
etc.
Introducción teórica:
158
MANUAL DE PRACTICAS
DESARROLLO:
1.- Armar el circuitomínimo del 68HCll.
2.- Hacer el programade transmisión hacia la PC
;59
MANUAL DE PRACTICAS
SOLUCI~NPRACTICA 1
1.- El diagrama del Sistema mínimo se encuentra después
del programa monitor.
* MAPA DE MEMORIA
INRAM
EQU $COO0 Iniciode la RAM EXTERNA
FINRAMEQU $DFFF Fin dela RAM EXTERNA
WAKEUPEQ3 ;F2FE Dirección donde despiertael 68HCll en modo
* EXPANDIDO después de RESET.
INRAM1EQU $C300 Inicio de la RAM INTERNA
FINRAMI EQLJ SC3FF FIn de la R4M INTERNA
INROM EQ'J $5300 Inicio ROM EXTERNA
FINROM EQLJ $ F F F Fin de laRAM EXTEWJA
INRAMIED EQU $300D Inicio de RAM int para editar
*%%%%%%%%%%%%%%%%%%%%%%%%INICIO DEPROGRAMA%%%%%%%%%%%%%%%%%%%%%%%%
ORG WAKEUP
FILL $E0,1 Salto al inicio de la EPROM
FILL $00,1
ORG INROM Inicio de la EPROM
LDS #FINRAM1 Cargado del SP (stack pointer)al final de
* la RAM INTERNA
INICIA: BSR PG8270 Inicializa 8279
BSR LIMPIA Apaga los displays
BSR CHKRAM Revisa laRAM EXTERNA
LDX #HOLA
?SR MENSAJE Escribe saludo"HOLA"
2 $IR ENTER
LJ..S #STACK Cargado delSP (stack pointer) al finalde . 3 *
RAM EXTERNA
ES-INT:
LDX #MENU Mensaje "Función"
BSR MENSAJE
MANUAL DE PRACTICAS
DELAY : PSHX
LDX#$FFFF
DLOOP : DEX
BNEDLOOP
PULX
RTS
F-4 : CMPB
#FUNC4
BNE F-5
JSR FN4
BRA HZCHO
F-5 : CMPE #FUNC5
JSRFN5
HECHO : RTS
FN1: #DFNl
LDX
JSRMENSAJE
JSRDELAY
JSL DELAY
JSRDELAY
* % % % % % % % % % % % % % % % Mensaje de opción.............................
LDX #AoB
JSRMENSAJE
JSRDELAY
JSRDELAY
L9AB CODIGO
CMPB # $ 8 0 Comp con ESCAPE (SHIFT)
BEQSALFl
CMPE #$DB
BEQEJEC-A
C I 2 E k !<D3
BEQ E "EC--B
SEI
JMP HF :HO
SALFl : LDX #MENSFIN
JSh MENSAJE
i65
MANUAL DEPRACTICAS
SEI
JMP HECHO
* % % S 8 % % % ~ % % % % 8 8 % Menú
% % % de o p c i ó r % 8 8 8 % 8 ~ ~ ~ % % % % % 8 % % % % % 8 % % % % % % % % % % ~
LDX #AoB
JM
SERN S A J E
JSR DELAY
JSR DELAY
CLI
NOP
NOP
WAI E s p e r a opción
LDAB CODIGO
166
MANUAL DE PRACTICAS
CMPB # $ 8 0 C o m p a r a con E S C A P E ( S H 1 F T )
BSEAQL F l
CMPB #$DE
BEQ
EDITA-A
CMPE #$I23
BEQ
EDITA-B
SEI
JMP HECEI3
JSR DELAY
JSR DELAY
JSR DELAY
LDY k INEiAMIED
JMP EDI-IA
167
MANUAL DE PRACTICAS
PSHA
LDAA #CLEAR
STAA CTCOM
ESP: ;DA?! CTCOM
ANDA #$80
CMPA # $ B O
BEQESP
LDAA #WRITE
STAA CTCOM
JSRREVAL-E
CMPB #FLAG
BEQ GO
STAB CTDAT
GO PULA
LDAB CODIGO
CMPB # $ 8 0 Verifica si es ESCAPE (SHIFT)
BEQSALTE
CMPB #$DC Verifica sie s ENTER (Fl)
BEQENTERF2
CMPB #$C4 Verifica si es SALIDA (F4)
BEQSALF2
JSRVALIDA-E
LSLB
LSLB
LSLE
LSLB
LSLD
LSLD
LSLD
LSLD
JMPEDITA-1
ENTES.’? : STAA O , X
INX
LDAA #CLEAR
STAA CTCOM
JMP EDITA
168
MANUAL DE PRACTICAS
BEQ ES”
CMPE #$C1
BEQ ES-F
RTS
ES-O : LDAB # $ 0
RTS
169
MANUAL
DE PRACTICAS
BEQ PON-5
CMPB#$D2
BEQ PON-6
CMPB#$D8
BEQ PON-7
CMPE#$D9
BEQ PON-8
CMPE
#$DA
BEQ PON-?
CMPE # $ D E
BEQ PON-A
CMOE # $ D 3
BEQ PON-B
CMOE # $ C B
BEQ PON-C
CMOE # $ C 3
BEQ PON-D
CMOB # $ C 2
BEQ PON-E
CMOB # $ C I
BEQ PON-F
CMOB # $FLAG
RTS
PON-O : LDAB #$3F
RTS
PON-1 : LDAE #$O6
RTS
PON-2 : LDAE # $ 5 S
RTS
PON-3 : LDAE #$4F
RTS
PON-4 : L D A#
E$ 6 6
RTS
PON-5 : L D A#E$ 6 D
RTS
PON-6 : L D A#E$ 7 D
RTS
PON-7 : LDAE
#$O7
RTS
PON-8 : LDAE #$7F
RTS
171
MANUAL DE PRACTICAS
COSA:FILL $39,1 C
FILL $3F,1 O
FILL $6D,1 5
FILL $ 0 8 , 4 -
173
MANUAL DE PRACTICAS
* % % % % % % % % % % % Ejecución de la Función 3 . . . . . . . . . . . . . . . . . . . . . . . . .
* La función F3 permite visualizar el contenido de losregistros del
* 68HCll y cambiar su contenido si así se desea.
CAMBIO:LDAA #$96
STAA CTCOM
LDAA # $ O 8
STAA CTDAT Seescriben-en los displays 06 y 07
JSR DatoReal Se lee el nuevo valor del registro elegido
JSR ENTER Se acepta el dato
LDAA DATORL Dato a introducir al registro seleccionado
LDXDIREAL
STAA 0,X Se coloca el dato en la dirección elegida
LDAA 0 , X
CMPA DATORL Se compara el contenido del registro con
BNE NOREG el dato que se deseaba introducir, si no es
* igual se informa conun ERROR
JSR SALIR Presionar F4 para salir de la función
EXIT : RST
NOREG : LDX #BAD Mensaje de error indicado que el Cambio
JSR MENSAJE en el registro seleccionado no fue posible
JSRENTER
JMP EXIT
* % % % % % % % % % % % % Ejec1,ciÓri de la función 4 . . . . . . . . . . . . . . . . . . . . . . . . . . .
FN4 : LDX
#DFN4
JSR MENSA;'E
JSRENTER
JSR SALIRpresionar F4 para salirde la función
RTS
* % % % % % % % % % % % % % Ejecución de 1
; función 5 . . . . . . . . . . . . . . . . . . . . . . . . . .
FN5 : LDX
#DFN5
JSRMENSAJE
JSRENTER
SELMEM : LDX $ 0 0 0 0 Se coloca en cero ambos limites
175
MANUAL DE PRACTICAS
STXLimSup
STXLimInf
LDX #MABCDespliega "A o B O C"
JSRMENSAJE
SMEM : CLI
NOP
WAI
SEI
L D M CODIGO
CMPE. # $DB "A"
BEQRAMI
LDAA CODIGO
CMPE. #$D3 " b "
BEQ RAME
LDAA CODIGO
CMPA #$CB
BEQEPROM
BRA SMEM
I t 4 L 1NF : LDX#BAD
JSRMENSAJE
JSRENTER
* Limite inferior
176
MANUAL DE PRACTICAS
LIMITS : LDX
JSR
JSR
JSR
JSR
;DX
CPX
BLT
STX
LTP
MALSU"
LDX #BAD
;SR MENSAJE
JSR ENTER
SEI
LDAA CODIGO
CMPA#$DB "A"
BNEPASOFl
LDY LimInf Apuntador
ala
dirección inicial,limite
A T J T O ~ T :JSR AUT-PAS inferior. Ejecución automaEica
JSR DELAY
JSR DELAY
JSR DELAY
JSR DELAY
ZSR DELAY
JSR DELAY
JSR DELAY
JSR DELAY
JSR DELAY
JSRDELAY
INY Se
incrementa
el
apuntador
de
direcciones
CPYLimSup Si todavía no se alcanza el limite superior
BLEAUTOMAT se continua desplegando
BRASALF5 Si se alcanzo, se sale de la función.
PASOFl : CMPA #$DC " F1 " Ejecuci6n paso a paso
BNEMODO
DFN1:FILL $ 0 8 , 3 - -F1-
FILL $71,1 F
FILL $ 0 6 , 1 1
FILL $ 0 8 , 3 -
178
MANUAL DE PRACTICAS
DFN5:FTLL $ 0 8 , 3 - -F5-
FILL $71,i F
FILL $6D,1 5
FILL $08,3 -
* %%%i%%%%%%% Tabla de Valores utilizados para comparar funciones% %
TABFNES FILL $DC,1 F1
FILL $D4,1 F2
FILL $CC, 1 F3
FILL $C4,1 F4
FILL $84,1 F5 Shift + F4
179
" U A L DE PRACTICAS
* X8888~B~%%%%F%%%P6%%%%888X88%8868%RSB%%~~,~%%%~%%8~:~~,%~~%%%
* ENTER Es un ciclo del cual se sale
si se oprime la teclaF1
ENTER : CLI
NOP
WAI
SEI
LDAB CODIGO
CMPB #FUNCl
BNE ENTER
RTS
* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
* SALIR: Es un ciclo del cual soio se sale si se oprime ESC= tecla
* F4
SALIR: CLI Lee TECLA F4
N3P
N\3P
WAI Espera q u e una tecla sea oprimida
SEI
LDAA #ESC
CMPA CODIGO
BNE SALIR
RTS
* e888%%%5%~%%%%%%E88%%%%?%%%%%%%%%%~%%%%%%%%~%%%~%%%%%%%%%%%%%
* Función Dato-Val, verifica si la tecla pulsada es Alfanumérica
MANUAL DE PRACTICAS
VALIDO:
ADDB
DCOMV
DCOMV=Dirección $01
STAB DCOMV Dato tecleado CONVERTIDO A hexadecimal real
RTS
* MSB=A=$0006, LSB=B=$0007
* 8%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%~%%%%%%%%%%%%
* % % % 6 % % % % % % % % % % % % % ~ % % % % % % % % % % % % % % % % ~ % % %
* DESPDIR: Despliegalos caracteres de una DIRECCION enlos displays
* 00,01,02 y 0 3
DESPDIR: LDAB NDIRS
CMPB # $ o @
BIGE UNO
INCB
STA?? NDIRS
LDAA # $ 8 C
STA4 CTCOM
LDAA c-7 seg
STAA CTDAT
JMP LISTO
UNO : CMPB #$O1
BNE "OS
IXZB
STAB NQIRS
LDAA #$81
STAA CT"34
LDAA C-7 seg
STAA CTDAT
183
MANUAL DE PRACTICAS
JMPLISTO
DOS : CMPB # $ O 2
BNETRES
INCE
STAE NDIRS
LDAA # $82
ST= CTCOM
LDAA C-7 seg
STAA CTDE-T
J-MP LISTO
TRES CMPB # $ o 3
BNE LISTO
LDAA #$83
STAA CTCOM
LDAA (2-7 s e g
STA?, CTDAT
LISTO: RTS
READY : RTS
* %%%%%%%%%%%%%%%%?%%%%%%%%%%%%%%%%%%%%%%%%%%~%%%%%%%%%%%%%~%%~%%%%?
* Tabla de caracter?s alfanuméricos. Conversión de códigos del
* teclado a hexadecimales
ALFANUM FILL $Co, 1O CODIGOS OBTENIDOS DEL TECLADO
FILL $C8,1 1
FILL $C9,1 2
FILL $CA,1 3
FILL $DOI1 4
FILL $DI,1 5
FILL $D2,1 6
FILL $D8,1 7
FILL $D9,i 8
FILL $DA,1 9
FILL $DB,1 A
FILL $D3,1 B
FILL $CB,1 C
FILL $C3,1 D
FILL $C2,1 E
FILL $C1,1 F
FILL $C4,1 F4
* %%%%%%%%~%%%%%%%8%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
* FUNCION: hexacod convierte un código producido por el
* teclado del 8279 en un código que representa su carácter en
* disp:.ays 7 cqmentos
HEXACOD: LDX #ALF,".LNUM
PSHY P o r el teclado del 8279
LDY #HEX-COD Dirección de la tabla de código en 7
Cm-COD: LDAB O , X
CMPB CODIG3
BNE AUMENTA
LDAB O , -I *
STAE C-';Lc?g Obtiene el código en7 segmentos
PULY
correspondiente la
atecla
pulsada
RTS Y lo ahacena enC-7seg
AUMENTA: INX
INY
BRA CMV-COD Salto a convertir a código de 7 segmentos
185
HEX-COD : FILL $3F,1 O CODIGOS DE DISPLAYS 7 SEGMENTOS
FILL $06,1 1
FILL $5B,1 2
FILL, $4F,1 3
FILL $66,1 4
FILL $6D,1 5
FILL $7D,1 6
FILL $07,1 7
FILL $7F,1 8
FILL $6F,1 9
FILL $77 I 1 A
FILL $7C,1 b
FILL $39,1 C
FILL $SE,1 d
FILL $79,1 E
FILL $71,1 F
MABC:FILL $77,1 A
FILL $5C,1 0
FILL $7C,1 b
FILL $5C,1 0
FILL $39,1 C
FILL $00 I3
AUT-PAS:STYLimInf
LDAA #WRITE
STAA NDATOS
LDAA LimInf
LDAB LimInf
JSR HEX-7SEG Despliega la parte alta de la dirección del
LDAA # $ 9 2 registro
seleccionado
STAA N3A'Y';
LDAA Limlnf L
LDAB Lim:?f L
JSF. HEX"7SEG Despliega la parte baja de la dirección dei
LDAA # $ 9 6 registro
seleccionado
STAA NDATOS
LDAA 0 , Y
LDAB 0 , Y
JSR HEx-7SEC. Despliega el contenido del registro
RTS
187
MANUAL DE PRACTICAS
* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
* HEX-7SEG: Convierte un numero de un byte 2encódigos de displays *
a 7 segmentos correspondientes a su carácter los
en mismos
HEX-7SEG: LSRB
LSRB
LSRB
LSRE
PSHA
LDX #HEX-COD Carga tabla de código de displays 7
LDAA #$O@ segmentos
CODUNO : CBA Cuenta hasta ubicar el apuntador de la tabla
BEQ DUNO HEX-COD en el código 7 segmentos
INX correspondiente al numero hexadecimal que se
INCA desplegar
JMP CODUNO
DUNO : LDAA NDATOS
STAA CTCOM
LDAA 0,X
STAA CTDAT Despliega el primer carácter del BYTE en
cuestión
PULA .
LSLAEjemplo:sielBYTE= 11110000=F
LSLA Se despliega primero F en el display
LSLA
LSLA
LSLA
LSLA
LSLA
LSLA
LDX#HEX-COD
LDAB # $ O 0
CODDOS : CBA
BEQDDOS
INX
INCB
JMP CODDOS
DDOS : LDAB o , X
STAB CTDAT Despliegue del segundo que seria O en el
*ejemplo
RTS
188
MANUAL DE PRACTICAS
RESPLJESTA AL CUESTIONARIO:
1.-Después de ejecutar la ISR (Interrupt ServiceRoutine), ¿Cómo
sabe elp? a qué dirección debe regresar en el programa principal?
Es una pregunta importante ya que la interrupción puede ocurrir
en cualquier momento y no hay forma de saber que instrucción estaba
procesando el CPU cuando ocurrió la interrupción. Este problema se
resuelve fácilmente si el CPU almacena el contenido del contador de
programa (PC) antes de
saltar a la ISR. La mayoría de los
microprocesado:-esalrrdcenanelcor,=enidodelPCenlapilade
sistema axEes de saltar a la rutina de servicio ISR. PosterioL-mente,
al final ie la ISR. Cllando se ejecuta la instrucciónRTI, el pC carga
automaticarnente al PC con lo q u e se tiene en la pila.
190
MANUAL DE PRACTICAS
190
MANUAL DE PRACTICAS
SOLUCION DE LA PRACTICA2
1.- Armar el circuito mínimo del 68HCll.
int Manejador;
int Modo;
double Radio;
int Ma=;
int MaxY;
int MaxColores;
int CodigoError;
struct palettetype Paleta;
float xl,y:, x2,y2 ;
char [ 3O 1;
msg
int viewx,viewy;
int xa,ya,xb,yb;
void vacia ( )
{
int i;
for(i=O;i<256;i++)
Datosl[i]=Datos2[i]=O;
1
void Init_ps(int p )
í * Inicializa Puerto Serie * /
{ union REGS rin,rout;
rin.h.ah=O;
rin.X.dX=p; / * O para COM1; 1 para COM2 * /
rin.h.al=OxE3; / * 9 6 0 0 baud, no paridad 8 bits de datos 1 bit de
int86 (0x14,&rin,&rout) ; / * paro * /
1
void SwapInt ( ) Intercambia manejadores de interrupción * . I
{
Old=getvect (ComTntNumher);
setvect (ComIntNumber, New) ;
1
void PrgInt( ) I*Se programa la interrupcibn * '
i
disable ( ) ;
outportb(Combase+ModemCon rolReg,ModemControlOn);
outportb(Combase+InEnaSleneg,IntEnableAll);
outportb (0x21,inportb (0x21
'GInEnableMask);
enable ( ) ;
1
194
MANUAL DE PRACTICAS
nt r ,int d;
enable ( ;
)&OxOl)==O)
while( ((r=inport(Combase+IntdReg)
{
switch(r)
{ case MDMSTATUS:
d=inportb(Combase+ModemStatusReg);
break ;
case TXREGEMPTY: if(TxEnab1e)
t
outportb(Combase, dato)
;
TxEnable=O;
ApDato=O;
1
break;
case IiXDATAREADY:Datosl[ApDato++]=inportb(Combase;+~;
if(ApDato==TA"l)ApDato=T;
break;
case RLINESTATUS: d=inportb(Cornbase+LineStatusRpg);
break;
>I
ou.tportb(0x20,0x20);
unsigned charD X ( )
return(inportb(Combase)1;
void IniciaPuertoO
t
Ini t_ps ( PortNumber ;
SwapInt ( ) ;
Prglnt ( ) ;
}
void Borde
( )
{
struct viewporttypev p ;
setlinestyle(SOLID~LINE,O,NOR."WIDTH);
getviewsettings(&vp);
rectangle(O,O,vp.right-vp.left,vp.bottom-vp.top);
1
void llena(xa,ya,xb,y'.~.)
int xa,ya,xb,yb;
{
int i ,j ;
i<=xb;i++,
for (i=xa;
line(i,ya, i,yb)
;
1
196
MANUAL DE PRACTICAS
i
itoa(i,s,lO)
outtextxv(xa-8,yb-i*t,s);
197
MANUAL DE PRACTICAS
1
setfillstyle(7,LIGHTBLUE);
bar(xa,ya,xb,yb);
setviewport (O,height+4,MaxX,MaxY-
(height+4),
1) ;
setcolor(WH1TE);
Borde ( ) ;
setviewport(xa-1,ya-l,xb+l,yb+l,l);
setcolorÍLIGHTBLUE);
Borde ( ) ;
setviewport(xa,ya,xb,yb;
viewX=xb-xa+l;
viewY=yb-ya+l;
1
int n e m (float r)
{
return(abs(int) viewX*(r-xl)/(x2-xl)));
int newy(f1oat y )
{
return(abs(int1 / (y2-yl)1 ) ;
viewY* (y-yl)
1
I,
void ponpixel (float float y, int c)
t
if ((r>xl!&(r.-=x2)’x(y~;.yl)&(y<=y2))
putpixel(newx(r),view~-newy(y)
,c);
1
void IniciaRangoO
{
~1=-12a;
x2= 127;
yl=-12a;
y2= 127;
1
198
MANUAL DE PRACTICAS
void Grafica
( )
{
int i;
bar(xa,ya,xb,yb);
setcolor(YELL0W);
line(new(x1),newy(O) ,newA(x2) ,newy(O));
line (newi O ) , newy (yl), newx ( O ) , newy (y2 1 ;
for(i=O;i<256;i++)
ponpixel((f1oat)(i+xl),(float)(Datos2[i]+yl),BLACK);
ponpixel((float)(i+xl),(float)(Datosl[i]+yl),WHITE);
Datos2 [ i] [ i] ;
=Datos1
1
1
main ( )
I
I
char c ;
varia ( ) ;
IniciaPuerLa ( ) ;
IniciaGraf ( 1 ;
ica
do
{
Tx ( OxOD! ;
DxO;
disable i ) ;
Graf ica
i ) ;
if(kbhiE0);
199
MANUAL DE PRACTICAS
switch(c)
{
case 0x0: c= getch0;
switch(c)
{
case Ox4B : IniciaGraficaO;
break ;
case Ox3C: getck!( ) ;
break ;
1
1
1
enable ( ) ;
1
while(c!=OxlB);
RePrgInt ( 1 ;
1
200
MANUAL DE PRACTICAS
CUESTIONARIO:
1.-Como se realizo la transmisiónde datos a laPC.
Se utilizo el circuitoM C 1 4 E 1 0 7 el cual es una inrerfase serial
y se encarga de la comunicación con la PC.
9600 baudios.
S i n paridad.
Ocho bits de datos.
Un bit de paro.
Este circuito se coloco entre MCU68HCll e? y la PC
Este circuito se conecto2n la interfase seriai de
comunicaciones quetiene prcvista la tarjeta de? HCll como
inician las siguientes figura:
i
- U
.;
", CONTROL
201
MANUAL DE PRACTICAS
El MC145407contienetresinterfasesserialesRS2.32C yse
puevcean en DI1 y DO1 para que Txl y Rxl se encarguen de generar las
señales DCD, DSR,C T S y DTR respectivamente, las anteriores seflales
timen el siguiente significado en la PC:
3CD Detectorportadordedatos,esteindicaalaPCquehay
presencia de datos
3SR Datoscolocadoslistos,estasalidaindicaelestadode
disponibilidad de los datos.
CTS'Limpiarpara enviar, dalaseñal de salida q - 1 ~ permite la
transm:,sión.
DTR T'fzrminal de datoslista, Esta señal de entrada indica que va a
recibir.
el MC145407.
202
MANUAL DE PRACTICAS
Linea O 1 2 3 4 5 6 7 8
inactiva l l l l l l ~ ~ ~ ~ l u
START
2
203
MANUAL DE PRACTICAS
U u a a 8 m a 8
3
l=Activa
Registro SCSR
Este registro se encarga de leer el status de la comunicación
serial.
I U J t J L # U
Bit O No implementado
Registro BAUD
Selecciona a cuantos Baudios se transmite
c u J T J L I U
RESET
ITCLR I O I S C P l I SCPOl RCKBI SCR2 ISCR2 lSCR0 I BAUD
u u o O O O O O
6
Se elige SCPl
y SPO en 1-1
206
MANUAL DE PRACTICAS
(se escogió 0 - 0 - 0 )
NCKB Checa el relojde transmisión (usado defabrica)
ONSCILDAA #$30
STAABAUD Fija lo Baudios
LDAA #$O0
STEL; SCCRl Fija unbit de in-zio, 8 bits de datos y
LDA4 #$OC uno de
paro
STA.: SCCR2
RTS
Activa transmisión
la y la recepción
PROGRAMA DE LECTURA
207
MANUAL DE PRACTICAS
INSCI
LDAA
SCSR
Lee
status
ANDA #$20 Checa si existe datos
BEQ INSCII Salta si no hay datos
LDAASCDAT Lee el dato
PROGRAMA DE ESCRITURA
Para
seleccionar
el A/D se
observaron
las
siguientes
características:
Simplicidad, demanera que el componentesea de uso fácil
Velocidad, para los casos en que hay que tomar medida en gran
cantidad;
Impedanciadeentradaelevadademanerade no influerziar
(cargar) el circuito analógico de transconductor.
Algunas compañías poseen una vasta línea de convertidores A/D,
algunos de ellos dotados hasta de complejos sistemas de señales para
aplicaciones que exigen estos recursos.
Se u t j . 1 ' ;i3 el microcontrolador MC68HCllE9 de 8 canales, en' r,a-;z
multiplexada, ('on aproximación sucesiva.
Dos línea: (VRL,VRH) son provistas para la entrada de voltaje de
referencia.
Estos pines son conectadosVRL a tierra y \RH a Vcc para tener
entradas de voltaje de O a 5 Vcc.
208
MANUAL DE PRACTICAS
209
MANUAL D EP R A C T I C A S
/ b 3 4 3 L l U
..........
LDAA # $ 2 1
STAA $1030 Configura el convertidor A / D , configura canal 2 y
lectura de conversión
210
MANUAL DE PRACTICAS
3.-COmO se realizo la recepción de datos en PC. la
Se utilizo una comunicación asincrona que se utiliza en la PC,
el cualsetratadel8250quees elelementodecomunicación
asincrona (ACE) que es el circuito integrado que se utiliza para
realizar comunicaciones con el RS-232c y el código B I O S .
La interfaz RS-232C es utiliza para la comunicaclón con equipo
periférico y para esto hay que tener cuidado cuando se establece una
interfaz con equipo periférico ya que se debe verificar que es
compatible con la interfaz RS232C.
Las terminales que se indican en la tabla, son las que se
encuentran normalmente en el conector estándar tipo DB25 la cual
tiene 25 terminales. Si hay que conectar 2 interfases RS-232C la
técnica habitual es construir un cable que realice la configuración
de modem nulo. Esta configuración cruza las terminales2 y 3 , 4 y 5 ,
6 y 20, de modo que la línea de transmisión de 1, es la entrada a la
línea de recepción del otro.En general la terminal8 se utiliza para
encender un LED que indica la presencia de comunicación cuando se
utilizan modems para la interfaz. Las terminales7 y 1 son acopladas
de manera directaa través de7 y 1 respectivamente.
211
MANUAL DE PRACTICAS
212