Українські реферати, курсові, дипломні роботи
UkraineReferat.org
українські реферати
курсові і дипломні роботи

Цифровий термометр

Реферати / Інші / Цифровий термометр

8. «Микропроцессоры», Учебное пособие в 5-ти книгах, под редакцией В.А. Шахнова, Москва «Высшая школа», 1988.

9. www.microprocessor.by.ru „Програмування мікроконтроллера”

10. www.atmel.ru

 

ДОДАТКИ

 

 

 

 

 

 

 

 

Додаток 2

#DEFINE Z_SUP

#DEFINE LO(XXX) XXX & 0FFH

#DEFINE HI(XXX) (XXX >> 8) & 0FFH

CLK_KHZ = 10000 ;OSC частота, KГц

RTC_MS = 20 ;системний годинник, мс

RTCV = CLK_KHZ*RTC_MS

RTCV = RTCV/12

RTCV = - RTCV

RTCV = RTCV & 0FFFFH

; ------ Константи ------

STACK .EQU 056H ;розміщення стеку

V100MS .EQU 5 ;значення програмного таймера RTPCS 100mS/20mS=5

I2C_ADDR .EQU 0A0H ;I2C адреси для PCF8582 (A0,A1,A2=0)

SMPTMV .EQU 5 ;x20mS значення таймера термометрів

INKTMV .EQU 35 ;x20mS початкове ключове значення таймера повторення

KEYTMV .EQU 5 ;x20mS ключове значення таймера повторення

BRKTMV .EQU 2 ;x20mS ключове значення яскравості таймера повторення

TMOV20 .EQU 25 ;x20mS вихідне часове значення для DS1820

TMOV21 .EQU 100 ;x20mS вихідне часове значення для DS1821

INDTMV .EQU 50 ;x20mS значення затримки індикації

OFFTMV .EQU 50 ;x100mS вихідне значення затримки

PWM_MAX .EQU 230 ;MAX PWM значення

L_MAX .EQU 09AH ;MAX вхідна та вихідна межа

L_MIN .EQU 001H ;MIN вхідна та вихідна межа

; ------ Порти ------

SCAN0 .EQU P3.0 ;лінія сканування дисплею 0

SCAN1 .EQU P3.1 ;лінія сканування дисплею 1

SCAN2 .EQU P3.5 ;лінія сканування дисплею 2

SDA .EQU SCAN0 ;I2C SDA лінія

SCL .EQU SCAN1 ;I2C SCL лінія

OWP1 .EQU P3.2 ;1-порт 1 (зовнішній термометр)

OWP2 .EQU P3.7 ;1-порт 2 (внутрішній термометр)

RETL .EQU P3.4 ;лінія повернення клавіатури

CNTRL .EQU P3.3 ;лінія керування термостатом

;--------Змінні, бітова адресація, зовнішні дані---------------

PWVH .EQU R20 ;значення таймера PWM (в виключеному стані) high

PWVL .EQU R21 ;значення таймера PWM (в виключеному стані) low

PHVH .EQU R22 ;значення таймера PWM (у включеному стані) high

PHVL .EQU R23 ;значення таймера PWM (у включеному стані) low

RTPCS .EQU 021H ;програмний лічильник реального часу (100мс)

EXT_TH EQU 03CH ;дані від зовнішнього термометра (00H-відсутній, 20H-DS1820, 21H-DS1821)

INT_TH EQU 03DH ;дані від внутрішнього термометра (00H-відсутній, 20H-DS1820, 21H-DS1821)

SAVTM .EQU 046H ;збереження таймера затримки NVM

NOTSV .EQU 023H ;незбереження в NVM

OFFTM .EQU 049H ;відключення таймера

ACHTM .EQU 048H ;автозмінювання таймера

ACHR .EQU 028H ;автозмінювання EXT/INT

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

INIT: MOV SP,#STACK ;ініціалізація стеку

CLR A

MOV KEYTM,A ;обнулення ключового таймера повторення

MOV EXT_TH,A ;обнулення зовнішнього термометра

MOV INT_TH,A ; обнулення внутрішнього термометра

MOV OFFTM,#OFFTMV ;завершення завантаження таймера

ACALL GETPWM ;одержання значень PWM таймера

MOV ACHTM,ACHR

MOV TMOD,#11H ;ініціалізація таймера 0 та таймера 1

MOV TL0,#LO(RTCV) ;завантаження таймера 0

MOV TH0,#HI(RTCV)

MOV TL1,PHVL ;завантаження таймера 1

MOV TH1,PHVH

MOV RTPCS,#V100MS ;завантаження значення 100мс

SETB PT1 ;ініціалізація пріоритетів таймерів (0–low, 1 - high)

MOV IE,#8AH ;ініціалізація дозволу таймерів (ET0,ET1,EA=1)

ACALL AD_EXT ;автовизначення та запуск зовнішнього термометра

ACALL AD_INT ;автовизначення та запуск внутрішнього термометра

MOV SMPTM,#SMPTMV ;завантаження таймера зразка термометрів

MAIN: MOV A,INCODE ;місцева перевірка клавіатури

CPL A

JNZ MA10 ;стрибок, якщо є натискання

CLR FEN

CLR PRESS

SJMP MA20 ;стрибок, якщо немає натискання

MA10: MOV B,A ;зберігання коду клавіатури

ACALL DEL10 ;затримка доносу

MOV A,INCODE ;зчитування коду клавіатури

CPL A

CJNE A,B,MA20 ;відсутність натискання при відмінності кодів

MOV R7,A

MOV OFFTM,#OFFTMV ;завершення завантаження таймера

JB PRESS,SAME

;Аналіз контрольних функцій

DIF: CJNE R7,#KEY_SL,$+5H ;KEY SELECT

ACALL SEL

CJNE R7,#KEY_EX,$+5H ;KEY EXT/INT

ACALL EXT

SAME:CJNE R7,#KEY_UP,$+5H ;KEY UP

ACALL UP

CJNE R7,#KEY_DN,$+5H ;KEY DOWN

ACALL DN

CJNE R7,#KEY_UD,$+5H ;KEY UP+DOWN

ACALL UPDN

SETB PRESS ;встановлення натискання

;Завершення аналізу контрольних функцій

MA20: MOV A,SMPTM ;перевірка зразкового таймеру

JNZ MA24 ;стрибок, якщо немає таймерного переповнення

MOV SMPTM,#SMPTMV ;перезавантаження таймеру

ACALL CH_EXT ;перевірка зовнішнього термометра

JNZ MA21 ;стрибок, якщо „готово”

JNZ MA22

SJMP MA23 ;перехід до автовизначення

MA21: ACALL RD_EXT ;зчитування з зовнішнього термометра

ACALL LIM_CHK ;управління термостатом

MA23: ACALL AD_EXT ;автовизначення та старт

MA22: ACALL CH_INT ;перевірка зовнішнього термометра

JNZ MA25 ;стрибок, якщо „готово”

JNZ MA24

SJMP MA26 ;перехід до автовизначення

MA25: ACALL RD_INT ;зчитування з внутрішнього термометра

MA26: ACALL AD_INT ;автовизначення та старт

MA24: JB IND_SET,MA33 ;стрибок при встановленні моди

MOV A,ACHR

CLR C

SUBB A,#MIN_RT

JC MA40 ;стрибок при ACHR<MIN_RT

MOV A,ACHTM

JNZ MA40

MOV ACHTM,ACHR ;заміна перезавантаження таймера

CPL IND_INT

SJMP MA40

MA33: MOV A,DELTM ;перевіркаDELTM

JNZ MA40 ;стрибок, якщо немає таймерного переповнення

JBC IND_TH1,MA30 ;стрибок при індикації термометра 1

JBC IND_TH0,MA31 ;стрибок при індикації термометра 0

SJMP MA40

MA30: SETB IND_ONL ;встановлення ініціалізації межі

SJMP MA32

MA31: SETB IND_OFL

MA40: MOV A,SAVTM

JNZ MA100 ;стрибок, якщо немає збереженого таймерного переповнення

MOV A,NOTSV

JZ MA50 ;збереження пропуску за умови збереження всіх параметрів

ACALL SAVE

SJMP MA100

MA50: MOV A,OFFTM

JNZ MA100

MOV OFFTM,#OFFTMV ;завершення завантаження таймера

CLR RETL ;генерація імпульса 50mS

ACALL DEL50

SETB RETL

AJMP MAIN

.END

 

Завантажити реферат Завантажити реферат
Перейти на сторінку номер: 1  2  3  4  5  6  7  8 

Подібні реферати:


Останні надходження


© 2008-2024 україномовні реферати та навчальні матеріали