Разработка устройства показывающего время, температуру воздуха и атмосферное давление
Ознакомление с процессом замены модуля индикации, выполненного на нескольких семисегментных светодиодных индикаторах. Изучение устройства показывающего время, температуру воздуха и атмосферное давление, выполненного на языке программирования Ассемблер.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 04.05.2014 |
Размер файла | 932,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
outDDRC,temp
lditemp,0b01111111 ;PortC7-минус, PortB5- выход для мигалки batt - ;красный
;PortB0,1,2 - разр темп;
outDDRB,temp
lditemp,0xFF
outTIFR,temp ;сбросить все прерывательные флаги в таймерах
;установка АЦП
lditemp,1<<ADEN|1<<ADIE|1<<ADPS2|1<<ADPS0 ;start ADC 1/32 такт = 128 ;кГц; interrupt enable
out ADCSR,temp
;установка таймеров
lditemp, high(62968) ;старший дивизора
outOCR1AH,temp ;64000 значение для 1 сек при прескалере 1:64
lditemp, low(62968) ;младший дивизора
outOCR1AL,temp ;64000 значение для 1 сек при прескалере 1:64
ldi temp,0b01000000
out TCCR1A,temp ;это означает переключающую моду для выхода РD5- ;OC1A таймера 1
ldi temp,0b00001011
out TCCR1B,temp ;1/64 timer1 ;clear when compare
ldi temp,0b00000010
out TCCR0,temp ;Timer0 on div 1:8;управление разрядами 2000 Гц
;прерывания
lditemp,(1<<TOIE0)|(1<<OCIE1A);разр. прер. T0 & T1 compare
outTIMSK,temp
lditemp,255
outTIFR,temp
outGIFR,temp
;начальная установка переменных
ldi r29,1 ;пишем в RAM, начиная c 01:00
clrcount
clrcSek
clrcMin
clrcHour
clrcountCyk
clrcRazr
clrFlag
sbr Flag,0x1 ;сначала пишем температуру
;обнуление рабочих ячеек
clr temp
ldi r28,Tram ;Tempr
stY+,temp
stY,temp
ldi r28,Pram ;Prs
stY+,temp
stY,temp
ldi r28,Bram ;Batt
stY+,temp
stY,temp
ldi r28,DdH ;часы старш дес
stY+,temp
stY,temp
ldi r28,DdM
stY+,temp
stY,temp
ldi r28,Hh ;установка Y
stY+, temp
stY, temp
;запись предварительных коэффициентов
ldi r28,tZH ;начальный адрес
; Z Tempr=461 addr=20h
lditemp,0x01 ;ст
stY+,temp ;мл
lditemp,0xCD
stY+,temp
; K Tempr=1111 addr=22h
lditemp,0x04 ;ст
stY+,temp
lditemp,0x57 ;мл
stY+,temp
; Z prs=4 addr=24h
lditemp,0x00 ;ст
stY+,temp
lditemp,0x04 ;мл
stY+,temp
; K prs=930 addr=26h
lditemp,0x03 ;ст
stY+,temp
lditemp,0xA2 ;мл
stY,temp
; Divisor =62968 addr=1Ah
ldi r28,dQH
lditemp,0xF5 ;ст
stY+,temp
lditemp,0xF8 ;мл
stY,temp
sei ;разрешаем прерывания
G_cykle: ;основной цикл
rcall in_com
cpitemp, Const_W ;A0 запись RAM
breq cont_1
cpitemp, Const_RAM ;A3 читать RAM
breq cont_4
cpitemp, Const_TZ ;A4 читать знак T
breq cont_5
cpitemp, Const_H ;A5 ;установка часов
breq cont_6
cpitemp, Const_S0 ;A6 ;;сброс сек
breq cont_7
cpitemp, Const_59 ;A7 ;установка сек в 59
breq cont_8
cpitemp, 0xAA ;AA ;проверка связи
breq cont_9
rjmp G_cykle
cont_1:; запись в RAM из компа послать A0, затем байт ;адрес+байт данных , получить АА
rcall A0
rjmp G_Cykle
cont_4: ;читать RAM из компа послать A3, затем байт адрес
rcall A3
rjmp G_cykle
cont_5: ;знак темп
rcallA4
rjmp G_cykle
cont_6: ;установка часов
rcallA5
rjmp G_cykle
cont_7: ;сброс секунд
rcallA6
rjmp G_cykle
cont_8: ;установка сек в 59
rcallA7
rjmp G_cykle
cont_9: ;AA - проверка связи
ldi temp,0xEE
rcall out_com
rjmp G_cykle
A0:;A0 запись RAM
cli
rcall in_com
movtemp1,temp;addr
movr28,temp;addr
rcall in_com ;data
stY,temp ;собственнo запись произведена
cpitemp1,dQL ;если адрес был младший дивизора кварца сразу же и ;в дело
brne_comp
outOCR1AL,temp ;64000 значение для 1 сек при прескалере 1:64
_comp:
cpitemp1,dQH ;если адрес был старший дивизора
brne_out
outOCR1AH,temp ;64000 значение для 1 сек при прескалере 1:64
_out:
lditemp,0xAA
rcall out_com
sei
ret
A3:;чтение RAM
cli
rcall in_com ;address
mov r28,temp ;установка Y
ldtemp,Y
rcall out_com
sei
ret
A4: ;знак темп
cli
clr temp;1 =знак -
sbic PortB,6
ldi temp,1
rcall out_com
sei
ret
A5: ;установка часов, всего нужно установить восемь ;мест: cMin, по addr Mh, два десятичных DdM,
;cHour, по addr Hh, два десятичных DdH
cli
rcall in_com ;минуты
movcMin,temp
rcall in_com ;часы
movcHour,temp
ldi r28,Hh ;установка Y
stY+, cHour
stY, cMin
mov temp,cHour
rcallbin2bcd8
ldi r28,DdH
stY+,temp1
stY,temp
mov temp,cMin
rcallbin2bcd8
ldi r28,DdM
stY+,temp1
stY,temp
sei
ret
A6:
clr cSek
ret
A7:
ldi cSek,59
ret
Размещено на Allbest.ru
Подобные документы
Создание программного модуля, выполненного на языке программирования VBA (Visual Basic for Applications) и позволяющего во введенном массиве символов удалить все повторные вхождения этих символов. Разработка пользовательского интерфейса. Код программы.
курсовая работа [317,4 K], добавлен 11.10.2012Проектирование устройства контроля температуры в холодильных установках. Устройство измеряет температуру с помощью схемы измерения температуры. Значение температуры представлены в 8-битном формате. Создание компьютерной программы для устройства.
курсовая работа [29,5 K], добавлен 22.02.2008Ввод и вывод чисел при помощи подключаемого модуля IO. Особенности работы с одномерными и двухмерными массивами. Тестирование состояние флагов. Рринципы и навыки работы с компилятором и отладчиком. Разработка схемы алгоритма программы на языке ассемблер.
курсовая работа [1,3 M], добавлен 02.12.2009Проектирование устройства, выполняющего функцию определения минимального давления на основе информации о показаниях полученных от 7 датчиков. Разработка набора команд управления микроконтроллером в среде программного обеспечения Code Vision AVR.
курсовая работа [24,5 K], добавлен 28.06.2011Расчет статического модуля оперативной памяти и накопителя. Построение принципиальной схемы и временной диаграммы модуля оперативного запоминающего устройства. Проектирование арифметико-логического устройства для деления чисел с фиксированной точкой.
курсовая работа [3,2 M], добавлен 13.06.2015Задача и цели практики: модернизация сайта, разработка базы данных, отображающей время прихода и ухода сотрудников. Разработка формы представления данных на экране. Формирование данных, пригодных для вывода. Реализация технологии всплывающих подсказок.
отчет по практике [1,3 M], добавлен 16.09.2012Разработка принципиальной электрической схемы микропроцессорного устройства управления двигателем постоянного тока на базе контроллера ATmega 128. Разработка пакета подпрограмм на языке Assembler в целях регулирования и корректной работы устройства.
курсовая работа [271,5 K], добавлен 14.01.2011Изучение команд для обработки строк, приемов, используемых в работе со строками, приемы их использования. Команды префикса повторения. Приемы программирования на языке Ассемблера с использованием подпрограмм, работа с командами вызова подпрограмм.
методичка [121,0 K], добавлен 18.12.2011Изучение языка низкого уровня ассемблер для написания примера программы для 16 битного приложения. Разработка и реализация алгоритма поднесения чисел к степени чисел над полем за основанием 2 (mod 2). Иллюстрация техники создания DOS приложения.
курсовая работа [33,3 K], добавлен 08.11.2011Изучение некоторых аспектов языка Ассемблера и ЭВМ в целом. Построение алгоритмов решения поставленной задачи на языках программирования Си, Ассемблер УМ и IBM PC. Составление блок-схем решений и написание программ на каждом из перечисленных языков.
курсовая работа [691,5 K], добавлен 20.10.2014