код на ассемблере
CODE:
;********************************************************************
; Учебная программа Led_1.asm
; Мигание светодиода на RB0
; 8,0 мгц
;********************************************************************
.include "m8def.inc" ; Header files
.def temp=r16 ; Временный регистр
.equ Led=0 ; Светодиод
;********************************************************************
; Инициализация контроллера
;********************************************************************
.org 0x0000 ; Вектор сброса
rjmp reset ; процессора
;********************************************************************
reset:
;********************************************************************
; Установка указателя стека
;********************************************************************
ldi temp, low(RAMEND)
out SPL, Temp
ldi temp, high(RAMEND)
out SPH, Temp
;********************************************************************
; Настройка портов
;********************************************************************
ldi temp, 0b11111111 ; Все порты PВ
out DDRB, temp ; на выход
;********************************************************************
; Основная программа
;********************************************************************
main: sbi PORTB, Led ; включить Led
rcall Pause ; пауза 0,5 сек
nop ; выравнивающие
nop ; нопы
cbi PORTB, Led ; выключить Led
rcall Pause ; пауза 0,5 сек
rjmp main ; заново
;********************************************************************
; Пауза 0,5 сек
;********************************************************************
Pause: ldi r17, 21
ldi r18, 75
ldi r19, 187
delay: dec r19
brne delay
dec r18
brne delay
dec r17
brne delay
nop
nop
ret
;********************************************************************
;********************************************************************
; Учебная программа Led_1.asm
; Мигание светодиода на RB0
; 8,0 мгц
;********************************************************************
.include "m8def.inc" ; Header files
.def temp=r16 ; Временный регистр
.equ Led=0 ; Светодиод
;********************************************************************
; Инициализация контроллера
;********************************************************************
.org 0x0000 ; Вектор сброса
rjmp reset ; процессора
;********************************************************************
reset:
;********************************************************************
; Установка указателя стека
;********************************************************************
ldi temp, low(RAMEND)
out SPL, Temp
ldi temp, high(RAMEND)
out SPH, Temp
;********************************************************************
; Настройка портов
;********************************************************************
ldi temp, 0b11111111 ; Все порты PВ
out DDRB, temp ; на выход
;********************************************************************
; Основная программа
;********************************************************************
main: sbi PORTB, Led ; включить Led
rcall Pause ; пауза 0,5 сек
nop ; выравнивающие
nop ; нопы
cbi PORTB, Led ; выключить Led
rcall Pause ; пауза 0,5 сек
rjmp main ; заново
;********************************************************************
; Пауза 0,5 сек
;********************************************************************
Pause: ldi r17, 21
ldi r18, 75
ldi r19, 187
delay: dec r19
brne delay
dec r18
brne delay
dec r17
brne delay
nop
nop
ret
;********************************************************************
только не отсылайте к книгам Мне нужен работающий пример, который вдохновитель бы меня на дальнейшие изучение.
Заранее большое спасибо всем тем кто откликнется.