Mikroszámítógépek a járműtechnikában
8. sz. melléklet
A programbillentyű kezelést valósít meg// 4x4 Key (P1) to Virtual LCD Dr Gyenes Károly 2020/03/22. | |
#include "compiler_defs.h" | // Compiler dependent macros |
#include "C8051F020_defs.h" | // SFR declarations |
#include "TS_vInterface.h" | // ToolStick Virtual Tools Interface |
typedef unsigned char byte; | |
typedef unsigned int word; | |
// Function Prototypes | |
void PORT_Init(void); | |
void LCD_Init(void); |
|
void Delay(void); |
|
byte getkey(void); |
|
// Main Routine | |
void main (void) |
|
{ | |
byte b=0; |
// Segéd változó |
PORT_Init(); |
|
SilabsInit020(); |
|
LCD_Init(); |
|
P1MDOUT = 0xF0; |
// P1.0 .. P1.3 IN; P1.4..P1.7 Push-pull OUT |
P1 = 0x0F; |
|
while (1) | |
{ | |
b = getkey(); |
|
LCD_DataWrite (b); | |
Delay(); |
|
} | |
} | |
void PORT_Init(void) |
|
{ | |
WDTCN = 0xDE; | // Disable Watchdog Timer |
WDTCN = 0xAD; |
|
P5 = 0x0F; |
|
P74OUT = 0x08; |
// P5[7:4] - LEDs D1-D4 |
XBR2 = 0x40; | // Enable crossbar |
} | |
void LCD_Init(void) |
|
{ | |
LCD_ControlWrite(0x0C); | // Display ON, Cursor OFF |
LCD_ControlWrite(0x01); | // Clear LCD |
LCD_ControlWrite(0x06); | // Entry mode increment without shift |
} | |
void Delay(void) |
|
{ | |
volatile unsigned long i,j; | |
for (i=0;i<100;i++) | |
for(j=0;j<1000;j++); | |
} | |
byte getkey(void) |
|
{ | |
byte rch=0; |
// Lokális segédváltozó |
P1MDOUT = 0xF0; |
// P1.0 .. P1.3 IN; P1.4..P1.7 Push-pull OUT |
P1 = 0x0F; |
// Outs = 0 |
while (P1 == 0x0F); | // Vár egy gomblenyomást |
if (P1 != 0x0F) |
// Gomb lenyomás történt |
{ | |
P1MDOUT = 0x70; | // Oszlop D7 = 0 |
P1 = 0x7F; |
|
if (P1 != 0x7F) rch= P1; | |
else | |
{ | |
P1MDOUT = 0xB0; | // Oszlop D6 = 0 |
P1 = 0xBF; |
|
if (P1 != 0xBF) rch= P1; | |
else |
|
{ |
|
P1MDOUT = 0xD0; | // Oszlop D5 = 0 |
P1 = 0xDF; | // Outs = 1 |
if (P1 != 0xDF) rch= P1; | |
else |
|
{ |
|
P1MDOUT = 0xE0; | // Oszlop D4 = 0 |
P1 = 0xEF; | // Outs = 1 |
if (P1 != 0xEF) rch= P1; | |
} | |
} |
|
} | |
} | |
P1MDOUT = 0x0F; |
|
P1 = 0x0F; |
|
while (P1 != 0x0F); | // Vár a felengedésre |
switch (rch) |
// Dekódolás |
{ | |
case 238 : rch = '1'; break; | |
case 237 : rch = '2'; break; | |
case 235 : rch = '3'; break; | |
case 231 : rch = 'A'; break; | |
case 222 : rch = '4'; break; | |
case 221 : rch = '5'; break; | |
case 219 : rch = '6'; break; | |
case 215 : rch = 'B'; break; | |
case 190 : rch = '7'; break; | |
case 189 : rch = '8'; break; | |
case 187 : rch = '9'; break; | |
case 183 : rch = 'C'; break; | |
case 126 : rch = '*'; break; | |
case 125 : rch = '0'; break; | |
case 123 : rch = '#'; break; | |
case 119 : rch = 'D'; break; | |
default: rch = 0; |
|
} | |
return(rch); |
|
} | |
// End Of File |
Tartalomjegyzék
- Mikroszámítógépek a járműtechnikában
- Impresszum
- Köszönetnyilvánítás
- 1. Ajánlás
- 2. Bevezetés
- 3. A számítástechnika fejlődése (történeti áttekintés)
- 4. Mikroszámítógép-generációk
- 5. Integrált áramkör előállítása
- 6. Aritmetikai műveletek a mikroszámítógépekben
- 7. Az analóg jelek átalakítása
- 8. Kommunikáció a mikroszámítógéppel
- 9. A mikroszámítógép hardverfelépítése
- 10. Az utasítások felépítése
- 11. Megszakítások
- 12. A programfejlesztő környezet
- 13. A mikroszámítógépek programozása
- 14. Az assembler program készítése
- 15. C program készítése
- 16. Az Arduino mikrogép
- 17. Mellékletek
- 1. sz. melléklet • Az ütemjel-generáló assembler program forráskódja
- 2. sz. melléklet • A program G1 gomb ismételt lenyomására ki-be kapcsolja a LED1 lámpát
- 3. sz. melléklet • A program 1 sec idővel villogtatja LED1 lámpát
- 4. sz. melléklet • Megszakítás kiváltása
- 5. sz. melléklet • A/D konverzió
- 6. sz. melléklet • Timer0 villogtatja a négy LED-lámpát
- 7. sz. melléklet • A program a processzor hőmérsékletét méri és a virtuális LCD-re írja
- 8. sz. melléklet • A programbillentyű kezelést valósít meg
- 9. sz. melléklet • Az UART programozása
- 10. sz. melléklet • D/A konverter virtuális oszcilloszkópra
- 11. sz. melléklet • PWM jel generálása
- 12. sz. melléklet • Switch konvertálása decimális formába
- 13. sz. melléklet • Az Arduino szintaktikája
- 14. sz. melléklet • Az Arduino beépített függvényei
- 1. sz. melléklet • Az ütemjel-generáló assembler program forráskódja
- 18. Példatár
- 19. Irodalom
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