Составители:
79
menu:;== подпрограмма вывода меню действий
LCDxy 0,0;== xy=00 - верхняя строка, слева
LCDstrn menu1;== выводим на ЖКД первую строку меню
LCDxy 0,1;== xy=01 - нижняя строка, слева
LCDstrn menu2;== выводим на ЖКД вторую строку меню
ret
;================================================
LCDclear:;== очистка экрана ЖКД
LCDctrl 1
ret
;================================================
DAC_ADC_init:;== начальная настройка ЦАП и АЦП
mov DACCON,#0xFF;== инициализация ЦАП (8/12бит - выбран 8-
битный режим)
mov DAC0H, #0;== загрузка старшего байта в ЦАП
mov DAC0L, #0;==
пуск ЦАП при загрузке мл. байта (холостой
запуск!)
mov cnt,#20;== задержка для первого пуска ЦАП (справочник)
nx: Delay 100,229;== 0.05сек * 20 = 1сек
djnz cnt,nx;== уменьшаем cnt=20 до 0
mov ADCCON1,#40h;== настройка АЦП
ret
;================================================
readADC:;== чтение и отображение кода АЦП на линейке LED
mov a,ADCDATAL;== записать в аккумулятор мл. байт из АЦП
anL a,#0xF0;== выделить ст. тетраду мл. байта маской F0
orL a,ADCDATAH;== обьединить по ИЛИ обе тетрады
в
аккумуляторе
swap a;== переставить тетрады местами (вернуть их на место)
mov cnt,a;== результат во временную переменную cnt
mov b,#11;== k-находится экспериментально (калибровка)
div ab;== разделить (a) на (b)
add a,cnt;== поправочный коэффициент (1+1/k)* cnt
Write acc,LED_address;== высветить код АЦП на светодиодах
ret
;================================================
smena_koda_ADC:;== вспомогательная подпрограмма
mov a,daccode;== для смены кода на входе ЦАП
subb a,#10;== любое значение
mov daccode,a
Write daccode,LED_address;== отобразить новый код на LED
mov DAC0L,daccode;== код записывается в мл
. байт ЦАП
ret
;================================================
Страницы
- « первая
- ‹ предыдущая
- …
- 77
- 78
- 79
- 80
- 81
- …
- следующая ›
- последняя »