Timer T2 - zgodny z Tryb capture. Tryb auto-reload. Rejestr T2CON - adr. bitowo. dr inŝ. Stefan Brock 2008/2009

Podobne dokumenty
architektura komputerów w 1 1

Kompilator języka C na procesor 8051 RC51 implementacja

MIKROPROCESORY architektura i programowanie

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe

PMiK Programowanie Mikrokontrolera 8051

MIKROPROCESORY architektura i programowanie

Hardware mikrokontrolera X51

2. Architektura mikrokontrolerów PIC16F8x... 13

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Wstęp. do języka C na procesor (kompilator RC51)

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Architektura mikrokontrolera MCS51

Architektura mikrokontrolera MCS51

Lista rozkazów mikrokontrolera 8051 część pierwsza: instrukcje przesyłania danych, arytmetyczne i logiczne

Start Bity Bit Stop 1 Bit Par Rys. 1

Systemy wbudowane. Wprowadzenie. Wprowadzenie. Mikrokontroler 8051 Budowa

Wstęp Architektura... 13

Układy czasowo-licznikowe w systemach mikroprocesorowych

ĆWICZENIE. TEMAT: OBSŁUGA PRZETWORNIKA A/C W ukontrolerze 80C535 KEILuVISON

Politechnika Warszawska

Mikrokontroler AVR ATmega32 - wykład 9

Ćwiczenie 30. Techniki mikroprocesorowe Programowanie w języku Asembler mikrokontrolerów rodziny '51

Mikroprocesory i Mikrosterowniki

2. Budowa układów procesorowych rodziny TMS320C

Wbudowane układy peryferyjne cz. 3 Wykład 9

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Lista rozkazów mikrokontrolera 8051

PMiK Programowanie Mikrokontrolera 8051

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

Programowanie mikrokontrolerów (CISC)

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Język FBD w systemie Concept

MIKROKONTROLERY I MIKROPROCESORY

Język programowania C51 dla mikroprocesorów rodziny MCS51

Temat: System przerwań, liczniki i wyświetlacz w STRC51. Ćwiczenie 3.

MIKROPROCESORY architektura i programowanie

Mikroprocesory i Mikrosterowniki

Systemy Wbudowane. Arduino, AVR. Arduino. Arduino. Arduino. Oprogramowanie. Mikrokontroler. Mikrokontroler Platforma Arduino. Arduino IDE: Arduino C:

System mikroprocesorowy i peryferia. Dariusz Chaberski

8-bitowe mikrokontrolery ADuC firmy Analog Devices w układach pomiarowych

Przerwania w architekturze mikrokontrolera X51

4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD.

Zastosowania mikrokontrolerów w przemyśle

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Temat: System przerwań, liczniki i wyświetlacz w STRC51. Ćwiczenie 3.

Instytut Teleinformatyki

Wbudowane układy peryferyjne cz. 1 Wykład 7

Sygnały DRQ i DACK jednego kanału zostały użyte do połączenia kaskadowego obydwu sterowników.

Wykład 2. Przegląd mikrokontrolerów 8-bit: -AVR -PIC

Systemy wbudowane Mikrokontrolery

Programowanie mikrokontrolerów. 8 listopada 2007

3.2. Zegar/kalendarz z pamięcią statyczną RAM 256 x 8

Instytut Teleinformatyki

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

ad a) Konfiguracja licznika T1 Niech nasz program składa się z dwóch fragmentów kodu: inicjacja licznika T1 pętla główna

Opis funkcjonalny i architektura. Modu³ sterownika mikroprocesorowego KM535

architektura komputerów w 1 1

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

1. Wstęp Różnice pomiędzy mikrokontrolerami ST7 a ST7LITE Rdzeń mikrokontrolerów ST7FLITE... 15

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

petla:... ; etykieta określa adres w pamięci kodu (docelowe miejsce skoku) DJNZ R7, petla

Inż. Kamil Kujawski Inż. Krzysztof Krefta. Wykład w ramach zajęć Akademia ETI

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

4 Transmisja szeregowa, obsługa wyświetlacza LCD.

1.2. Architektura rdzenia ARM Cortex-M3...16

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

WPROWADZENIE Mikrosterownik mikrokontrolery

Układy czasowo-licznikowe w systemach mikroprocesorowych

Omówimy przykłady 8-mio bitowego licznika z wyposażenia ADuC812 (CISC 51) oraz mikrokontrolera ATMega128 należącego do rodziny AVR.

Technika mikroprocesorowa I Wykład 4

Ćw. 10 Badanie toru przetwarzania C/A w mikrokontrolerach analogowych

PROJEKT I OPTYMALIZACJA STRUKTURY LOGICZNEJ DYDAKTYCZNEGO SYSTEMU MIKROPROCESOROWEGO DLA LABORATORIUM PROJEKTOWANIA ZINTEGROWANEGO

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

Instytut Teleinformatyki

Instytut Teleinformatyki

Ćwiczenie 9 Częstościomierz oparty na µc 8051(8052)

IC200UDR002 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO

Programowanie mikrokontrolerów AVR

PUNKTOWE STEROWNIKI VERSAMAX MICRO

CPU architektura i rejestry

LABORATORIUM nr 2. Temat: Obsługa wyświetlacza siedmiosegmentowego LED

Pracownia elektryczno-elektroniczna klasa IV

Praktyka Techniki Mikroprocesorowej. Mikrokontroler ADuC834

Obszar rejestrów specjalnych. Laboratorium Podstaw Techniki Mikroprocesorowej Instytut Mikroelektroniki i Optoelektroniki PW

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Szkolenia specjalistyczne

Samba OPLC SM35-J-T20

Ćwiczenie 2. Siedmiosegmentowy wyświetlacz LED

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Metody obsługi zdarzeń

Programowanie w językach asemblera i C

Dokumentacja Techniczna. Czytnik RFID UW-M4GM

Przerwania, polling, timery - wykład 9

Elektronika i techniki mikroprocesorowe

ARCHITEKTURA PROCESORA,

Kurs Elektroniki. Część 5 - Mikrokontrolery. 1/26

SYSTEM PRZERWAŃ ATmega 32

Układy transmisji przewodowej. na przykładzie USB

dokument DOK wersja 1.0

Transkrypt:

Timer T2 - zgodny z 8052 Tryb autoreload 16 bitowy - wyzwalany przepełnieniem licznika lub sygnałem zewnętrznym Tryb zatrzasku (capture) 16 bitowy - wyzwalany sygnałem zewnętrznym Tryb auto-reload Tryb capture Rejestr T2CON - adr. bitowo 7 - TF2 - Flaga przepełnienia, kasowanie programowe 6 - EXF2 - Przeładowanie nastąpiło sygnałem zewnętrznym. Kasowanie programowe 5 - RCLK - do złącza transmisji szeregowej 4 - TCLK - 3 - EXEN2 - zgoda na zewnętrzne przeładowanie 2 - TR2 - start/stop timera 1 - CNT2 - wybór trybu pracy: 0: timer, 1: licznik 0 - CAP2-1: zgoda na wyzwalanie zewnętrzne funkcji CAPTURE 0: zgoda na przeładowanie 1

Przykład - pomiar okresu impulsów #include <ADUC831.H> unsigned int okres; void handler_t2(void) interrupt 5 EXF2=0;TF2=0; TL2=0; TH2=0; okres=rcap2l+((unsigned char)rcap2h<<8); void main (void) T2CON=0x0D; //0000 1101 ET2=1; EA=1; // Zgoda globalna while(1); Okres - liczba z zakresu 0 do 65535 MOV R7,RCAP2H MOV A,R7 MOV R6,A MOV R5,RCAP2L MOV R4,#00H CLR A ADD A,R5 MOV okres+01h,a MOV A,R4 ADDC A,R6 MOV okres,a struct two_byte unsigned char hi,lo;; union int_to_byte unsigned int word; struct two_byte byte; ; union int_to_byte okres; void handler_t2(void) interrupt 5 EXF2=0;TF2=0; TL2=0; TH2=0; okres.byte.lo=rcap2l; okres.byte.hi=rcap2h; Efektywny dostęp do danych dwubajtowych MOV MOV okres+01h,rcap2l okres,rcap2h Pamięć w mikrokontrolerze ADuC 831 Model programowania ADuC 831 256 Bytes of General-Purpose RAM 2 kbytes of Internal XRAM 62 kbytes of On-Chip Flash Program Memory 4 kbytes of On-Chip Flash Data Memory Uniwersalna pamięć RAM - 256 B Dolne 128 B - adresowanie bezpośrednie i pośrednie. Górne 128 B - adresowanie pośrednie Zewnętrzna pamięć XRAM 2

Zewnętrzna pamięć XRAM - interfejs sprzętowy Wewnętrzna pamięć programu typu Flash Programowanie: poprzez łącze szeregowe - w czasie resetu pin PSEN=0 (In-Circuit Programming) równoległe - za pomocą typowego programatora EEPROM/Flash User Download Mode (UMODE) - umoŝliwia zapisanie przez program uŝytkownika do 56 kb pamięci programu Flash, oferując łącznie 60 kb pamięci nieulotnej Wewnętrzna pamięć programu typu Flash Zewnętrzna pamięć CODE - interfejs sprzętowy Gdy w czasie resetu pin EA=1 - wewnętrzna pamięć Flash EA=0 - zewnętrzna pamięć EPROM Wewnętrzna pamięć danych Flash 4 kb pamięci zorganizowane w 1 k stron po 4 B Dostęp poprzez rejestry SFR: EDATA1-4, EADRH/L i ECON Typowe czasy dostępu: READPAGE (4 bytes) 5 cykli maszynowych WRITEPAGE (4 bytes) 380 µs VERIFYPAGE (4 bytes) 5 cykli maszynowych ERASEPAGE (4 bytes) 2 ms ERASEALL (4 kbytes) 2 ms READBYTE (1 byte) 3 cykli maszynowych WRITEBYTE (1 byte) 200 µs Wewnętrzna pamięć danych Flash 3

Przykładowe polecenia rejestru ECON 0x01 - READ - strona zaadresowana przez EADRH/L jest odczytywana do EDATA1-4 0x02 - WRITE - strona zaadresowana przez EADRH/L jest zapisywana przez EDATA1-4 0x04 -VERIFY - strona zaadresowana przez EADRH/L jest porównywana z EDATA1-4 0x05 -ERASE - strona zaadresowana przez EADRH/L jest kasowana do wartości 0xFF 0x06 - ERASE ALL - kasowanie całej pamięci #include <ADUC831.H> #define uchar unsigned char #define uint unsigned int void zapis_flash(uint adres, uchar d1, uchar d2, uchar d3, uchar d4) EADRL = (uchar)(adres & 0xFF); EADRH = (uchar)(adres>>8); ECON = 0x05; //ERASEPAGE EDATA1=d1; EDATA2=d2; EDATA3=d3; EDATA4=d4; ECON = 0x02; // WRITEPAGE /* UWAGA: operacja ERASEPAGE trwa 2 ms, operacja WRITEPAGE 0.38 ms. W tym czasie CPU przechodzi w tryb Idle, i nie obsługuje przerwań. Układy peryferyjne pracują normalnie. */ void odczyt_flash(uint adres, uchar *d1, uchar *d2, uchar *d3, uchar *d4) EADRL = (uchar)(adres & 0xFF); EADRH = (uchar)(adres>>8); ECON = 0x01; // READPAGE *d1=edata1; *d2=edata2; *d3=edata3; *d4=edata4; void main(void) uchar a,b,c,d; zapis_flash(400,0x11,0x22,0x33,0x44); odczyt_flash(400,&a, &b, &c, &d); while(1); Rozmieszczenie zmiennych w pamięci RAM Atrybuty lokalizacji: data - zmienna w pamięci wewnętrznej; do 128 bajtów adresowane bezpośrednio. idata- zmienna w pamięci wewnętrznej; do 256 bajtów adresowane pośrednio pdata - stronicowany (256 B) dostęp do pamięci zewnętrznej poprzez MOVX @Rn xdata - zmienna w pamięci zewnętrznej, adresowanie wskaźnikowe code - zmienna wpamięci programu- tylko do odczytu #define uchar unsigned char #define uchar unsigned char uchar data zm1; uchar idata zm2; void main(void) zm1=0x11; zm2=0x22; while(1); MOV zm1,#011h MOV R0,#LOW zm2 MOV @R0,#022H uchar x; uchar xdata zm3; uchar code zm4; void main(void) zm3=0x33; x=zm4; while(1); MOV DPTR,#zm3 MOV A,#033H MOVX @DPTR,A MOV DPTR,#zm4 CLR A MOVC A,@A+DPTR MOV x,a 4

Modele pamięci w kompilatorze - SMALL Domyślnie wszystkie zmienne umieszczane sa w pamięci wewnętrznej RAM - jak z dyrektywą data Bardzo efektywny dostęp do zmiennych, ale wszystkie zmienne, oraz stos muszę się zmieścić w max. 128 bajtach. Modele pamięci w kompilatorze - COMPACT Model zmiennych w pamięci zewnętrznej. Wszystkie zmienne muszą zmieścić się w 256 bajtach. Starszy bajt adresu (wystawiany na porcie P2) jest stały i musi zostać ustawiony przez program. Domyślnie wszystkie zmienne deklarowane są z atrybutem pdata Adresowanie pośrednie poprzez R0 i R1 (MOVX @R0/@R1) Wolniejsze niŝ SMALL lecz szybsze niŝ LARGE. Modele pamięci w kompilatorze - LARGE Model zmiennych w pamięci zewnętrznej. Pełen zakres dostępnej pamięci zewnętrznej. Domyślnie wszystkie zmienne deklarowane są z atrybutem xdata Do adresowania wykorzystywany jest rejestr wskaźnikowy (DPTR) Wolniejsze niŝ SMALL oraz COMPACT. Zewnętrzna pamięć z RTC - M48T02 Pamięć SRAM 2 kb*8 Zegar czasu rzeczywistego Programowa kalibracja zegara Wbudowana bateria zasilająca zegar i podtrzymująca pamięć Rejestry RTC układu M48T02 Dostęp do zadanego adresu w pamięci XDATA #define ADRES 0xFF00 uchar x; uchar xdata zm3; char xdata *p; p=(char xdata *) ADRES; *(p)=0x55; zm3=0; x=*(p); MOV MOV p,#0ffh p+01h,#00h MOV DPL,p+01H MOV DPH,p MOV A,#055H MOVX @DPTR,A CLR A MOV DPTR,#zm3 MOVX @DPTR,A MOV DPL,p+01H MOV DPH,p MOVX A,@DPTR MOV x,a 5

Modele kompilacji kodu - ROM(SMALL) Instrukcje CALL i JMP są kodowane jako odpowiednio ACALL i AJMP. Maksymalna wielkość całego programu jest ograniczona do 2 kilo bajtów. Modele kompilacji kodu - ROM(COMPACT) Instrukcje CALL jest kodowana jako LCALL, natomiast JMP wewnątrz funkcji jako AJMP. Maksymalna wielkość kaŝdej z funkcji programu jest ograniczona do 2 kilo bajtów. Cały program moŝe osiągnąć do 64 kilo bajtów. Modele kompilacji kodu - ROM(LARGE) Instrukcje CALL jest kodowana jako LCALL, takŝe JMP jest kodowana jako LJMP. Cały program moŝe osiągnąć do 64 kilo bajtów, bez ograniczeń na długość poszczególnych funkcji. Wybór pomiędzy modelami ROM(COMPACT) a ROM (LARGE) zaleŝy od konkretnego przykładu Watchdog timer Kontroluje poprawność działania programu - błędy programowe lub wynik zakłóceń Po przekroczeniu zadanego czasu generuje Reset lub przerwanie niemaskowalne Ustawiany okres działania - od 15.6 do 2000 milisekund Obsługa - poprzez sekwencję instrukcji: WDWR=1; WDCON=0x72; SETB WDWR ;zgoda na zapis do WDT MOV WDCON, #72H ; zapis - okres 2 s Rejestr WDCON - adr. bitowo 7 - PRE3 - wybór okresu zliczania 6 - PRE2-5 - PRE1-4 - PRE0-3 - WDIR - 1: generowanie przerwań 0: generowanie sygnału RESET 2 - WDS - 1: gdy Reset od Watchdoga 1 - WDE - zgoda na prace Watchdoga 0 - WDWR - zgoda na zapis do WDCON 6

Układ modulacji szerokości impulsów PWM Rejestr sterujący PWMCON 7 - SNGL - wyjścia przypisane do PWM 6 - MD2 - wybór trybu pracy 5 - MD1-4 - MD0-3 - CDIV1 - dzielnik częstotliwości 2 - CDIV0-1 - CSEL1 - wybór źródła sygnału 0 - CSEL0 - Tryb 1 - Single Variable Resolution PWM1 określa okres pracy i rozdzielczość PWM0 określa wypełnienie Gdy PWM1H/L = 65536-16-bit PWM 244 Hz (16 MHz/65536) Gdy PWM1H/L = 4096-12-bit PWM 3906 Hz (16 MHz/4096) Tryb 2 - podwójny sygnał 8 bitowy Tryb 3 - podwójny sygnał 16 bitowy PWM1L - określa okres pracy pozostałe - wypełnienie sygnału 7

Tryb 4: Tryb 5: Dwa 8 bitowe PWM Tryb 6: Przetwornik AC Szybki, 8 kanałowy, 12 bitowy przetwornik Przetwarzanie pojedyncze lub ciągłe, inicjowane programowo lub zewnętrznie Praca okresowa - sygnał z timera T2 Tryb pracy DMA - wyniki bezpośrednio przesyłane do pamięci, bez udziału CPU Kalibrowane wewnętrzne źródło odniesienia Przetwornik AC Rejestry sterujące ADCCON1-3 12 bitowy rezultat w ADCDATAH/L Na starszych bitach ADCDATAH - numer kanału 8

Przetwornik C/A Dwa 12 bitowe przetwornik C/A Zakres przetwarzania - sygnał zewnętrzny lub wewnętrzne źródło odniesienia Rejestr sterujący DACCON i rejestry danych DAC1H/L i DAC0H/L Dla trybu 12 bitowego - zmiana stanu wyjścia po wpisie do rejestru DAC1L (DAC0L) DACCON 7 MODE Tryb pracy 1: 8 bitów, 0: 12 bitów 6 RNG1 Zakres pracy: 5 RNG0 1: napięcie zasilania 0: napięcie REF 4 CLR1 Wymuszenie napięcia równego 0 3 CLR0 2 SYNC Synchroniczna aktualizacja wyjść 1 PD1 Zasilanie przetworników 0 PD0 Dane 12 bitowe: w młodszej części DAC1H i DAC1L Układ kontroli zasilania Kontrola zasilania części cyfrowej i analogowej Spadek napięcia poniŝej nastawianego progu wywołuje przerwanie Gdy przez 250 ms napięcie jest ponownie wyŝsze od wartości progowej to przerwanie jest kasowanie UmoŜliwia uŝytkownikowi zapisanie wyników w pamięci nieulotnej. 9

Tryby oszczędności energii Prądy części cyfrowej dla U=5V: Normal mode - 21 ma Idle mode - 10 ma Power down mode -0.025 ma Tryb Idle Zegar systemowy pracuje normalnie, lecz nie jest doprowadzany do CPU Wszystkie układy peryferyjne pracują Przerwania powodują powrót do normalnej pracy Tryb Power Down Zatrzymany oscylator i wszystkie peryferia Wyjście poprzez: Sygnał RESET Przerwanie od układu TIC (pracującego z własnym oscylatorem RC) Przerwanie od łączy szeregowych SPI lub I2C Przerwanie zewnętrzne INT0 Wyłączenie i włączenie 10