ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
4 июля
103275 Топик полностью
AVR (22.10.2007 23:19, просмотров: 45) ответил AVR на На Меге собери простейшую схемку - светодиод с резистором к одной Мегиной ноге (PB0, нога 1), кнопку - к другой (PB1, нога 2). Программу сейчас черкну. Программатор AVReAl возьми по ссылке, LPT с Мегой соедини как FBPRG -->
Программа внутри <asm> ;----------------------------------------------------------------------------- ; Примитивная стартовая программа для ATMega16 ; ; При нажатии/отпускании кнопки, подключенной между ногой 1 и землей, ; будет зажигаться/гаснуть светодиод, подключенный через резистор 1К между ногой 2 и землей ;----------------------------------------------------------------------------- ; Присваиваем для удобства численные значения символическим именам портов (согласно даташиту) ; .equ PINB = 0x16 ; Адрес входного порта B .equ DDRB = 0x17 ; Адрес регистра направлений порта B .equ PORTB = 0x18 ; Адрес выходного порта B .equ PB0 = 0 ; Номера бит порта B .equ PB1 = 1 ; ;----------------------------------------------------------------------------- ; Присваиваем для удобства численные значения символическим именам ног (согласно схеме включения) ; .equ led = PB0 ; Сюда подключен светодиод (нога 1) .equ button = PB1 ; Сюда подключена кнопка (нога 2) ;----------------------------------------------------------------------------- main: ; Метка начала программы (просто для справки) sbi DDRB,led ; Делаем ногу 1 выходом (там светодиод), остальные останутся входами sbi PORTB,button ; Включаем резистор подтяжки на ноге 2 (там кнопка) loop1: ; Метка для цикла sbic PINB,button ; Если кнопка нажата - пропускаем следующую команду rjmp led_off ; Если нет - переходим к метке led_off sbi PORTB,led ; Сюда попали только когда кнопка нажата - включаем светодиод rjmp loop1 ; и начинаем цикл снова - с метки loop1 led_off: ; Метка для перехода, сюда попадаем только когда кнопка не нажата cbi PORTB,led ; Выключаем светодиод rjmp loop1 ; и начинаем цикл снова - с метки loop1 ;----------------------------------------------------------------------------- .exit ; Обязательная директива конца текста ;----------------------------------------------------------------------------- </asm>