Вівторок, 22.07.2025, 23:18
 
Головна Реєстрація Вхід
Вітаю Вас, Гість · RSS
Меню сайту
Категорії каталога
Программирование микроконтроллеров [5]
примеры, листинги программ, всё что проверенно на собственном опыте.
Программирование_Pascal [1]
только то что зделано своими руками
Психология [3]
книги, статьи и всё то что мне показалось интересным
Раздел 1 [4]
то чем занимаюсь и увлекаюсь сидя за копмпьютером:D
RoboSapiens [1]
роботы, роботы, роботы...
Форма входу
Пошук
Друзі сайту
Статистика
 Каталог файлов
Головна » Файли » Программирование микроконтроллеров

Программирование микроконтроллеров
[ Викачати з сервера (0.6 Kb) ] 15.03.2008, 16:06
Программа написанная на ассемблере. Простой пример управдения двигателями (сигналы подаются на специальный драйвер двигателей L293D).
(для меги8)

Dir_motor.asm:

.include "m8def.inc"

.def temp=r16
.def temp1=r17
.def temp2=r18

init:

;********************************************************
ldi temp,0b11111111 ;настройка порта C 1-выход 0-вход
out DDRC,temp
ldi temp,0b00000000 ;настройка порта C
out PORTC,temp
ldi temp,0b11111111 ;настройка порта D 1-выход 0-вход
out DDRD,temp
ldi temp,0b00000000 ;настройка порта D
out PORTD,temp
ldi temp,0b11111111 ;настройка порта B 1-выход 0-вход
out DDRB,temp
ldi temp,0b00000000 ;настройка порта B PB2-inv_OE
out PORTB,temp

;********************************************************

ldi temp,0x04 ;***************
out sph,temp ;** Настройка **
ldi temp,0x5f ;**** стека ****
out spl,temp ;***************
;********************************************************

Main:
ldi temp,0b00000000
out PORTC,temp
rcall time_2s

ldi temp,0b00010100
out PORTC,temp
rcall time_2s

ldi temp,0b00000000
out PORTC,temp
rcall time_2s

ldi temp,0b00001010
out PORTC,temp
rcall time_2s
rjmp Main

;************************************************************
;*** Подпрограмма отсчета времени 2c на 8МГц *************
;************************************************************
time_2s:
push temp
push temp1
push temp2

ldi temp2,60
time_2s_001:
ldi temp1,209
time_2s_01:
ldi temp,254

time_2s_1: ;****************************************
dec temp ;**** внутреннее тело цикла 5кц *********
tst temp ;****************************************
breq time_2s_2 ;****************************************
rjmp time_2s_1 ;****************************************

time_2s_2:
dec temp1
tst temp1
breq time_2s_3
rjmp time_2s_01

time_2s_3:
dec temp2
tst temp2
breq time_2s_end
rjmp time_2s_001

time_2s_end:

pop temp2
pop temp1
pop temp

ret
;************************************************************
;*** Окончание подпрограммы отсчета времени 2с на 8МГц ***
;************************************************************

Категорія: Программирование микроконтроллеров | Додав: JaRcom
Переглядів: 772 | Завантажень: 250 | Рейтинг: 0.0/0 |
Всього коментарів: 0
Ім`я *:
Email *:
Код *:
Хостинг від uCoz