sbi PortD,segA
sbi PortD,segB
sbi PortB,segG
sbi PortB,segC
sbi PortB,segD
ret
OUT_4:
sbi PortD,segB
sbi PortB,segC
sbi PortB,segF
sbi PortB,segG
ret
OUT_5:
sbi PortD,segA
sbi PortB,segF
sbi PortB,segG
sbi PortB,segC
sbi PortB,segD
ret
OUT_6:
sbi PortD,segA
sbi PortB,segF
sbi PortB,segG
sbi PortB,segC
sbi PortB,segE
sbi PortB,segD
ret
OUT_7:
sbi PortD,segA
sbi PortD,segB
sbi PortB,segC
ret
OUT_8:
sbi PortD,segA
sbi PortD,segB
sbi PortB,segC
sbi PortB,segD
sbi PortB,segE
sbi PortB,segF
sbi PortB,segG
ret
OUT_9:
sbi PortD,segA
sbi PortD,segB
sbi PortB,segC
sbi PortB,segD
sbi PortB,segF
sbi PortB,segG
ret
Программа измерителя температуры и давления
Программа измерителя температуры и давления, описанного в главе 15, приведена в листинге П5.2.
Листинг П5.2
;ATmega853 5 кварц 4000 кГц
.include "m8535def.inc"
;==== Определения и константы ====
;Управление индикацией
.equ segG = 6 ;port С pin 28
.equ segF = 5 ;pin 27
.equ segE = 4 ;pin 26
.equ segD = 3 ;pin 25
.equ segC = 2 ;pin 24
.equ segB = 1 ;pin 23
.equ segA = 0 ;pin 22
.equ RazrTdH = 0 ;PortB,0 pin 1 десятки градуса
.equ RazrTdM = 1 ;PortB,1 pin 2 ед. градусов
.equ RazrTdL = 2 ;PortB,2 pin 3 десятые градусов
. equ RazrPdH = 3 ;PortB,3 pin 4 сотни давления
.equ RazrPdM = 4 ;PortB,4 pin 5 дес. давления
.equ RazrPdL = 5 ;PortB,5 pin 6 ед. давления
;адреса SRAM старший байт адреса SRAM=0x01
.equ Tram =: 0x0 ;0x0,0x1 — старш. и младш. байты температуры АЦП
.equ Pram =: 0x2 ;0x2,0x3 — старш. и младший, байты давления АЦП
.equ TdH = 0x04 ;температура старший дес.
.equ TdM = 0x05 ;темп. средний дес.
.equ TdL = 0x06 ;темп. младший дес.
.equ PdH = 0x07 ;давление старший дес.
.equ PdM = 0x08 ;давление средний дес.
.equ PdL = 0x09 ;давление младший дес.
.equ tZH = 0x20 ;ст. разряд коэффициента Z температуры
.equ tZL = 0x21 ;мл. разряд коэффициента Z температуры
.equ tKH = 0x22 ;ст. разряд коэффициента К температуры
.equ tKL = 0x23 ;мл. разряд коэффициента К температуры
.equ pZH = 0x24 ;ст. разряд коэффициента Z давления
.equ pZL = 0x25 ;мл. разряд коэффициента Z давления
.equ pKH = 0x26 ;ст. разряд коэффициента К давления
.equ pKL = 0x27 ;мл. разряд коэффициента К давления
.equ AtBCDO = 5 ;адрес ResL для процедуры преобразования Bin-Dee
.equ AtBCD2 = 6 ;адрес ResH
;переменные
.def AregH = r2 ;результат измерения hex, старший байт
.def AregL = r3 ;результат измерения hex, младший байт
.def KoeffH = r4 ;коэффициент, старший байт
.def KoeffL = r5 ;коэффициент, младший байт
.def ResL = r6 ;результат упакованный BCD, младший байт
.def ResH = r7 ;результат упакованный BCD, старший байт
.def temp = r16 ;рабочий регистр
.def temp1 = r17 ;вспомогательная переменная
.def temp2 = r18 ;вспомогательная переменная
.def count = r19 ;счетчик преобразований — до 64
.def countCyk = r20 ;счетчик до 32,
.def Flag = r21 ;регистр флагов, биты:
;измерение: 0 — температуры, 1 — давления,
.def cRazr = г22 ;счетчик до 6 мультиплексирования разрядов
;====== прерывания ======
rjmp RESET ;Reset Handle
reti ;IRQ0 Handler
reti ;IRQ1 Handler
reti ;Timer2 Compare Handler
reti ;Timer2 Overflow Handler
reti ;Timer1 Capture Handler
reti ;Timer1 Compare A Handler
reti ;Timer1 Compare В Handler
reti ;TIM1_OVF ;Timer1 Overflow Handler
rjmp TIM0 ;Timer0 Overflow Handler
reti ;SPI Transfer Complete Handler
reti ;USART RX Complete Handler
reti ;UDR Empty Handler
reti ;USART TX Complete Handler
rjmp readADC ;reti;ADC ;ADC Conversion Complete Handler
reti ;EEPROM Ready Handler
reti ;Analog Comparator Handler
reti ;Two-wire Serial Interface Handler
reti ;IRQ2 Handler
reti ;Timer0 Compare Handler
reti ;Store Program Memory Ready Handler
;==================
OUT_N: ;маски цифр
.db
0b00111111,0b0000110,0b01011011,0b01001111,0b01100110,0b01101101, 0b01111101,0b00000111,0b01111111,0b01101111
;seg ABCDEF(0);seg BC(1);seg ABDEG(2);seg ABCDG(3);seg BCFG(4);seg ACDFG(5)
;seg ACDEFG(6);seg ABC(7);seg ABCDEFG(8);seg ABCDFG(9)
TIM0:
;сначала индикация
inc cRazr ;счетчик разрядов
cpi cRazr,6 ;всего б разрядов
Читать дальше
Конец ознакомительного отрывка
Купить книгу