Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ALUMNO: FIRMA:
FECHA DE
ENTREGA:
PRACTICA No. 9
USART
EQUIPO Y MATERIAL:
DESARROLLO:
2.1 Elabore un programa que transmita en forma continua un caracter ‘#’ (23H) a través del puerto
de comunicación USART.
2.2.- Anexe para cada diagrama el archivo con extensión .LST generado en la compilación.
Los diagramas de flujo propuestos se muestran a continuación:
Programa principal:
Rdato 00100011
Txbyte
Cpuertos
ADCON1 0X0F
INTCON 0X90
RETURN
Subrutina Cusart
TXSTA 0X24
RETURN
Subrutina Txbyte
Monitorea el bit TRMT hasta que la transmisión
Txbyte anterior haya concluido
TXREG W
RETURN
2.6.- A partir del tiempo medido, calcule el BAUD RATE y verifique que sea 9600 bps.
2.8.- Grafique en el siguiente recuadro la forma de onda obtenida en el osciloscopio indicando bit
de inicio, de final y los ocho bits de datos.
Cpuertos
Cusart
Rdato 00100011
Txbyte
4.2.- Agregue la subrutina RxByte:
Rxbyte
RxByte
NO
RCIF = 1
SI
W RCREG
Subrutina RxByte
Rdato W Monitorea el bit RCIF hasta que una recepción se
haya realizado.
4.3.- Ejecute el programa y verifique que el carácter “#” es retransmitido en forma continua.
4.4.- Con el osciloscopio verifique que el dato transmitido corresponda al dato recibido.
4.5.- Grafique la forma de onda observada en el osciloscopio indicando bit de inicio, de final y los
ocho bits de datos.
4.6.- Retire el puente colocado en el punto 4.2 y verifique que la retransmisión sea suspendida.
5.- Aplicación.
5.1.- Arme el siguiente circuito.
+
1
VCC
A
-
2
RB7 RA0
RB6 RA1
RB5 RA2 RX
RB4 RA3
RB3 RA4 TX
RB2 RA5
RB1 RA6 HC06
MCU
RB0
VCC RC6
RC7
RD0 D0
RD1 D1
RD2 D2
RD3 D3
RD4
RD5 D4
RD6 D5
RD7 D6
RC9 D7
PIC18F4550
5.2.- Elabore un programa de acuerdo al diagrama de flujo mostrado a continuación, de forma tal
que reciba a través del puerto USART un carácter que determine la velocidad de giro del motor
conectado en la línea 1 del puerto PORTA.
HandSh
LEER
PWM
Subrutina HandSh.
NO TxByte
Rdato “?”
Rdato “A”
TxByte
TxByte
Rdato 0x00
RETURN
LEER
Subrutina LEER.
RxByteN
Utiliza la subrutina RxByteN para recibir la velocidad de
giro del motor.
W Rdato
La rutina espera por el comando de velocidad y a partir de
PORTA.1 0
este establece los valores para los registros RH y RL.
W W ● 0x0F
SI
ZF = 1
NO
W 0X10 – W RH W
RL W
RETURN
Subrutina RxByteN
Rdato W
PWM
RETURN
R6 RH
NO
RL = 0 R6 RL
SI
GTime
RETURN
GTime
Subrutina GTime
Establece los valores de los registros Rth y Rtl para un tiempo de un
Rtcon 0x08 milisegundo. Estos valores son utilizados en la subrutina TMR0 el
número de veces establecida en el registro R6.
Rth 0xd1
Rtl 0x20
TMR0
R6 R6 - 1
NO
ZF = 1
SI
RETURN
TMR0
Subrutina TMR0
T0CON Rtcon
Toma los valores establecidos en los registros Rtcon, Rth
y Rtl para generar el tiempo requerido. TMR0H Rth
TMR0L Rtl
TMR0ON 1
NO SI
TMR0IF = 1
TMR0IF 0
TMR0ON 0
RETURN
RSI
Vector de INTERRUPCION:
Establece la ejecución de la rutina de servicio CUENTA para la
CUENTA
interrupción INTO.
RETFIE
CONCLUSIONES