Gyenes Károly

Mikroszámítógépek a járműtechnikában


6. sz. melléklet

Timer0 villogtatja a négy LED-lámpát
 
#include <compiler_defs.h>
#include <c8051f020_defs.h>
typedef unsigned char byte; // Saját típusok
typedef unsigned int word;
#define SYSCLK 22118400 // External crystal oscillator frequency
#define THREL 0xB8 // Reload value for timer_0 10 ms
#define TLREL
0x00
void Port_init(void);
void Timer0_Init(void);
void Clock_init(void);
word cnt = 0;
// 10 ms counter
// -------- M A I N R O U T I N E --------
void main(void)
{
Clock_init();
// Rutin prototípus deklaráció
Port_init();
Timer0_Init();
EA = 1;
while (1);
// endless loop
}
// -------- E N D O F M A I N --------
void Clock_init(void)
{
OSCXCN = 0x67;
// Ext. Osc. (christal no divide by 2 stage)
cnt = 1000;
while (cnt--);
// wait
while ((OSCXCN & 0x80) != 0x80);
// until ready
OSCICN |= 0x08;
// ON
}
void Port_init(void)
{
WDTCN = 0xDE;
// Switch off watchdog
WDTCN = 0xAD;
P74OUT = 0x08;
// Output configuration for P4-7
P5 |= 0x0F;
P5 &= 0x0F;
}
void Timer0_Init(void)
{
CKCON &= 0xFE;
// Timer 0 clock (Bit_3) = osc/12
TMOD = 0x01;
// Timer 0 set as timer mode 1
TH0 = THREL;
TL0 = TLREL;
ET0 = 1;
// Enable Timer_0 IT
TR0 = 1;
// Start Timer_0
}
void Timer0_IT(void) interrupt 1
// Occurs at every 10 ms
{
TH0 = THREL;
TL0 = TLREL;
cnt++;
if (cnt % 50 == 0) P5 ^=0x10;
// 500 ms : LED 1 blink
if (cnt % 100 == 0) P5 ^=0x20;
// 1 s : LED 2 blink
if (cnt % 200 == 0) P5 ^=0x40;
// 2 s : LED 3 blink
if (cnt % 500 == 0)
{
P5 ^=0x80;
// 5 s : LED 4 blink
cnt = 0;
// Reset counter
}
}
// ==== End of Module====
 

Mikroszámítógépek a járműtechnikában

Tartalomjegyzék


Kiadó: Akadémiai Kiadó

Online megjelenés éve: 2021

ISBN: 978 963 454 711 2

A kötet elsősorban a BME Közlekedésmérnöki Kar mesterszakos hallgatói számára készült az azonos nevű tárgy segédleteként, de hasznos lehet a logisztika, elektrotechnika és számítástechnika témái iránt érdeklődő hallgatók számára is. A szerző azoknak a mechatronika, elektronika és számítástechnika iránt elkötelezett hallgatóknak ajánlja, akik TDK-munkát készítenek, de hasznos lehet a diplomamunkát írók és az államvizsgára felkészülők számára is.

Hivatkozás: https://mersz.hu/gyenes-mechatronika-es-mikroszamitogepek//

BibTeXEndNoteMendeleyZotero

Kivonat
fullscreenclose
printsave