Мигаем светодиодами на pic16f877a

Напишем программу на ассемблере, с помощью которой будем мигать 4-мя светодиодами расположенным на выходах RC0, RC1, RC2, RC3 (15,16,17,18 ножка на микросхеме)(movlw b’00001111′) для микросхемы PIC16F877A.

Скачать HEX и ASM файлы мигания светодиодами на микросхеме PIC16F877A можно – здесь:


Скачать HEX и ASM в архиве zip.
Скачать HEX и ASM в архиве tar.gz.

Код программы на ассемблере:

INCLUDE <P16F877A.INC>
    ERRORLEVEL -302


__CONFIG  _HS_OSC & _WDT_OFF & _PWRTE_OFF & _CP_OFF & _BODEN_ON & _LVP_OFF & _CPD_OFF 

Reg_1 EQU 22
Reg_2 EQU 23
Reg_3 EQU 24

 org 0

Start
 BCF   STATUS,RP0  ; select bank 0
 CLRF  PORTA       ; porta=0
 movlw b'11111111'
 movwf CMCON 
 BSF   STATUS,RP0  ; select bank 1
 movlw b'00001000'
 movwf TRISA
 CLRF  TRISC       ; make PORTC pins all output
 BCF   STATUS,RP0  ; select bank 0
 movlw b'00000000'
 movwf  PORTC       ; set portc pins equal to 0

loop
 movlw b'00001111'
 movwf PORTC
 call Pause
movlw b'00000000'
 movwf PORTC
call Pause
 goto loop

Pause
       movlw       0x173
       movwf       Reg_1
       movlw       0x19
       movwf       Reg_2
       movlw       0x6
       movwf       Reg_3
wr          
       decfsz      Reg_1, 1
       goto        wr
       decfsz      Reg_2, 1
       goto        wr
       decfsz      Reg_3, 1
       goto        wr
       nop
return

 end

Схема соединения:

Резисторы – 2 шт по 12 кОм.
Конденсаторы кремневые по 40пФ.
Резонатор на 4-6 МГц.
4 светодиода.
Питание на 5 В можно с USB компа.

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