Построение систем на микроконтроллерах: Методические указания к курсовому проектированию, страница 4

                    Movlw                  ‘11111100’b

                    Movwf                  TRISC

                    Movlw         0ffh

                    Movwf                  TRISB

                    Bcf              STATUS,RPO

START        clrf   test_sl            ; Начальное ТС для Е1 = 0

                    movlw   0FFh                 ; Значение ЭТ для запрещенной

                    movwf  etal           ; работы DC

                    CALL  PTS

                    movlw  10h           ; Начальное ТС для  = 1

                    movwf  test_sl

                    CALL  PTS

                    movlw  8h             ; Начальное ТС для  = 1

                    movwf  test_sl

                    CALL  PTS

                    movlw   20h                    ; Начальное ТС для Е1 = 100

                    movwf  test_sl

                    movlw  0FEh

                    movwf  etal

                    CALL  PTS

NO_ERR     bsf  PORTC, 0

                    sleep

ERROR       bsf  PORTC, 1

                    sleep

PTS             movlw  8h

                    movwf  par_c

                    bsf  STATUS, C

m1               movf  etal, w

                    xorwf  PORTB, w ; PORTB – входной порт

                    btfss  STATUS, Я

                    goto  ERROR

                    incf  PORTD         ; PORTD – выходной порт

                    btfss  PORTD, 5

                    goto m2

                    btfsc  PORTD, 4

                    goto m2

                    btfsc  PORTD, 3

                    goto m2

                    rrf  etal, а

m2               decfsz  par_c

                    goto  m1

                    return

МК   AT90S4414

Порт РА и порт С настраиваются на вывод информации, порт РВ - на ввод.

Разряды РА.2- 0 подключаются к адресным входам дешифратора, разряды РА.5 - 3 подключаются к его управляющим входам .Выходы дешифратора подключаются к порту РВ. Разряды РС.1 - 0 подключаются к светодиодам.

          Org    0h

          ; Настройка портов

          LDI   R1, #00000000b

     OUT DDRB, R1 ; Настройка порта В на ввод

     LDI   R1, #11111111b

     OUT  DDRA, R1 ; Настройка порта А на вывод

     OUT  DDRC, R1 ; Настройка порта C на вывод

          ; Основная программа

Start:  LDI   R22, #00000000b; нач. ТС при запрете по Е1

          LDI   R23, #0FFh: эталон при запрете

          RCALL       PTS;

          LDI   R22, #10H нач. ТС при запрете по Е2

          RCALL       PTS

          LDI   R22, #08H;   нач. ТС при запрете по Е3

          RCALL       PTS

          LDI   R22, #20H;   нач. ТС при разрешении

          LDI   R23, #0FEh;  нач. эталон при разрешении

          RCALL       PTS

No_err:        LDI   R1, #1h; GREEN

          OUT  PORTC,R1

          SLEEP

Err:    LDI   R1, #2h; RED

          OUT  PORTC,R1

          SLEEP

          ; Подпрограмма перебора ТС

PTS:  LDI   R2,#8h

M1:    OUT  PORTA,R22;вывод очередного ТС

          IN      R24,PORTB

          CP     R24,R23

          BRNE          Err

          INC   R22; очередное ТС

          SBRS          R22,5; пропустить, если Е1=1

          RJMP          M2

          SBRC          R22,4; пропустить, если Е2=0

          RJMP M2

          SBRC          R22,3; пропустить, если Е3=0

          RJMP          M2

          SEC   C

          ROL  R23; эталон для следующего ТС

M2:    DEC  R2

          BREQ          M1

          RET

МК  MC68HC11E9 фирмы MOTOROLA

Порты РВ и РС используются в режиме вывода, порт РЕ - в режиме ввода.

Разряды РВ.2- 0 подключаются к адресным входам дешифратора, разряды РВ.5 - 3 подключаются к его управляющим входам . Выходы дешифратора подключаются к порту РЕ. Разряды РС.1 - 0 подключаются к светодиодам.

T_Sl:           equ    $40

Par_c:          equ    $41

Etalon:         equ    $42

          Org    0

          ; Настройка портов

LDAA    #11111111b

               STAA          DDRB

               BSET          DDRC, #3

               ; Порт E настраивать не надо, т.к. он является входным

               LDAA         #8  ; параметр цикла

; Основная программа

Start:       LDAA         #$0

               STAA          T_Sl; начальное ТС при запрете по Е1

               LDAB         #$0FF; эталон при запрете работы DC в регистр В

               JSR              PTS

               LDAA         #$10

               STAA          T_Sl; начальное ТС при запрете по Е2

               JSR              PTS

                LDAA        #$08

               STAA          T_Sl; начальное ТС при запрете по Е3

               JSR              PTS

               LDAA         #$20

                    STAA          T_Sl; начальное ТС при разрешении работы DC

LDAB         #$0FE ; начальный эталон при разрешении работы DC

JSR              PTS

No_err:        BSET          PORTC,#$1; GREEN

                    STOP

Err:              BSET          PORTC,#$2; RED

                    STOP

; Подпрограмма перебора ТС

PTS:            LDAA         #$8

                    STAA          Par_c

M1:             LDAA         T_Sl

                    STAA          PORTB ; Вывод очередного ТС на входы ИМС

                    CMPB         PORTE

                    BNE            Err

                    INC             T_Sl ; формирование следующего ТС

                    BRCLR       T_Sl,#$20,M2

                    BRSET        T_Sl,#$10,M2

                    BRSET        T_Sl,#$8,m2 ; проверка на запрет

                    SEC

                    ROLB

M2:             DEC            Par_c

                    BNE            M1

                    RTS


рекомендуемая литература.

1.  Сташин В.В. Проектирование цифровых устройств на однокристальных        микроконтроллерах - М.: 1991.

2.  Нерода В.Я.,Торбинский В.Э.,Шлыков Е.Л. Однокристальные микро-ЭВМ MCS-51.-М.:Диджитал Компонентс,1995.

3.  Бродин В.Б., Калинин А.В. Системы на микроконтроллерах и БИС программируемой логики – М: Издательство ЭКОМ, 2002

4.  Бродин В.Б., Шагурин И.И. Микроконтроллеры:справочник- М:ЭКОМ, 1999.

5.  Шагурин И.И. Микропроцессоры и микроконтроллеры фирмы MOTOROLA- М: Радио и связь, 1998.

6.  Ульрих В.А. Микроконтроллеры PIC16C7X: справочник - СПб: Наука и техника, 2000.

7.   Евстифеев А. В. Микроконтроллеры AVR семейства Classicфирмы ATMEL

- М.: “Додэка-ХХI”, 2002