PIC Simulador IDE Introducción

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.

Transcript of PIC Simulador IDE Introducción

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

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

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

Ejemplo 4

- 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

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 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

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

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 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

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

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.

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

- 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