Microprocessor / Microcontroller. Industrial Electrical Engineering and Automation



Relevanta dokument
Microprocessor / Microcontroller

Realtidsprogrammering. En introduktion Implementering (med exempel från PIC)

#include <pic.h> #include <sys.h> char LEFT,RIGHT,MOTORHASTIGHET;

Effektpedal för elgitarr

Dessa komponenter plus några motstånd, klockkrets, kondensatorer och annat smått och gott har åstadkommit ett fungerande POV-hjul.

Digitala Projekt(EITF40) - Larm

INGENJÖRSHÖGSKOLAN INGENJÖRSHÖGSKOLAN

Växtviskaren EITF11 Digitala projekt VT15, I12

PIC-programmeringsuppgift (PROA)

Systemkonstruktion LABORATION REALTIDSPROGRAMMERING

Tentamen Enchipsdatorer med tillämpningar. Lösningar och kommentarer

Styrprogram till PICprocessorer. fjärrmanövrerad relämatris i distanslaboratorier. Eric Eskilsson

A-del motsvarande KS1

Thunder s Truck projektrapport

Provmoment: Ladokkod: Tentamen ges för: Tentamen TE111B El3. Namn: Personnummer: Tentamensdatum: Tid: 14:00-18:00.

Ansvarig lärare: Olof Andersson, Telefon (besöker skrivsalen)

Föreläsningsanteckningar till Konstruktionsmetoder

Enkla datatyper minne

Beskrivning av porthantering i mikroprocessorn SAM3U som används på vårt labkort SAM3U- EK.

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Larmcentral. Digitala Projekt. Cecilia Olsson & Erika Björck Handledare: Bertil Lindvall LUNDS TEKNISKA HÖGSKOLA

Lathund. C för inbyggda system

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Lathund. C för inbyggda system

The Phenomenal Doorbell Bilaga 2. Källkod

Digitala Projekt(EITF40) - Larm

Demonstration och konsultation Arbetsbokens avsnitt 7 Händelsestyrt processbyte Förberedande inför laboration 4

Det finns en hemsida. Adressen är

William Sandqvist

Att använda pekare i. C-kod

Tentamen Enchipsdatorer med tillämpningar. Lösningar och kommentarer

DIGITALA PROJEKT (EITF40) Fartmätare

Övningsuppgifter STYRNING - i Mikrodatorteknik för U2 2010

Ett program som frågar regelbundet om något skall utföras. Exempelvis om spänningen på ett batteri sjunkit under en viss nivå.

Laborera med SmartCard

Laboration 5 C-programmering på AVR TSEA57 Datorteknik I

#include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> unsigned char num;

Lathund. Pacific C för MS-DOS

22/02/16. Arduino Introduktion till Arduino. Arduino. Microcontroller - Embedded systems. Historia Organisation - Ekosystem

LARMANLÄGGNING. Digitala Projekt, EITF11. Oskar von Knorring Emin Karimov Henrik Akej Handledare: Bertil Lindvall

TEMPERATURMÄTARE MED GRAFRITARE

Systemkonstruktion SERIEKOMMUNIKATION

IE1206 Inbyggd Elektronik

EITF11 - Digitala projekt. Hastighetsmätare. Hugo Backmyr Mattias Karlsson

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Programmering A. Johan Eliasson

Digital Termometer J10 B4 A4 GND GND GND B1 GND GND GND GND B3 A3 +5V +5V A3 +5V A2 +5V +5V A2. +5v B16 A16 UREG UREG B1 6 AC AC A1 6 A6 6

Laboration 4: Knappstuds Drivrutiner för att eliminera störningar.

Lunds Tekniska Högskola Elektro- och informationsteknik Digitala projekt (EITF11)

Lista på registeruppsättningen i PIC16F877A Datablad TTL-kretsar 74-serien

Kontrollskrivning Mikrodatorteknik CDT S2-704

Laboration 3 i Digital- och Mikrodatorteknik. Utvecklingssystemet MPLAB IDE Grundläggande assemblerprogrammering för PIC

GPIO - General Purpose Input Output

Firmware till en Dyklampa - Utveckling av programvara. Firmware for a dive light - Developing software. Examensarbete inom Mekatronik MIKAEL ISAKSSON

Digitala Projekt (EITF11) Hemlarm

PROTOTYPUTVECKLING AV DIGITALT

Projektrapport Målgång

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

Projektrapport. Elektronikdesign, Medicinsk Teknik, KTH STH Elektronikdesign Styrketräningshjälp

SMD 134 Objektorienterad programmering

Digitalt eller Analogt

Översikt Introduktion DST 1. Nicholas Wickström. IDE, Högskolan i Halmstad. N. Wickström

7HQWDPHQLNRQVWUXNWLRQVPHWRGHU 'HOWHQWDPHQ / VQLQJDURFKNRPPHQWDUHU

Drivenhet till befintlig inspektionsutrustning För en ökad säkerhet vid Ringhals kärnkraftverk

Tentamen Enchipsdatorer med tillämpningar Lösningar och kommentarer

Projektlaboration 4, synkronisering av klockan

AVR 3 - datorteknik. Avbrott. Digitala system 15 hp. Förberedelser

Programmeringsteknik med C och Matlab

C konstruerades i början på sjuttiotalet av Dennis Ritchie vid Bell Laboratories.

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll,

Rapport. Fyra i rad-spel. Rapport Digitala Projekt EITF11 Grupp 9 Emma Rasmusson & Louise Ragnarsson Handledare: Bertil Lindvall

Tentamen i Programmering grundkurs och Programmering C

K8048 PIC PROGRAMMER BOARD

Arduinokurs. Del 1 - Vett och etikett. Talsystem. Binärt ettor och nollor

TDIU01 - Programmering i C++, grundkurs

GPIO - General Purpose Input Output

1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

Varför använda en liten 8-bitars processor när det finns billiga kraftfulla 32-bitars? William Sandqvist

Hantering av textsträngar och talsträngar. William Sandqvist

Data, typ, selektion, iteration

Guitar Tuner EITF11 Digitala Projekt, Projektrapport Elektro- och informationsteknik

Digitala Projekt (EITF11)

Klassdeklaration. Metoddeklaration. Parameteröverföring

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Nu till dagens ämne: Vi rekapitulerar det första problemet ur ProblemI:

RAPPORT: DIGITALA PROJEKT

Maskinorienterad programmering

High Core Remote Car X8000 Cool

1 Bakgrund 4. 2 Kravspecifikation Definitioner Grundläggande krav Användarfall 5

Lösningar till uppgifterna sätts ut på kurssidan på nätet idag kl Omtentamen i Programmering C, 5p, A1, D1, E1, Fri, Pr1, Te/Ek1,

tentaplugg.nu av studenter för studenter

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

mikroicd Avbuggare Handbok

EITF11: Bandkanon Grp 05

Rapport i Digitala Projekt (EDI021)

EDA480/EDA485 - Maskinorienterad programmering, tentamen 2006-xx-xx 1(7)

TSIU50 Mikrodatorprojekt. LAB1 AVR-introduktion och logikanalysator

Tentamen i. för D1 m fl, även distanskursen. lördag 19 januari 2013

Transkript:

Microprocessor / Microcontroller

Varför? Billiga Innehåller bara det nödvändigaste Kräver få kringkomponenter Enkla att programmera

PIC16F887

PIC16F887

In- och utgångar

Pinnar på PIC16F887

Exempel: pinne RA1 In / Ut väljs med TRIS Digital / Analog väljs med ANSEL Komparatoringång

Timer

Timer med prescaler

Timeravbrott

Avbrott

Avbrottsregister

Avbrottsregister GIE - Global Interrupt Enable bit PEIE - Peripheral Interrupt Enable bit T0IE - TMR0 Overflow Interrupt Enable bit INTE - RB0/INT External Interrupt Enable bit RBIE - RB Port Change Interrupt Enable bit. T0IF - TMR0 Overflow Interrupt Flag bit INTF - RB0/INT External Interrupt Flag bit RBIF - RB Port Change Interrupt Flag bit

Timer0

Port B Pull up Enable bit Interrupt Edge Select bit TMR0 Clock Source Select bit TMR0 Source Edge Select bit Prescaler Assignment bit Prescaler Rate Select bits

Generera avbrott varje ms med Timer0 //Fosc = 4 MHz static void interrupt isr(void){ if(t0if){ TMR0 = 6; isr_cnt++; T0IF = 0; void main(void){... PSA = 0; PS2 = 0; PS1 = 0; PS0 = 0; T0CS = 0; TMR0 = 6; T0IE = 1; GIE = 1; while(1){ if(isr_cnt > 0){... isr_cnt = 0; // TIMER0 interrupt flag // Ladda nytt värde till TMR0 // Nollställ TIMER0 interrupt flag // Prescaler till timer0 // 1:4 prescaler // välj Fosc/4 som insignal // Timer värde för avbrott efter 1 ms // Enable timer0 avbrott // Enable Global interrupt

Timer1

Timer som pulsräknare static void interrupt isr(void){ if(tmr0if){ TMR0 = 6; timer1h = TMR1H; timer1l = TMR1L; TMR1H = 0; TMR1L = 0; puls_cnt = (timer1h<<8)+timer1l; isr_cnt++; TMR0IF = 0; void main(void) {... while(1){ if(isr_cnt>0){ lcd_putint(puls_cnt,5); isr_cnt = 0;

Timer för tidtagning static void interrupt isr(void){ if(ccp1if){ capture_time = (CCPR1L+(CCPR1H<<8)) - capture_old; capture_old = CCPR1L+(CCPR1H<<8); isr_cnt++; CCP1IF = 0; void main(void){... if(isr_cnt>0){ lcd_putlong(capture_time,6); isr_cnt = 0;

PWM

PWM

A/D omvandlare

Oscillator

#include <htc.h> #include "lcd.h" #pragma config IESO=ON, FCMEN=ON,OSC=INTIO7 #pragma config BOREN=SBORDIS, BORV=0, PWRT=OFF, WDT=OFF #pragma config CCP2MX=PORTC, PBADEN=OFF, LPT1OSC=ON, MCLRE=ON #pragma config DEBUG=OFF, STVREN=ON, XINST=OFF, LVP=OFF #pragma config CP0=OFF, CP1=OFF, CP2=OFF, CP3=OFF, CPD=OFF, CPB=OFF #pragma config WRT0=OFF, WRT1=OFF, WRT2=OFF, WRT3=OFF, WRTB=OFF, WRTC=OFF,WRTD=OFF #pragma config EBTR0=OFF, EBTR1=OFF, EBTR2=OFF, EBTR3=OFF, EBTRB=OFF char avbrott = 0; unsigned int counter = 0; static void interrupt isr(void) {... void main(void) { OSCCON = 0x70; TRISA = 0x3D; TRISB = 0xFF; TRISC = 0xF7; TRISD = 0xF0; TRISE = 0x04; ADCON1 = 0x0E; isr_init(); //Globala variabler // Välj 8 Mhz intern klocka // PORTA: RA1 utgång, resten ingångar // PORTB: ingångar // PORTC: RC3 utgång, resten in // PORTD: RD0-3 utgångar, resten in // PORTE: RE0-1 utgångar // AN0 (RA0) analog ingång // Initiera avbrott while(1) {...

Några datatyper i C char int float double signed unsigned void tecken, 8 bitar heltal, 16 bitar reella tal reella tal med dubbel precision med tecken utan tecken uttrycket saknar typ

Några operatorer i C a++ a = a+1 a-- a = a-1!a inte a ~ bitvis invers == lika med!= inte lika med && OCH ELLER & bitvis OCH bitvis ELLER

Ändra enstaka bitar i ett register a = 0b00010011; b = a 0b00000100; // bitvis ELLER // b = 00010111 a = 0b00010011; b = a & 0b11111110; // bitvis OCH // b = 00010010

Skift a = 0x00000011; b = a<<2 // multiplikation med 4 //b = 00001100 b = a>>1 // division med 2 //b = 00000001

Olika sätt att skriv samma sak a = 23 // decimalt a = 0b00010111 // binärt b = 0x17 // hexadecimalt

och vem har gjort bilderna då? www.microchip.com www.mikroe.com om man vill meta mer? Bates - Programming 8-bit PIC Microcontrollers in C