daily pastebin goal
61%
SHARE
TWEET

Untitled

a guest Feb 22nd, 2019 51 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. **********************************************************************
  2. ;Программа 1.1 для микроконтроллеров ATx8515:
  3. ;переключение светодиодов (СД) при нажатии на кнопку START (SW0),
  4. ;после нажатия кнопки STOP (SW1) переключение прекращается и
  5. ;возобновляется c места остановки при повторном нажатии на кнопку START
  6. ;Соединения: SW0-PD0, SW1-PD1, LED-PB
  7. ;**********************************************************************
  8. ;.include "8515def.inc"         ;файл определений для AT90S8515
  9. .include "m8515def.inc"         ;файл определений для ATmega8515
  10. .def temp = r16                 ;временный регистр
  11. .def reg_led = r20              ; регистр состояния светодиодов
  12. .equ START = 0                  ;0-й разряд порта
  13. .equ STOP = 1                   ;1-й разряд порта
  14.  
  15. .org $000
  16.         rjmp init
  17. ;***Инициализация***
  18. INIT:   ldi reg_led,0xFE    ;сброс reg_led.0 для включения LED0
  19.         sec                 ;C=1
  20.         set                 ;T=1 – флаг направления
  21.         ser temp            ;инициализация  
  22.         out DDRB,temp       ; порта PB на вывод
  23.         out PORTB,temp      ;погасить СД
  24.         clr temp            ;инициализация
  25.         out DDRD,temp       ; порта PD на ввод
  26.         ldi temp,0x03       ;включение подтягивающих
  27.         out PORTD,temp      ; резисторов порта PD   
  28. WAITSTART:                  ;ожидание
  29.         sbic PIND,START     ; нажатия
  30.         rjmp WAITSTART      ; кнопки START
  31. LOOP:   out PORTB,reg_led   ;включение СД
  32. ;***Задержка (два вложенных цикла)***
  33.         ldi r17,66
  34. d1:     ldi r18,100
  35. d2:     ldi r19,100
  36. d3:     dec r19
  37.         brne d3
  38.         dec r18
  39.         brne d2
  40.         dec r17
  41.         brne d1
  42.        
  43.         sbic PIND,STOP      ;если замкнута кнопка STOP, то
  44.         rjmp MM             ; переход
  45.         rjmp WAITSTART      ; для проверки кнопки START,
  46.  
  47. MM:     brts LEFT           ;переход, если флаг T установлен
  48.         sbrs reg_led,0      ;пропуск следующей команды,
  49.                             ; если 0-й разряд reg_led установлен
  50.         set                 ;T=1 - переключение флага направления
  51.         ror reg_led         ;сдвиг reg_led вправо на 1 разряд
  52.         rjmp LOOP          
  53. LEFT:   sbrs reg_led,7      ;пропуск следующей команды,
  54.                             ; если 7-й разряд reg_led установлен
  55.         clt                 ;T=0 – переключение флага направления
  56.         rol reg_led         ;сдвиг reg_led влево на 1 разряд
  57.         rjmp LOOP
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top