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

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

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

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

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

[php] 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

[/php]

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

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

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