Будова контролера mcs-51 aDuC841 (Analog Devices)
Як процесор використовується однокристальний мікроконтролер ADuC841 з такими характеристиками:
Однотактне 20MIPS ядро архітектури 8052;
Швидкісний 12-розрядний АЦП;
Два 12-розрядні ЦАП;
62 кбайт вбудованої пам’яті програм;
2 кбайти вбудованої пам’яті даних;
UART, I2C, SPI інтерфейси;
Програмування та можливість відладки через інтерфейс UART.
Для роботи із стендом необхідне знання архітектури контролера, його регістрів та периферії. Проведемо короткий огляд найбільш важливих вузлів.
ADuC841 є функціонально завершеним контролером інтелектуальних датчиків і включає в себе високоякісний багатоканальний АЦП із самокалібруванням, два ЦАПи, і швидкий (20МГц) з однотактовим виконанням команд 8-ми розрядний програмований мікроконтролер з системою команд МК 8051 на однім кристалі. Ядром МК є контролер 8052, що забезпечує пікову продуктивність до 20 MIPS. На кристалі розміщено 62Кбайт Flash пам'яті програм, 4Кбайт Flash пам'яті даних, 256 байт пам'яті з довільним доступом (RAM) і 2Кбайт розширеної пам'яті з довільним доступом (ХRAM).
В склад ADuC841 входять також додаткові аналогові пристрої: два 12-розрядні ЦАПи, монітор напруги живлення і джерелом опорної напруги. Додатковими цифровими пристроями є: два 16-розрядні Σ-Δ ЦАПи, два 16-розрядні широтно-імпульсні модулятори, сторожовий таймер, лічильник часових інтервалів, три таймери-лічильники, і три порти послідовного вводу-виводу (SPI, I2C, і UART). Заводська прошивка контролера підтримує завантаження програмного забезпечення через послідовний порт UART, а також емуляцію через один контакт пристрою – ЕА. Далі приведена функціональна схема ADuC841.
Рисунок 2 – Функціональна схема ADuC841
;****************************************************
; Обробка переривань по INT0
;----------------------------------------------------
OBRINT0:
SETB P3.2
MOV 2FH,87H ; POKA - OZU[2Fh] - ???
JB 7AH, SPREG
nop ;
LJMP PRERPOLZ
RETI
SPREG:
JNB P3.2,SPREG
MOV 87H,#0 ; GF0:=0
RETI
; ==== Обробка переривань по таймеру T0 =======
OBTC0:
CLR TCON.4 ; "STOP" "SCHETCH.0"
MOV TH0,#0FFH
MOV TL0,#0FDH ; DLJA PODSCHETA 3 IMPULSOV
; ------------
CLR 00H ; FLAG "OGIDAN."
RETI
; ==== Обробка переривань по таймеру T1 =======
OBTC1:
CLR TCON.6 ; "STOP" "SCHETCHIKA 1"
MOV TH1,#0FFH
MOV TL1,#0FCH ; DLJA PODSCHETA 4 IMPULS.
; ------------
CLR 00H ; FLAG "OGIDAN."
RETI