ення номера біта -
зрушення (<<) одиниці вліво на необхідне число розрядів (NumChanel)
* /
svet=(1 << (NumChanel - 1));
else
svet=255 ;/ / неправильно вибраний канал
WriteMax (0x7, svet) ;/ / Запалюємо світлодіоди (NumChanel <9)
{
/ / почати перетворення і дочекатися завершення
ADCCON2=(ADCCON2 & 0xF0) | NumChanel;
SCONV=1; (ADCCON3 & 0x80);
/ / Читання A / D даних=ADCDATAL | ((ADCDATAH & 0x0F) << 8);
/ / вивід на термінал
if (NumChanel == 8) / / якщо номер каналу дорівнює восьмому
{/ / то потрібно перетворити отримане значення в зрозуміле для людини (в температуру)
grad=(675-tmpVal * 0.61) / 3; (grad, NumChanel) ;/ / запишемо значення
} else (tmpVal, NumChanel) ;/ / запишемо значення
} else («Error selection channel n») ;/ / скажімо що невірно обраний канал=NumChanel ;/ / для відстежування зміни каналу
//*****************************************************************************//
/ / повторна настройка таймера і його запуск
TL0=0xFE;// Затримка
TH0=0x32;//
TCON |=0x10;// Запуск T0
} / / do
while (1) ;/ / нескінченний цикл
} LISTING OF GENERATED OBJECT CODE
; FUNCTION _WriteMax (BEGIN)
; SOURCE LINE # 28
; ---- Variable «val» assigned to Register «R5»----
; ---- Variable «regnum» assigned to Register «DPTR»----
8F82 MOV DPL, R7
8E83 MOV DPH, R6
; SOURCE LINE # 29
; SOURCE LINE # 30
; ---- Variable «oldDPP» assigned to Register «R7»----
AF84 MOV R7, DPP
; SOURCE LINE # 31
758408 MOV DPP, # 08H
; SOURCE LINE # 32
ED MOV A, R5
A F0 MOVX @ DPTR, A
; SOURCE LINE # 33
B 8F84 MOV DPP, R7
; SOURCE LINE # 34
D 22 RET
; FUNCTION _WriteMax (END)
; FUNCTION _ReadMax (BEGIN)
; SOURCE LINE # 42
; ---- Variable «regnum» assigned to Register «DPTR»----
8F82 MOV DPL, R7
8E83 MOV DPH, R6
; SOURCE LINE # 43
; SOURCE LINE # 44
; ---- Variable «oldDPP» assigned to Register «R7»----
AF84 MOV R7, DPP
; SOURCE LINE # 45
; ---- Variable «val» assigned to Register «R6»----
; SOURCE LINE # 46
758408 MOV DPP, # 08H
; SOURCE LINE # 47