//--------------------------------- Definition af porte og funktioner -------------------------

Relaterede dokumenter
Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato:

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi C Opgave: Brev til Sigurd Lære: John Austin Side 1 af 13 Dato:

up/ansi Eksamensspørgsmål

Eksamens spørgsmål i Teknologi (Digital) 3. Semester (i)

Programmering i C. Lektion november 2008

Erklæring af variabler. Void indstil (Indstiller starttidspunkt og måleinterval).

Programmering i C. Lektion september 2009

Programmeringskursus Kursusaften 3. Programmering for begyndere Brug af Arduino. Display. Kursusaften 3 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK

Internt interrupt - Arduino

Projekt - RoboNet Del Journal.

Spil Master Mind. Indledning.

Programmering i C. Lektion oktober 2008

Ved indkøring påtrykkes en kendt amplitude (HUSK 50 ohms afslutning) og displayet aflæses.

Programmering i C. Lektion december 2008

Programmering i C. Lektion september 2009

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { int wmid, wmevent; programmering med

Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering...

Programmering i C Programmering af microcontroller i C (4 af 4) 12. april 2007

Betjeningsvejledning. til. Vandkiosk. system

Filnavn: main.c

Betjeningsvejledning. til. Vandudvejning. system

uprocessorens hardware

Interrupt - Arduino. Programmering for begyndere Brug af Arduino. Kursusaften 6 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK

Kursusarbejde 3 Grundlæggende Programmering

Et alfabet er en ordnet mængde af bogstaver og andre tegn

Start på Arduino og programmering

// inkluder library kode: #include <LiquidCrystal.h> #include <Serial.h> // Initialiser display LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

Indholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen...

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

Intro til AVR. Mads Pedersen, OZ6HR

Fra programmering til mikroprocessor

danske karakterer på Lcd

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4

Indholdsfortegnelse :

LCD Modul. Ved Power-on skal LCD-displayet initieres, og evt. indstilles til 4-bit kommunikation.

LCD intro. LCD Character display-intro. Redigeret 4/6-2019

Kursusarbejde 2 Grundlæggende Programmering

Status vejledning. Vejledning i håndtering af status scanner, tømning og indlæsning til EasyPOS

const int disponibel_10= 10; const int disponibel_11= 11; const int disponibel_12= 12; const int blinkled = 13; // pin 13 er LED på NANO

Programmering i C Intro og grundlæggende C 5. marts 2007

9. Tyverialarm med buzzer

LCD Character display Intro

Stregkodereferencevejledning

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter Abstract

Programmering i C. Lektion september 2009

Modbus data modellen er opbygget af fire primære data typer. I nedenstående skema er en kort oversigt over disse.

Styrecomputer til high end CD-afspiller Kristoffer Jørgensen

Analoge indgange og A/D konvertering. Analoge udgange

Fang Prikkerne. Introduktion. Scratch

Indholdsfortegnelse:

Under 'Microsoft Block Editor', klik 'New project' for at åbne block editor-værktøjet.

Brugervejledning. SmartAir P-Enhed Programmeringsenhed

C for uc kompendium. Denne compendium er et forsøg på at lære lidt om C for uc, med Keil syntax.

Planen for idag. Kontrol af ydre enheder. Systemarkitektur. Synkronisering ved aktiv venten. Multiprogrammering[1]: Ydre enheder og multiprogrammer

Tilfældige tal. Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge.

Kursusarbejde 1 Grundlæggende Programmering. Arne Jørgensen, klasse dm032-1a

Forelæsning Uge 2 Mandag

1.1 Indledning. Features: Højintensitet LED-display. Fleksibel forsyning (12-45V). Kan placeres op til 100m fra controlleren.

Flowchart og Nassi ShneidermanN Version. Et flowchart bruges til grafisk at beskrive et forløb. Det kan fx være en microcontrollers programafvikling.

Eksamens spørgsmål i Java HTML - DataBase 3. Semester (i)

CB Retail Miniguide til SMS

Morse med micro:bit. Morse med micro:bit

I 2 C BUSSEN KØRER MED ARDUINO IND I FORÅRET

Forelæsning Uge 4 Mandag

Studiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen

Offset til terminalskærm i Java

Mircobit Kursus Lektion 4 (Du skal her vælge Lets Code Og herefter Block Editor.)

GSM SMS Modem MODEL: SA RTU-1 V1.01

Flowchart og Nassi ShneidermanN Version. Et flowchart bruges til grafisk at tegne et forløb. Det kan fx være et programforløb for en microcontroller.

Input/Output: Brugergrænseflader. dopsys

Optimering af fraværsregistrering

Seriel kommunikation

Sproget Limba. Til brug i G1 og K1. Dat1E 2003

C Programmering V1.37

Projekt rapport. for. Zigbee kommunikation

Datacard SR200 & SR300 Card Printers. Brugermanual

2. Delgennemløb af Realisationsfasen Indholdsfortegnelse

4X35 PROFIBUS-DP SYSTEM

Noter til C# Programmering Iteration

Python 3 kursus lektion 1:

Sproget Rascal (v. 2)

Forelæsning Uge 2 Mandag

Jeg har i forbindelse med it og programmering designet og udviklet et it-produkt, som kan beregne rødder i en anden gradsligning.

Kom igang med Scroll:bit

Introduktion til programmering. Af mikroprocessor Atmel ATmega328P i en Arduino Uno

Operation Manual SMS Air Conditioner Remote Controller Model No.: SR-001

Sammenlign og byt. Et eksempel på dokumentering af et program

X88. X88 er en GSM/SMS baseret fjernstyring med: 8 indgange 8 relæudgange Mulighed for temperaturføler

Eksempel: Skat i år 2000

I3PRG3+I3DTM3+I3ISY1-3. semester

Operation Manual SMS Air Conditioner Remote Controller Model No.: SR-001

FireBUS BRANDSIKRINGSAUTOMATIK For spjældsikrede og røgventilerede systemer

Ghostbusters. Introduktion. Scratch. Du skal lave et fangelegsspil med spøgelser! Arbejdsliste. Test dit Projekt. Gem dit Projekt

4X35 PROFIBUS-DP SYSTEM

Programmering I Java/C#

BRUGERVEJLEDNING FLTA

Java Programmering. En bog for begyndere. Skrevet af Henrik Kressner

Transkript:

Temeraturmåler (C-program).txt // Initialiserings-sekvens #include <stdio.h> #pragma model=medium #pragma code=0x0000 #pragma xdata=0x4000 #pragma asm=on #pragma parameters=register //#define display P4 #define keyboard P4 //--------------------------------- Definition af porte og funktioner ------------------------- bit RS at P5.0; // Definere bit Data input på port 5.0 bit RW at P5.1; // Definere bit data read (1)/write (0) på port 5.1 bit Enable at P5.2; // Definere bit enable på port 5.2 bit busy_ben at P4.7; // Definere bit busy_ben på port 4.7 bit oe_key at P5.3; // Definere bit oe_key på på port 5.3 bit clk_key at P5.5; // Definere bit clk_key på på port 5.5 bit temp at P5.4; // Definere bit tempføler på port 5.4 void wr_ins(char); void wr_data(char); void clr_scr(char); void cursor (char); void delay (char); void full_scr(); void ini_disp (); void busy_read(); void lcd_dkch(); void presence(); void wrbyte(char kode); // Definere funktion skriv instruktion // Definere funktion skriv data // Definere funktion ryd skærm // Definere funktion Sæt cursor et vilkårligt sted // Definere funktion delay // Definere funktion tekststreng // Definere funktion initialisering af display // Definere funktion // Definere funktion lær danske karakterer // Definere funktion - aflæsning af tempføler // Definere funktion til at skrive en byte char rdbyte(); // Definere funktion til at læse en byte char wr1temp(); // Definere funktion til at skrive en bit (1) char wr0temp(); // Definere funktion til at skrive en bit (0) char temperatur; char karakter; extern // Definering af extern tid extern vent60(); // Definering af extern tid extern // Definering af extern tid //--------------------------------- Danske karakterer ----------------------------------------- void lcd_dkch(void) // Lær danske karakterer char ch; // char variabel som tæller afsendte pixels const char dk_ch[]= 0x00, 0x0A, 0x00, 0x04, 0x04, 0x11, 0x0E, 0x00, // Hex koder for "smiley" 0x00, 0x00, 0x0E, 0x15, 0x15, 0x12, 0x0D, 0x00, // Hex koder for "æ" 0x00, 0x00, 0x0E, 0x13, 0x15, 0x19, 0x0E, 0x00, // Hex koder for "ø" 0x04, 0x0A, 0x0E, 0x01, 0x0F, 0x11, 0x0F, 0x00, // Hex koder for "å" 0x07, 0x0C, 0x14, 0x1F, 0x14, 0x14, 0x17, 0x00, // Hex koder for "Æ" 0x0E, 0x11, 0x13, 0x15, 0x19, 0x11, 0x0E, 0x00, // Hex koder for "Ø" 0x04, 0x0A, 0x15, 0x11, 0x1F, 0x11, 0x11, 0x00, // Hex koder for "Å" 0x06, 0x09, 0x09, 0x06, 0x00, 0x00, 0x00, 0x00 // Hex koder for "gradtegn" ; // definitionen af :-) æ ø å Æ Ø Å "gradtegn". delay(1); wr_ins(0x40); // adresse sættes til start af CG-Ram.

delay(400); ch = 0; while(ch<=63) wr_data(dk_ch[ch]); ch++; busy_read(); wr_ins(0x80); delay(400); Temeraturmåler (C-program).txt // vent til færdig. // karakter sendes. // Skriver danske karakterer // pause efter sidste lcd_data. // curser til første plads. //--------------------------------- Main program ---------------------------------------------- void main (void) int x; char y; ini_disp(); lcd_dkch(); delay(1000); cursor(0); linie //full_scr(); tekststreng) presence(); wrbyte(0x0c); wrbyte(0x01); while (1) presence(); wrbyte(0xee); for (x=1;x<=5000;x++); presence(); wrbyte(0xaa); y=rdbyte(); // Main funktion. // Initialisere display. // Indlæser danske karakterer. // Pause inden der skrives på display // Placerer cursor på første plads i anden // Udfører funktionen full_scr. (skriv // Skriv byte til config/status // Skriv data til config/status // Uføres så længe der er strøm på. // Start AD converter // Vent 1 sekund // Nu vil vi læse temperatur cursor (0); fprintf(1,"temp = %d",temperatur); // Udskriver temperatur på display //--------------------------------- Skriv instruktion til display ----------------------------- void wr_ins(char karakter) display. RS=0; RW=0; P4=karakter; Enable=1; // Funktion til at skrive instruktioner til // Register valg. // Læs/skriv. // Skriver karakter til display. //--------------------------------- Skriv data til display ------------------------------------ void wr_data(char karakter) // Funktion til at skrive data til display. switch (karakter) case 'æ': karakter = 0X01; // Hvis karakteren er æ skriv HEX 0X01.

Temeraturmåler (C-program).txt // Hvis æ hop til slut(). case 'ø': karakter = 0X02; // Hvis karakteren er ø skriv HEX 0X02. // Hvis ø hop til slut(). case 'å': karakter = 0X03; // Hvis karakteren er å skriv HEX 0X03. // Hvis å hop til slut(). case 'Æ': karakter = 0X04; // Hvis karakteren er Æ skriv HEX 0X04. // Hvis Æ hop til slut(). case 'Ø': karakter = 0X05; // Hvis karakteren er Ø skriv HEX 0X05. // Hvis Ø hop til slut(). case 'Å': karakter = 0X06; // Hvis karakteren er Å skriv HEX 0X06. // Hvis Å hop til slut(). default: ; // Hvis karakteren ikke står ovenfor karakter = karakter. RS=1; // Register valg. RW=0; // Læs/skriv. P4=karakter; // Skriver karakter til display. Enable=1; // Pause inden næste bogstav. //--------------------------------- Slet skærm ------------------------------------------------ void clr_scr (void) //Sletning af display og curser til start af skærm. char space; // Tildeler variablen space værdien af en char. for (space=0;space<40;space++) wr_ins (0X80+space); wr_data (' '); for (space=0;space<40;space++); wr_ins (0XC0+space); wr_data (' '); wr_ins (0X80); //--------------------------------- Sæt cursor et vilkårligt sted på display ------------------ void cursor (char ch) // Denne funktion sætter curser på en vilkårlig plads på // displayet. Plads 0-40 er første linie char tal; // og plads 40-80 på den anden. if (ch<40) tal=0x80+ch; wr_ins (tal); else tal=0xc0+ch-40; wr_ins (tal); //--------------------------------- Pause tid -------------------------------------------------

Temeraturmåler (C-program).txt char delay(char tid) // Funktion Delay unsigned int taller; // Tildeler variablen taller værdien af en unsigned int for (taller=0; taller <tid; taller++); // Længde på pause //--------------------------------- Tekststreng ----------------------------------------------- void full_scr (void) // Funktion til at skrive en tekststreng. const char besked[] = ""; // Her skrives en tekst. char ch=0; // Tildeler variablen ch værdien af en char. while (ch<=39) // Her skrives linie længde. wr_data(besked[ch]); // Skriver besked til display. ch++; // Flytter til næste plads efter hver karakter. //--------------------------------- Initialisering af display --------------------------------- void ini_disp() delay (65000); delay (65000); delay (20000); wr_ins (0X38); delay (41000); wr_ins (0X38); wr_ins (0x38); wr_ins (0x38); wr_ins (0x06); wr_ins (0x0F); wr_ins (0x01); delay (16400); wr_ins (0x80); // Initialisering af display. //--------------------------------- Aflæser om der er kommunikation --------------------------- void busy_read() P4 = (0xFF); RS = 0; RW = 1; Enable = 1; while (busy_ben); Enable = 0; // Aflæser om der sendes til display. // port gøres klar til indlæsning // kontrolben stilles ind // kontrolben stilles ind // kontrolben stilles ind // busy_ben aflæses kontinuert // aflæsning slut, enable sættes lav //--------------------------------- Temperaturføler - Termostat -------------------------------- void presence()

temp = 0; temp = '1'; Temeraturmåler (C-program).txt // Sætter P0.1 lav // Starter ekstern tæller i 500 millisek. // Sætter P0.1 høj while (temp==1) // Gør det så længe "temp er lig 1 //--------------------------------- Skriv 1 til DS1821 - Termostat ------------------------------ void wr1temp() temp = 0; temp = 1; vent60(); // Sætter P0.1 lav while (temp==1) //--------------------------------- Skriv 0 til DS1821 - Termostat ------------------------------- void wr0temp() temp = 0; vent60(); temp = 1; // Sætter P0.1 lav while (temp==1) //--------------------------------- Skriv Byte til DS1821 --------------------------------------- void wrbyte(char kode) char test=01; char i=0; i=0; do if ((kode&test)==test) wr1temp(); else wr0temp(); test=test*2; while(test!=0); //--------------------------------- Læs Byte fra DS1821 --------------------------------------- char rdbyte()

char test=01; char i=0; temperatur=0; Temeraturmåler (C-program).txt do temp = 0; temp = 1; if (temp==1) temperatur=temperatur test; test=test*2; else test=test*2; vent60(); while(test!=0); return temperatur;