Основы микропроцессорной техники


Инициализация микроконтроллера макета


Прежде чем переходить к созданию простейших пользовательских программ, необходимо описать используемые в дальнейшем переменные и настроить МК на работу с выбранным макетом. С этой целью мы напишем и подробно рассмотрим листинг исходной программы init.asm, в состав которой будут включаться все остальные программы пользователя.

;****************************************************** ;*листинг исходной программы ;****************************************************** LIST P=16C84, R=HEX ;директива, определяющая тип ;процессора и систему счисления ;по умолчанию ;****************************************************** ;*описание используемых переменных и назначения адресов ;*ячеек для хранения переменных пользователя ;****************************************************** ; INTCON EQU 0x0B ; OPTION EQU 0x81 ; TMR0 EQU 0x01 ; INTF EQU 1 ; T0IF EQU 5 PCL EQU 0x02 STATUS EQU 0x03 RP0 EQU 5 PORTA EQU 0x05 PORTB EQU 0x06 TRISA EQU 0x05 TRISB EQU 0x06 W EQU 0 F EQU 1 TEMPA EQU 0x0C TEMPB EQU 0x0D COUNT1 EQU 0x0E COUNT2 EQU 0x0F COUNT3 EQU 0x10 ;****************************************************** ;*определение меток замены текста ;****************************************************** #DEFINE Z STATUS,2 ;бит нулевого результата #DEFINE BA1 PORTA,0 ;динамик BA1 #DEFINE VD2 PORTA,1 ;светодиод VD2 #DEFINE SA1 PORTA,2 ;тумблер SA1 #DEFINE SA2 PORTA,3 ;тумблер SA2 #DEFINE SB1 PORTA,4 ;кнопка SB1 #DEFINE SB2 PORTB,0 ;кнопка SB2 #DEFINE HL1_A PORTB,1 ;индикатор-сегмент A #DEFINE HL1_B PORTB,2 ;индикатор-сегмент B #DEFINE HL1_C PORTB,3 ;индикатор-сегмент C #DEFINE HL1_D PORTB,4 ;индикатор-сегмент D #DEFINE HL1_E PORTB,5 ;индикатор-сегмент D #DEFINE HL1_F PORTB,6 ;индикатор-сегмент E #DEFINE HL1_G PORTB,7 ;индикатор-сегмент F ;****************************************************** ;*исполняемая программа ;****************************************************** ORG 0x000 ;установка начального адреса по ;сбросу GOTO BEGIN ;переход на начало программы ORG 0x005 ;установка начального адреса ;размещения программы BEGIN CALL INIT_PORTS ;вызов подпрограммы ;инициализации портов МК ;***************************************************** ;*программа пользователя ; ;***************************************************** ; INIT_PORTS ;подпрограмма инициализации ;портов MOVLW 0xFF ;установка линий портов MOVWF PORTA ;A и B в единичное MOVWF PORTB ;состояние BSF STATUS,RP0 ;переход на банк 1 MOVLW 0x1C ;настройка линий RA0 и MOVWF TRISA ;RA1 порта A на вывод – ;остальных – на ввод MOVLW 0x01 ;настройка линии RB0 MOVWF TRISB ;порта B на ввод - ;остальных – на вывод BCF STATUS,RP0 ;возврат в банк 0 RETURN ;возврат из подпрограммы ; END ;конец программы Листинг 12.1.


Начало  Назад  Вперед



Книжный магазин