Date post: | 24-Apr-2015 |
Category: |
Documents |
Upload: | javier-arias |
View: | 54 times |
Download: | 8 times |
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