интересные РАДИОСХЕМЫ самодельные


» СХЕМЫ И СТАТЬИ




  • Страница 1 из 23
  • 1
  • 2
  • 3
  • 22
  • 23
  • »
Форум радиолюбителей » СХЕМЫ » МИКРОСХЕМЫ » Коды для программирования МК ((ассемблер))
Коды для программирования МК
Пт, 04.05.2012, 19:36 | Сообщение # 1        
SssaHeKkk
аватар
  Постов: 4131   Друзья 
Здесь можно узнать о правильности написанной части кода для программирования микроконтроллеров

Добавлено (04.05.2012, 19:36)
---------------------------------------------
ну давай обеспечим задержку в полсекунды для МК 8МГц
4000000тактов=3D0900

ldi R16, 0b00
ldi R17, 0b09
ldi R18, 0b3D; отправляем число в РОН
loop:; начало подпрограммы
subi R16,1; вычитание 1
sbci R17,0; вычитание 0 и флага С
sbci R18,0; вычитание 0 и флага С
brcc loop; переход на начало при условии С=1(при R18 не равном нулю).Если R18=0 и С=1 то команда brcc пропускается и мы выходим из цикла совершив задержку примерно в 4000000 тактов

Пт, 04.05.2012, 19:44 | Сообщение # 2        
[)еНиС
аватар
  Постов: 5614   Друзья 
А я чуть чуть чуть опоздал, хотел раньше тебя написать biggrin
Вот моя версия мигалки на 1 СД

.include "m8def.inc";
.cseg;
ldi R16, low(RAMEND);
out SPL, R16;
ldi R16, high(RAMEND);
out SPH, R16;
ldi R16, 0b00000001; РА0- выход
out DDRA, R16
ldi R16, 0b00000001; РА0 выдает лог.1
out PORTA, R16;
ldi R16,0b00;
ldi R17,0b24;
ldi R18,0bF4;
loop:
subi R16,1;
sbci R17,0;
sbci R18,0;
brcc loop;
ldi R16, 0b00000000; РА0- выход
out DDRA, R16
ldi R16, 0b00000000; РА0 выдает лог.0
out PORTA, R16;
ldi R16,LowByte 00;
ldi R17,MedByte 24;
ldi R18,HighByte F4;
loop: subi R16,1;
sbci R17,0;
sbci R18,0;
brcc loop;
Main:
sbi PORTA,0;
cbi PORTA,0;
rjmp Main;

Добавлено (04.05.2012, 19:44)
---------------------------------------------
С задержкой в 1 секунду между миганими

Пт, 04.05.2012, 19:48 | Сообщение # 3        
SssaHeKkk
аватар
  Постов: 4131   Друзья 
не правильно у тебя
Пт, 04.05.2012, 19:49 | Сообщение # 4        
[)еНиС
аватар
  Постов: 5614   Друзья 
Где? Исправь)
Пт, 04.05.2012, 19:52 | Сообщение # 5        
SssaHeKkk
аватар
  Постов: 4131   Друзья 
во первых это не мигалка...это мигнет токо один диод
во вторых задержка ставиться не где попало а между командами sbi и cbi...ты для чего задержку делаешь?чтобы у тебя было время между выполнениями команд...а лепишь ее куда зря

Добавлено (04.05.2012, 19:52)
---------------------------------------------
щас напишу тебе прогу для мигания одного диода

Пт, 04.05.2012, 19:56 | Сообщение # 6        
[)еНиС
аватар
  Постов: 5614   Друзья 
Quote (|)еНиС)
Вот моя версия мигалки на 1 СД


Я и писал мигалка на 1 светодиоде
Пт, 04.05.2012, 20:02 | Сообщение # 7        
SssaHeKkk
аватар
  Постов: 4131   Друзья 
.include "m8def.inc";
.cseg;
ldi R16, low(RAMEND);
out SPL, R16;
ldi R16, high(RAMEND);
out SPH, R16;
ldi R16, 0b00000001; РА0- выход
out DDRA, R16
ldi R16, 0b00000001; РА0 выдает лог.1
out PORTA, R16;
Main:; главная прога
sbi PORTA,0; установка PA0 во вход(т.е 0)
ldi R16, 0b00;
ldi R17, 0b24;
ldi R18, 0bF4; грузим этими командами число в РОН
loop:
subi R16,1;
sbci R17,0;
sbci R18,0;
brcc loop; производим вычитание 16млн(задержка 1 сек для твоего МК)
cbi PORTA,0; установка PA0 обратно в выход(т.е. 1)
ldi R16, 0b00;
ldi R17, 0b24;
ldi R18, 0bF4; грузим этими командами число в РОН
loop:
subi R16,1;
sbci R17,0;
sbci R18,0;
brcc loop; производим вычитание 16млн(задержка 1 сек для твоего МК)
rjmp Main; повтор мигания светодиода

ну вроде так

Добавлено (04.05.2012, 20:02)
---------------------------------------------
Quote (|)еНиС)
Вот моя версия мигалки на 1 СД

извиняюсь sad


Отредактировал SssaHeKkk - Пт, 04.05.2012, 20:10
Пт, 04.05.2012, 20:04 | Сообщение # 8        
[)еНиС
аватар
  Постов: 5614   Друзья 
Quote (SssaHeKkk)
извиняюсь sad


Да ладно, со всеми бывает)
Пт, 04.05.2012, 20:07 | Сообщение # 9        
SssaHeKkk
аватар
  Постов: 4131   Друзья 
придет скейтмэн и проверит на правильность)
Пт, 04.05.2012, 20:10 | Сообщение # 10        
[)еНиС
аватар
  Постов: 5614   Друзья 
Если я правильно понимаю, по твоей схеме СД будет гореть 1сек, затем тухнуть на 0,0000000625 сук biggrin Или на оборот гореть 0,0000000625 а потухшим- 1сек. По моему надо типа такого: Выставляем лог 1 на порт А, к примеру, задаем задержку 1сек. Выставляем лог 0 на порт А, задаем задержку 1сек. И потом уже снова переходим на начало программы

Добавлено (04.05.2012, 20:10)
---------------------------------------------
По крайней мере я делал по такому принципу. biggrin

Форум радиолюбителей » СХЕМЫ » МИКРОСХЕМЫ » Коды для программирования МК ((ассемблер))
  • Страница 1 из 23
  • 1
  • 2
  • 3
  • 22
  • 23
  • »
Поиск:

Внимание! Форум переехал на Shemaforum.ru



© 2010-2021 "Радиосхемы". Все права защищены  Почта  PDA   Группа вконтакте   Канал ютуб   Группа в фэйсбук