Здравствуйте, подключим Семисегментный (можно заменить семью светодиодами) индикатор к микрочипу pic16f630, и прошьем его.
Давайте запрограммируем микросхему показывать на семисегментном индикаторе три цифры 0 1 2 с периодом в полсекунды и поместим всё это в цикл.
Схема ножек pic16f630:
Схема подключения:
Давайте запрограммируем микросхему показывать на семисегментном индикаторе три цифры 0 1 2 с периодом в полсекунды и поместим всё это в цикл.
Скачать файл asm, hex, inc:
Скачать файлы для прошивки можно – здесь.
Прошивка assembler:
#include <P16F630.INC> __CONFIG (_MCLRE_OFF & _CP_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT) ;Internal osc. c1 equ 20 c2 equ 21 org 0 Start BSF STATUS,RP0 ; select bank 1 CLRF TRISC ; make PORTC pins all output CLRF TRISA ; make PORTA pins all output BCF STATUS,RP0 ; select bank 0 movlw b'00000000' movwf PORTC ; set portc pins equal to 0 movlw b'00000000' movwf PORTA ; set portc pins equal to 0 loop movlw b'00111111' movwf PORTC movlw b'00000000' movwf PORTA call delay1 call delay1 call delay1 call delay1 movlw b'00100100' movwf PORTC movlw b'00000000' movwf PORTA call delay1 call delay1 call delay1 call delay1 movlw b'00011110' movwf PORTC movlw b'00000100' movwf PORTA call delay1 call delay1 call delay1 call delay1 goto loop delay1 movlw b'11111111' bcf STATUS,RP0 movwf c2 lc0 movlw b'11111111' movwf c1 lc1 decfsz c1,1 goto lc1 decfsz c2,1 goto lc0 return end
В коде включаем все Биты на портах C и A (PORTC и PORTA).
Биты в регистре PORTC подключаются к следующим выводам:
(X, X, pin5, pin6, pin7, pin8, pin9, pin10)
Первые два бита не подключены ни к каким выводам, а следующие 6 битов подключены к выводам с 5 по 10. Например,если двоичное число b’00101010′ помещено в PORTC, то на выводах 5, 7 и 9 будет установлено напряжение 5 вольт.
Для PORTA биты подключаются к следующим выводам:
(X, X, pin2, pin3, pin4, pin11, pin12, pin13)
Как и в случае с чипом меньшего размера, pin4 можно использовать только в качестве входного PIN-кода. Например, двоичное число b ‘00110010’ приведет к 5 вольтам, установленным на выводах 2, 3 и 12.
Фото подключенного семисегментного индикатора (в примере у меня трехразрядный, использовал один из разрядов) и вместе с программатором – как сделать программатор читайте в моей предыдущей статье – здесь.