[sape]

Pic16f630: Семисегментный индикатор показываем цифры по порядку

Здравствуйте, подключим Семисегментный (можно заменить семью светодиодами) индикатор к микрочипу 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.

Фото подключенного семисегментного индикатора (в примере у меня трехразрядный, использовал один из разрядов) и вместе с программатором – как сделать программатор читайте в моей предыдущей статье – здесь.

Добавить комментарий