Библиотека Компэла


Глава 9.


Цифровой термометр на базе MSP430


.SET .SET .SET .SET .SET .SET

SCG1 LPMC LPM1 LPM2 LPM3 LPM4

BTCNT1 .EQU 0046H
BTCNT2 .EQU 0047H
WDTCTL .EQU 0120H
WDTHOLD .EQU 080H
WDT KEY .EQU 05A00H
WDT STOP .EQU 05A80H
GIE .SET 8H
CPUOFF .SET 10H
OSCOFF .SET 20H
SCGC .SET 40H
80Н CPUOFF SCG0+CPUOFF

Счётчик 1 BASIC TIMER Счётчик 2 BASIC TIMER Регистр управления WATCHDOG Маска останова WATCHDOG Ключ доступа к WATCHDOG WATCHDOG маска + ключ Общее разрешение прерываний Бит выключения CPU Бит выключения генератора Контроль системного тактирования, битС Контроль системного такти­рования, бит1

Биты установки режима LPMC Биты установки режима LPM1 SCG1+CPUOFF ; Биты установки режима LPM2 SCG1+SCG0+CPUOFF ;Биты установки режима

; LPM3

OSCOFF+CPUOFF ; Биты установки режима ; LPM4


; Служебные регистры для вычисления сопротивления

; датчика *******************************************************

MLTPLR_HW . EQU R5

TEN_K . EQU R6

BITTEST .EQU R7

MRESLT_HW .EQU R8

MRESLT_LW .EQU R9

LPCNTR .EQU R1C

RESULT .EQU Rll

*********************************

; Начало программы *******************************************************

.SECT "MAIN",MAIN RESET MOV #STACK,SP ; Инициализация указателя

; стека *******************************************************

; Конфигурация периферии *******************************************************

SETUP

SETUPINT MOV.В #PO1IE,&IE1 ; Разрешить P0.1/UART

; для монитора RS232

MOV.В #BTIE+TPIE,&IE2 /Разрешить прерыва-

; ния от В.TIMER, &

; TMR. PORT

Библиотека Компэла


f& Texas iNSiraJMENTS     IV. Примеры конкретных применений
  CLR.B &IFG1   • Очистить все флаги
        • прерываний
  CLR.B &IFG2    
  EINT     • Разрешить прерывания
SETUPWDT MOV #WDT STOP, &WDTC :tl
        • Остановить WATCHDOG
        • TIMER
SETUPLCD MOV. В #0FFH,&LCDCTL • ЖКИ STK, все сегмен-
        • ты, 4MUX
SETUPBT MOV. В #BTLOAD,&BTCTL ; Загрузить требуемую
        • частоту прерываний
        • в BASIC TIMER
  CLR.B &BTCNT1   • Очистить счётчик ВТ 1
  CLR.B &BTCNT2   • Очистить счётчик ВТ 2
CLEARLCD MOV #15,R6   • Очистить 15 ячеек
        • памяти ЖКИ
CLEAR1 MOV. В #O,LCDM1-1 (R6) ; записав туда «0»
  DEC R6   • Вся памяти ЖКИ
        • очищена?
  JNZ CLEAR1   • нет, чистим дальше
. ******** ********* ********** **************************
; Начало основной программы  
. ******** ********* ********** **************************
BEGIN BIS #LPM3,SR ; Установить SR-биты
      ; для LPM3

Подпрограмма измерения с запрещёнными прерываниями. ТР.2-.5 не используются поэтому переписаны. Используются только TPD.0 & 1. Начальная инициализация: Указатель стека = 0, Начало с TPD.1

16-битный таймер, тактирование от MCLK, CIN разреша­ет счёт

MEASURE PUSH.В #TPDMAX ; Сохранить в стеке

для последующего
использования
CLR R8 ; Указатель для стека

результата MEASLOP MOV.B #(TPSSEL0*3)+ENA,&TPCTL

TPCNT1 CLK=MCLK, EN1=1 *****************************************************

Конденсатор С заряжается на протяжении t > 5?. Используются выходы N-1

Библиотека Компэла