Sie sind auf Seite 1von 19

PIC Simulador IDE Introducción Page

Hay once ejemplos incluidos con PIC Simulador IDE. Están ubicados en la carpeta de aplicaciones. Este es corta guía paso

a paso para los principiantes que les ayudarán a probar estos ejemplos y de esa manera explorar las características más importantes de la PIC Simulador IDE.

Ejemplo 1: Timer0 módulo de simulación, TMR0 interrumpe

Ejemplo 2: interrupciones externas RB0/INT

Ejemplo 3: La memoria de datos EEPROM simulación acceso

Ejemplo 4: Rutina multiplican Matemáticas, la demostración de compilador, ensamblador y depurador

Ejemplo 5: Un módulo de simulación / D

Ejemplo 6: Comparador de tensión y módulos de referencia simulación

Ejemplo 7: Módulo de simulación LCD

Ejemplo 8: Hardware módulo UART simulación

Ejemplo 9: Interfaz UART simulación Software

Ejemplo 10: 7 segmentos pantallas LED de simulación

Ejemplo 11: Generador de señal y módulos de simulación de osciloscopio

Ejemplo 1

- Examinar archivo timer0.bas de la carpeta de la aplicación. Este programa Basic utiliza Timer0 interrupciones del módulo para cambiar periódicamente el valor en los pines PORTB. Timer0.asm archivo se generó usando compilador Basic integrado. Archivo timer0.hex se generó usando ensamblador integrado.

TRISB = 0x00 'set all PORTB pins as outputs PORTB = %11111111 'make all PORTB pins high INTCON.T0IE = 1 'enable Timer0 interrupts INTCON.GIE = True 'enable all un-masked interrupts OPTION_REG.T0CS = False 'set Timer0 clock source to internal instruction cycle clock End

On Interrupt 'interrupt routine PORTB = PORTB - 1 'decrement the value on PORTB INTCON.T0IF = 0 'enable new TMR0 interrupts Resume

- Iniciar PIC Simulador IDE.

- Haga clic en Opciones \ Select microcontrolador.

- Seleccione 'PIC16F84' y haga clic en el botón Seleccionar.

- Haga clic en Archivo \ Program Load.

- Seleccionar archivo timer0.hex y haga clic en Abrir. Eso cargar el programa en la memoria del programa PIC.

- Haga clic en Tools \ microcontrolador View. Esto abrirá la ventana de vista microcontrolador.

- Vuelva a colocar las ventanas en la pantalla para obtener una mejor vista.

- Seleccione la carpeta \ tasa simulación extremadamente rápido de Cambio.

- Haga clic en Simulación \ Inicio. La simulación se iniciará inmediatamente.

- Este programa Basic utiliza Timer0 interrupciones del módulo para cambiar periódicamente el valor en los pines PORTB.

- La simulación puede detenerse en cualquier momento haciendo clic en Simulación \ Detener.

Imagen: Vista

haciendo clic en Simulación \ Detener. Imagen: Vista Ejemplo 2 - Examinar archivo rb0int.bas de la

Ejemplo 2

- Examinar archivo rb0int.bas de la carpeta de la aplicación. Este programa Basic utiliza RB0/INT interrupciones basadas en PIN para cambiar el valor en PORTA. Rb0int.asm archivo se generó usando compilador Basic integrado. Archivo rb0int.hex se generó usando ensamblador integrado.

TRISA = 0x00 'set all PORTA pins as outputs PORTA = 0xff 'make all PORTA pins high INTCON.INTE = 1 'enable RB0/INT interrupts INTCON.GIE = 1 'enable all un-masked interrupts End

On Interrupt 'interrupt routine PORTA = PORTA - 1 'decrement the value on PORTA INTCON.INTF = 0 'enable new RB0/INT interrupts Resume

Iniciar PIC Simulador IDE.

- Haga clic en Opciones \ Select microcontrolador.

- Seleccione 'PIC16F84' y haga clic en el botón Seleccionar.

- Haga clic en Archivo \ Program Load.

- Seleccionar archivo rb0int.hex y haga clic en Abrir. Eso cargar el programa en la memoria del programa PIC.

- Haga clic en Tools \ microcontrolador View. Esto abrirá la ventana de vista microcontrolador.

- Vuelva a colocar las ventanas en la pantalla para obtener una mejor vista.

- Seleccione la carpeta \ tasa simulación extremadamente rápido de Cambio.

- Haga clic en Simulación \ Inicio. La simulación se iniciará inmediatamente.

- Este programa Basic utiliza RB0/INT interrupciones basadas en PIN para cambiar el valor en PORTA.

- Al hacer clic en el botón T asociado con pin RB0/INT seguirá alternando el estado lógico de este pin. Las interrupciones se activarán en el flanco ascendente de los impulsos. Cada vez que el valor sobre el Porta será cambiado.

- La simulación puede detenerse en cualquier momento haciendo clic en Simulación \ Detener.

Imagen: Vista

haciendo clic en Simulación \ Detener. Imagen: Vista Ejemplo 3 - Examinar archivo eeprom.bas de la

Ejemplo 3

- Examinar archivo eeprom.bas de la carpeta de la aplicación. Este ejemplo llena la memoria EEPROM de datos y entra

en un bucle infinito. Eeprom.asm archivo se generó usando compilador Basic integrado. Archivo eeprom.hex se generó

usando ensamblador integrado.

Dim a As Byte 'eeprom address Dim b As Byte 'eeprom data

For a = 0 To 63 'go through whole eeprom memory b = 255 - a 'set the data value to be written Write a, b 'perform the writing to eeprom Next a

- Iniciar PIC Simulador IDE.

- Haga clic en Opciones \ Select microcontrolador.

- Seleccione 'PIC16F84' y haga clic en el botón Seleccionar.

- Haga clic en Archivo \ Program Load.

- Seleccionar archivo eeprom.hex y haga clic en Abrir. Eso cargar el programa en la memoria del programa PIC.

- Haga clic en Tools \ EEPROM Memory Editor. Eso abrirá la ventana del Editor de memoria EEPROM.

- Vuelva a colocar las ventanas en la pantalla para obtener una mejor vista.

- Haga clic en Opciones \ Cambiar EEPROM escribir a tiempo. Introduzca 100 en el valor nuevo y haga clic en Aceptar.

Usted debe tener mucho cuidado al elegir este valor, ya que el valor real es de aproximadamente 20.000 ciclos de reloj de 4 MHz. En este sencillo ejemplo vamos a utilizar el valor a corto, ya que no puede afectar a la funcionalidad del

programa, pero se puede reducir significativamente el tiempo de ejecución de la simulación.

- Seleccione la carpeta \ tasa simulación extremadamente rápido de Cambio.

- Haga clic en Opciones \ Infinite Loop Paradas simulación para seleccionar esa opción.

- Haga clic en Simulación \ Inicio. La simulación se iniciará inmediatamente.

- Este ejemplo llena la memoria EEPROM de datos y entra en un bucle infinito.

- Tras la detección del bucle infinito, el simulador se detendrá automáticamente la simulación

Imagen: Vista

- Tras la detección del bucle infinito, el simulador se detendrá automáticamente la simulación Imagen: Vista

- Examinar archivo multiply.bas de la carpeta de la aplicación. En este ejemplo se multiplique dos números 123 (7B hex) y 234 (hex EA) y obtener el resultado 28782 (hex 706E). Multiply.asm archivo se generó usando compilador Basic integrado. Archivo multiply.hex se generó usando ensamblador integrado.

Dim a As Word 'first number Dim b As Word 'second number Dim x As Word 'result

a

= 123 'set first number

b

= 234 'set second number

x

= a * b 'calculate result

-

Iniciar PIC Simulador IDE.

-

Haga clic en Opciones \ Select microcontrolador.

-

Seleccione 'PIC16F84' y haga clic en el botón Seleccionar.

-

Haga clic en Tools \ BASIC Compiler

-

Haga clic en Archivo \ Abrir

-

Seleccione multiply.bas archivo y haga clic en Abrir. El programa de código básico se muestra en el editor.

Haga clic en Tools \ Compile. El compilador generará archivo multiply.asm con fuente de ensamblador.

- Cierre la ventana del compilador BASIC.

- Haga clic en Tools \ ensamblador

- Haga clic en Archivo \ Abrir

- Seleccionar archivo multiply.asm y haga clic en Abrir. El programa de código ensamblador se mostrará en el editor.

- Haga clic en Tools \ montar. Después de que se complete la operación el ensamblador generará dos archivos:

multiply.lst y multiply.hex. Aparecerá el multiply.lst archivo de salida.

- Cerrar la ventana ensamblador.

- Haga clic en Archivo \ Program Load.

- Seleccionar archivo multiply.hex y haga clic en Abrir. Eso cargar el programa en la memoria del programa PIC.

Haga clic en Tools \ Breakpoints Manager. Eso abrirá la ventana del Administrador de Puntos de interrupción.

- Haga clic en Sí para utilizar el archivo listado en ensamblador existente.

- Vuelva a colocar las ventanas en la pantalla para obtener una mejor vista.

- Haga clic en la línea correspondiente a 0018 direcciones para definir el punto de interrupción en esta instrucción.

- Seleccionar el PC Hold En la opción de enfoque

- Seleccione la carpeta \ tasa simulación extremadamente rápido de Cambio.

- Haga clic en Simulación \ Inicio. La simulación se iniciará inmediatamente.

- Una vez finalizada esta rutina matemática el programa entra en el bucle infinito en la dirección 0018, pero debido al punto de ruptura, el simulador pasará automáticamente al paso a velocidad de la simulación Paso.

- Usted puede parar la simulación ahora haciendo clic en Simulación \ Detener y reanudar la ejecución en la limpieza del punto de interrupción definido y haciendo clic en Cambio \ extremadamente rápido.

- Un par de registros de propósito general (19H-18H) llevará a cabo la primera 007B argumento.

- GPR par (1BH-1AH) llevará a cabo la segunda 00EA argumento.

- El 706E resultado residirá en (1DH-1CH) par de registros.

Imagen: Vista

residirá en (1DH-1CH) par de registros. Imagen: Vista Ejemplo 5 - Examinar archivo adc.bas de la

Ejemplo 5

- Examinar archivo adc.bas de la carpeta de la aplicación. Este programa lee el valor analógico en AN0 entrada analógica y muestra de resultados de conversión de 8 bits en PORTB. Adc.asm archivo se generó usando compilador Basic integrado. Archivo adc.hex se generó usando ensamblador integrado.

Symbol ad_action = ADCON0.GO_DONE 'set new name for A/D conversion start bit Symbol display = PORTB 'set new name for PORTB used to display the conversion result

TRISB = %00000000 'set PORTB pins as outputs TRISA = %111111 'set PORTA pins as inputs ADCON0 = 0xc0 'set A/D conversion clock to internal source

ADCON1 = 0 'set PORTA pins as analog inputs High ADCON0.ADON 'turn on A/D converter module

main:

Gosub getadresult 'go to conversion routine display = ADRESH 'display the result of the conversion Goto main 'repeat forever End

getadresult: 'conversion routine High ad_action 'start the conversion While ad_action 'wait until conversion is completed Wend Return

- Iniciar PIC Simulador IDE.

- Haga clic en Opciones \ Select microcontrolador.

- Seleccione 'PIC16F877' y haga clic en el botón Seleccionar.

- Haga clic en Archivo \ Program Load.

- Seleccionar archivo adc.hex y haga clic en Abrir. Eso cargar el programa en la memoria del programa PIC.

- Haga clic en Tools \ microcontrolador View. Esto abrirá la ventana de vista microcontrolador.

- Vuelva a colocar las ventanas en la pantalla para obtener una mejor vista.

- Seleccione la carpeta \ tasa simulación extremadamente rápido de Cambio.

- Haga clic en Simulación \ Inicio. La simulación se iniciará inmediatamente.

- Haga clic en un botón asociado RA0/AN0 pin.

- Con el control deslizante cambia el valor analógico en este pin y haga clic en el botón Aceptar.

- Ver cómo este cambio afecta al estado en los pines PORTB.

- Los tres últimos pasos se pueden repetir.

- La simulación puede detenerse en cualquier momento haciendo clic en Simulación \ Detener.

Imagen: Vista

Ejemplo 6 - Examinar archivo comp.bas de la carpeta de la aplicación. En este ejemplo

Ejemplo 6

- Examinar archivo comp.bas de la carpeta de la aplicación. En este ejemplo se utiliza módulo comparador analógico

para detectar el estado de AN0 y AN1 entradas analógicas en lo que se refiere a la tensión de referencia de 2,5 V generada por el módulo interno. Comp.asm archivo se generó usando compilador Basic integrado. Archivo comp.hex se

generó usando ensamblador integrado.

Symbol comp_change = PIR1.CMIF 'comparator interrupt flag

CMCON = 0x06 'set comparator mode to two common reference comparators with outputs TRISA = 0x07 'set RA0, RA1 and RA2 as inputs, other PORTA pins as outputs VRCON = 0xec 'turn on, configure voltage reference module for 2.5V and connect it to RA2 TRISB = 0x00 'set PORTB pins as outputs

loop1:

While Not comp_change 'wait for comparator output change Wend PORTB = CMCON 'display CMCON register on PORTB pins, RB6 and RB7 are comparator outputs comp_change = 0 'reset comparator interrupt flag Goto loop1 'repeat forever

- Iniciar PIC Simulador IDE.

- Haga clic en Opciones \ Select microcontrolador.

- Seleccione 'PIC16F628' y haga clic en el botón Seleccionar.

- Haga clic en Archivo \ Program Load.

- Seleccionar archivo comp.hex y haga clic en Abrir. Eso cargar el programa en la memoria del programa PIC.

- Haga clic en Tools \ microcontrolador View. Esto abrirá la ventana de vista microcontrolador.

- Vuelva a colocar las ventanas en la pantalla para obtener una mejor vista.

- Seleccione la carpeta \ tasa simulación extremadamente rápido de Cambio.

- Haga clic en Simulación \ Inicio. La simulación se iniciará inmediatamente.

- Haga clic en un botón asociado o AN0 AN1 pin.

- Con el control deslizante cambia el valor analógico en ese pin y haga clic en el botón Aceptar.

- Ver cómo este cambio afecta al estado en los pines PORTA y PORTB.

- Los tres últimos pasos se pueden repetir.

- La simulación puede detenerse en cualquier momento haciendo clic en Simulación \ Detener.

Imagen: Vista

haciendo clic en Simulación \ Detener. Imagen: Vista Ejemplo 7 - Examinar archivo lcd.bas de la

Ejemplo 7

- Examinar archivo lcd.bas de la carpeta de la aplicación. Este programa lee el valor analógico en AN0 entrada analógica y muestra el formato de salida en el módulo LCD 2x16 adjunto. Lcd.asm archivo se generó usando compilador Basic integrado. Archivo lcd.hex se generó usando ensamblador integrado.

Define ADC_CLOCK = 3 'default value is 3 Define ADC_SAMPLEUS = 10 'default value is 20 Define LCD_BITS = 8 'allowed values are 4 and 8 - the number of data interface lines Define LCD_DREG = PORTB

Define LCD_DBIT = 0 '0 or 4 for 4-bit interface, ignored for 8-bit interface Define LCD_RSREG = PORTD Define LCD_RSBIT = 1 Define LCD_EREG = PORTD Define LCD_EBIT = 3 Define LCD_RWREG = PORTD 'set to 0 if not used, 0 is default Define LCD_RWBIT = 2 'set to 0 if not used, 0 is default Define LCD_COMMANDUS = 2000 'delay after LCDCMDOUT, default value is 5000 Define LCD_DATAUS = 50 'delay after LCDOUT, default value is 100 Define LCD_INITMS = 2 'delay used by LCDINIT, default value is 100 'the last three Define directives set the values suitable for simulation; they should be omitted for a real device

Dim an0 As Word

TRISA = 0xff 'set all PORTA pins as inputs ADCON1 = 0 'set all PORTA pins as analog inputs Lcdinit 'initialize LCD module; cursor is off

loop:

Adcin 0, an0 Lcdcmdout LcdClear 'clear LCD display Lcdout "Analog input AN0" 'text for the line 1 Lcdcmdout LcdLine2Home 'set cursor at the beginning of line 2 Lcdout "Value: ", #an0 'formatted text for line 2 WaitMs 1 'larger value should be used in real device Goto loop 'loop forever

- Iniciar PIC Simulador IDE.

- Haga clic en Opciones \ Select microcontrolador.

- Seleccione 'PIC16F877' y haga clic en el botón Seleccionar.

- Haga clic en Archivo \ Program Load.

- Seleccionar archivo lcd.hex y haga clic en Abrir. Eso cargar el programa en la memoria del programa PIC.

- Haga clic en Tools \ microcontrolador View. Esto abrirá la ventana de vista microcontrolador.

- Haga clic en Tools \ del módulo LCD. Eso abrirá la ventana del simulador del módulo LCD.

- Vuelva a colocar las ventanas en la pantalla para obtener una mejor vista.

- Haga clic en el botón Configuración en la ventana del módulo LCD.

- Haga clic en el campo "Líneas de datos" y ponerlo a PORTB.

- Haga clic en el campo "Interfaz" y ponerlo a 8 bits.

- Haga clic en el campo "Línea RS 'y ponerlo a PORTD, 1.

- Haga clic en el campo 'E Line' y ponerlo a PORTD, 3.

- Haga clic en el campo 'R / W Line' y ponerlo a PORTD, 2.

- Haga clic en 'Aplicar' para cerrar el diálogo de configuración inteface LCD.

- Seleccione la carpeta \ tasa simulación extremadamente rápido de Cambio.

- Haga clic en Simulación \ Inicio. La simulación se iniciará inmediatamente.

- Haga clic en un botón asociado RA0/AN0 pin.

- Con el control deslizante cambia el valor analógico en este pin y haga clic en el botón Aceptar.

- Ver cómo este cambio afecta al módulo LCD.

- Los tres últimos pasos se pueden repetir.

- La simulación puede detenerse en cualquier momento haciendo clic en Simulación \ Detener.

- Imagen: Vista

haciendo clic en Simulación \ Detener. - Imagen: Vista Ejemplo 8 - Examinar archivo uart.bas de

Ejemplo 8

- Examinar archivo uart.bas de la carpeta de la aplicación. Este programa envía primero 6 líneas de salida con formato al puerto de serie del hardware UART y luego responde a los bytes recibidos en ese puerto serie mediante el envío de una línea de texto con formato para cada byte recibido. Uart.asm archivo se generó usando compilador Basic integrado. Archivo uart.hex se generó usando ensamblador integrado.

Dim i As Byte 'declare a variable Hseropen 9600 'open hardware uart port for baud rate 9600 'WaitMs 1000 'this delay should be used in a real device

For i = 10 To 5 Step -1 'for-next loop Hserout "Number: ", #i, CrLf 'send formatted output to serial port

'WaitMs 500 'this delay should be used in a real device Next i

loop:

Hserin i 'wait to receive a byte on serial port Hserout "Number: ", #i, CrLf 'send formatted output to serial port Goto loop 'loop forever

- Iniciar PIC Simulador IDE.

- Haga clic en Opciones \ Select microcontrolador.

- Seleccione 'PIC16F877' y haga clic en el botón Seleccionar.

- Haga clic en Opciones \ Cambiar frecuencia de reloj.

- Introduzca '4 'y haga clic en el botón Aceptar.

- Haga clic en Opciones \ Change UART transmisión / recepción Time.

- Introducir '100 'y haga clic en el botón Aceptar.

- Haga clic en Archivo \ Program Load.

- Seleccionar archivo uart.hex y haga clic en Abrir. Eso cargar el programa en la memoria del programa PIC.

- Haga clic en \ Hardware Interface Simulación UART Tools. Esto abrirá la ventana de la interfaz hardware UART durante la simulación.

- Vuelva a colocar las ventanas en la pantalla para obtener una mejor vista.

- Seleccione la carpeta \ tasa simulación extremadamente rápido de Cambio.

- Haga clic en Simulación \ Inicio. La simulación se iniciará inmediatamente.

- Espere hasta que el programa haya terminado de enviar 6 líneas de texto con formato en el puerto serie.

- Uso de uno de los tres botones disponibles en la sección de entrada de la interfaz UART UART enviar un byte al puerto serie.

- Mira cómo el programa responde enviando una línea de salida formateada.

- Los dos últimos pasos se pueden repetir.

- La simulación puede detenerse en cualquier momento haciendo clic en Simulación \ Detener

Imagen: Vista

Ejemplo 9 - Examinar archivo softuart.bas de la carpeta de la aplicación. Este programa envía

Ejemplo 9

- Examinar archivo softuart.bas de la carpeta de la aplicación. Este programa envía primero 6 líneas de salida con

formato al puerto serie UART software (TX line: PORTB.1) y reacciona a los bytes recibidos en ese puerto serie (línea RX:

PORTB.2) mediante el envío de una línea de texto con formato para cada byte recibido. Softuart.asm archivo se generó

usando compilador Basic integrado. Archivo softuart.hex se generó usando ensamblador integrado.

Define SEROUT_DELAYUS = 500 Dim i As Byte 'declare a variable 'WaitMs 1000 'this delay should be used in a real device

For i = 10 To 5 Step -1 'for-next loop Serout PORTB.1, 9600, "Number: ", #i, CrLf 'send formatted output to PORTB.1 (TX line of software UART) 'WaitMs 500 'this delay should be used in a real device Next i

loop:

Serin PORTB.2, 9600, i 'wait to receive a byte on PORTB.2 (RX line of software UART) Serout PORTB.1, 9600, "Number: ", #i, CrLf 'send formatted output to serial port Goto loop 'loop forever

- Iniciar PIC Simulador IDE.

- Haga clic en Opciones \ Select microcontrolador.

- Seleccione 'PIC16F84' y haga clic en el botón Seleccionar.

- Haga clic en Opciones \ Cambiar frecuencia de reloj.

- Introduzca '4 'y haga clic en el botón Aceptar.

- Haga clic en Archivo \ Program Load.

- Seleccionar archivo softuart.hex y haga clic en Abrir. Eso cargar el programa en la memoria del programa PIC.

- Haga clic en \ Simulation Interface UART Software Tools. Esto abrirá la ventana de la interfaz de software UART durante la simulación.

- Se deben establecer los ajustes predeterminados: RX Line ---> PORTB.2, TX Line ---> PORTB.1, velocidad ---> 9600, Niveles Lógicos ---> simple. Si no es así, con los comandos de menú Ajustes realizar los cambios necesarios.

- Haga clic en Tools \ microcontrolador View. Esto abrirá la ventana de vista microcontrolador.

- Vuelva a colocar las ventanas en la pantalla para obtener una mejor vista.

- Seleccione el tipo de simulación \ final (No Refresh) Rate.

- Haga clic en Simulación \ Inicio. La simulación se iniciará inmediatamente.

- Espere hasta que el programa haya terminado de enviar 6 líneas de texto con formato en el puerto serie. Preste atención a la situación de PORTB.1 pin en la ventana de vista microcontrolador.

- Uso de uno de los tres botones disponibles en la sección de entrada de la interfaz UART UART enviar un byte al puerto serie. Preste atención a la situación de PORTB.2 pin en la ventana de vista microcontrolador.

- Mira cómo el programa responde enviando una línea de salida formateada.

- Los dos últimos pasos se pueden repetir.

- La simulación puede detenerse en cualquier momento haciendo clic en Simulación \ Detener.

- Imagen: Vista

repetir. - La simulación puede detenerse en cualquier momento haciendo clic en Simulación \ Detener. -

Ejemplo 10

- Examinar archivo 7segment.bas de la carpeta de la aplicación. Este programa muestra los números de 0 a 99 en las dos pantallas LED de 7 segmentos con conexión en paralelo y dos líneas de habilitación utilizando TMR0 procedimiento de multiplexación de interrupción. 7segment.asm archivo se generó usando compilador Basic integrado. Archivo 7segment.hex se generó usando ensamblador integrado.

Dim digit As Byte 'input variable for GETMASK subroutine Dim digit1 As Byte 'current high digit Dim digit2 As Byte 'current low digit Dim mask As Byte 'output variable from GETMASK subroutine Dim mask1 As Byte 'current high digit mask Dim mask2 As Byte 'current low digit mask Dim i As Byte Dim phase As Bit

Symbol d1enable = PORTC.0 'enable line for higher 7-segment display Symbol d2enable = PORTC.1 'enable line for lower 7-segment display TRISB = %00000000 'set PORTB pins as outputs TRISC.0 = 0 'set RC0 pin as output TRISC.1 = 0 'set RC1 pin as output d1enable = False d2enable = False mask1 = 0 mask2 = 0 phase = 0 INTCON.T0IE = 1 'enable Timer0 interrupts INTCON.GIE = 1 'enable all un-masked interrupts OPTION_REG.T0CS = 0 'set Timer0 clock source to internal instruction cycle clock

loop:

For i = 0 To 99 digit1 = i / 10 'get current high digit digit2 = i Mod 10 'get current low digit TMR0 = 0 'reset Timer0 to prevent its interrupt before both masks are determined digit = digit1 Gosub getmask 'get mask for high digit mask1 = mask digit = digit2 Gosub getmask 'get mask for low digit mask2 = mask Gosub show1 'display new mask Gosub show2 'display new mask WaitUs 500 'delay interval suitable for simulation 'use large delay for the real device, say WAITMS 500 Next i Goto loop End

On Interrupt 'Timer0 interrupt routine 'continuously switch between high and low digit displays If phase = 0 Then phase = 1 Gosub show1 Else phase = 0 Gosub show2

Endif INTCON.T0IF = 0 'enable new TMR0 interrupts Resume

getmask: 'get appropriate 7-segment mask for input digit mask = LookUp(0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f), digit Return

show1: 'show high digit on its display d2enable = False PORTB = mask1 d1enable = True Return

show2: 'show low digit on its display d1enable = False PORTB = mask2 d2enable = True Return

- Iniciar PIC Simulador IDE.

- Haga clic en Opciones \ Select microcontrolador.

- Seleccione 'PIC16F877' y haga clic en el botón Seleccionar.

- Haga clic en Opciones \ Cambiar frecuencia de reloj.

- Introduzca '4 'y haga clic en el botón Aceptar.

- Haga clic en Archivo \ Program Load.

- Seleccionar archivo 7segment.hex y haga clic en Abrir. Eso cargar el programa en la memoria del programa PIC.

- Haga clic en Tools \ 7 segmentos LED Displays de panel. Eso abrirá la ventana con cuatro displays de 7 segmentos.

- Haga clic en el botón Configuración bajo el número de pantalla 2.

- Haga clic en el campo de naranja al lado de la pantalla Activar etiqueta para seleccionar pin que se utiliza para activar / desactivar esta visualización.

- Introduzca 4 para seleccionar PORTC y luego haga clic en Aceptar.

- Introduzca 0 para seleccionar pin RC0 y luego haga clic en Aceptar.

- Haga clic en el botón Configuración debajo del número de la pantalla 1.

- Haga clic en el campo de naranja al lado de la pantalla Activar etiqueta para seleccionar pin que se utiliza para activar / desactivar esta visualización.

- Introduzca 4 para seleccionar PORTC y luego haga clic en Aceptar.

- Introduzca 1 para seleccionar pin RC1 y luego haga clic en Aceptar.

- Haga clic en el botón Configuración Hide para ahorrar algo de espacio en la pantalla.

- Vuelva a colocar las ventanas en la pantalla para obtener una mejor vista.

- Seleccione el tipo de simulación \ final (No Refresh) Rate.

- Haga clic en Simulación \ Inicio. La simulación se iniciará inmediatamente.

- El programa mostrará los números de 0 a 99 en las dos pantallas LED de 7 segmentos con TMR0 procedimiento de multiplexación de interrupción.

- Experimentar con la opción Mantener la última pantalla.

- La simulación puede detenerse en cualquier momento haciendo clic en Simulación \ Detener.

- Imagen: Vista

haciendo clic en Simulación \ Detener. - Imagen: Vista Ejemplo 11 - Examinar archivo i2c.bas de

Ejemplo 11

- Examinar archivo i2c.bas de la carpeta de la aplicación. Programas de esta rutina de los primeros 32 lugares en el

dispositivo EEPROM serial externo mediante protocolo de comunicación I2C. En este ejemplo se utiliza para demostrar

osciloscopio y módulos de simulación del generador de señal. I2c.asm archivo se generó usando compilador Basic integrado. Archivo i2c.hex se generó usando ensamblador integrado.

Dim addr As Word 'variable for storing EEPROM byte address Dim data As Byte 'variable for storing EEPROM byte data

Symbol sda = PORTC.2 'nickname for SDA pin Symbol scl = PORTC.3 'nickname for SCL pin

For addr = 0 To 31 'the first 32 bytes will be written data = 255 - addr 'set the data byte to be written I2CWrite sda, scl, 0xa0, addr, data 'perform I2C write operation to serial EEPROM

WaitMs 1 'small delay interval Next addr

- Iniciar PIC Simulador IDE.

- Haga clic en Opciones \ Select microcontrolador.

- Seleccione 'PIC16F877' y haga clic en el botón Seleccionar.

- Haga clic en Opciones \ Cambiar frecuencia de reloj.

- Introduzca '4 'y haga clic en el botón Aceptar.

- Haga clic en Archivo \ Program Load.

- Seleccionar archivo i2c.hex y haga clic en Abrir. Eso cargar el programa en la memoria del programa PIC.

- Haga clic en Tools \ osciloscopio. Eso abrirá la ventana del osciloscopio digital de cuatro canales.

- Haga clic en Settings \ Turn On / Off del osciloscopio del canal 1.

- Entre 2 para seleccionar PORTC para el canal 1 pin puerto de destino y haga clic en Aceptar.

- Entre 2 para seleccionar pin RC2 para el canal 1 pin de destino y haga clic en Aceptar.

- Seleccione Pull-up opción para el canal 1 pin.

- Haga clic en Settings \ Activar / Desactivar el canal 2 del osciloscopio.

- Entre 2 para seleccionar PORTC de 2 pin puerto de destino del canal y luego haga clic en Aceptar.

- Escriba 3 para seleccionar pin RC3 para el canal 2 pin de destino y luego haga clic en Aceptar.

- Seleccione Pull-up opción para pin canal 2.

- Haga clic en Settings \ Turn On / Off osciloscopio Canal 3.

- Introduzca 1 para seleccionar PORTB para el canal 3 pin puerto de destino y haga clic en Aceptar.

- Introduzca 0 para seleccionar pin RB0 para el canal 3 pin de destino y haga clic en Aceptar.

- Haga clic en Settings \ Turn On / Off osciloscopio Channel 4.

- Introduzca 1 para seleccionar PORTB para el canal 4 pin puerto de destino y haga clic en Aceptar.

- Introduzca 1 para seleccionar pin RB1 para el canal 4 pin objetivo y luego haga clic en Aceptar.

- Haga clic en Tools \ Generador de señales. Eso abrirá el canal generador de pulsos cuatro continuo.

- Haga clic en Settings \ Activar / Desactivar el generador de señal 1.

- Introduzca 1 para seleccionar PORTB para el canal 1 pin puerto de destino y haga clic en Aceptar.

- Introduzca 0 para seleccionar pin RB0 para el canal 1 pin de destino y haga clic en Aceptar.

- Entre 500 para definir periodo para el canal 1 pulsos y luego haga clic en Aceptar.

- Introduzca 25 para definir el ciclo de trabajo para el canal 1 pulsos y luego haga clic en Aceptar.

- Introduzca 1 para seleccionar PORTB de 2 pin puerto de destino del canal y luego haga clic en Aceptar.

- Introduzca 1 para seleccionar pin RB1 para el canal 2 pin de destino y luego haga clic en Aceptar.

- Entre 1000 y definir plazo para canal 2 pulsos y luego haga clic en Aceptar.

- Introduzca 50 para definir el ciclo de trabajo para el canal 2 pulsos y luego haga clic en Aceptar.

- Haga clic en Tools \ microcontrolador View. Esto abrirá la ventana de vista microcontrolador.

- Vuelva a colocar las ventanas en la pantalla para obtener una mejor vista.

- Seleccione la carpeta \ tasa simulación extremadamente rápido de Cambio.

- Haga clic en Simulación \ Inicio. La simulación se iniciará inmediatamente.

- La comunicación I2C se puede observar en el módulo de osciloscopio, así como los impulsos generados por el generador de señal.

- La simulación puede detenerse en cualquier momento haciendo clic en Simulación \ Detener.

- Imagen: Vista

de señal. - La simulación puede detenerse en cualquier momento haciendo clic en Simulación \ Detener.