Gyenes Károly

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


9. sz. melléklet

Az UART programozása
 
// Virtuális Terminál Dr Gyenes Károly 2020/03/22.
// Küld nagybetűket
// G1 lenyomása után ECHO mód
#include "compiler_defs.h"
// Compiler dependent macros
#include "C8051F020_defs.h"
// SFR declarations
#include "TS_vInterface.h"
// ToolStick Virtual Tools Interface
SBIT(CTS, SFR_P3, 7);
// CTS signal for UART communication
// Function Prototypes
void PORT_Init(void);
void LCD_Init(void);
void Simple_Delay(void);
// Main Routine
void main (void)
{
char char_to_send;
// Value to be sent to the virtual tools
unsigned char rx_char;
unsigned char LED_scan;
PORT_Init();
// Initialize port I/O pins
SilabsInit020();
LCD_Init();
// Initialize LCD
char_to_send = 'A';
while ((P5 & 0x01) == 1)
// Until button P5.0 is pressed:
{
TerminalWrite(char_to_send);
LCD_DataWrite(char_to_send);
char_to_send++;
if (char_to_send > 'N')
{
char_to_send = 'A';
TerminalWrite('\x0D');
// Send carriage return and line feed
TerminalWrite('\x0A');
// characters to move to new line
}
Simple_Delay();
}
// Button P5.0 was pressed; Now execute ToolStick Terminal echo code
P5 |= 0xF0;
// Switch ON all P5[7:4] LEDs
LED_scan = 0x10;
CTS = 0;
// Assert CTS to indicate ready to receive data
while (1)
// Spin forever
{
rx_char = TerminalRead ();
// Read from ToolStick Terminal
P5 = LED_scan | 0x0F;
// Light LED to show progress
LED_scan = LED_scan << 1;
// Shift for next iteration
if (LED_scan == 0x00)
LED_scan = 0x10;
if (rx_char >= 'a' && rx_char <= 'z')
rx_char += 'A' - 'a';
// Change case to upper case
TerminalWrite(rx_char);
// Write to ToolStick Terminal
}
}
// PORT_Init
void PORT_Init(void)
{
WDTCN = 0xDE;
// Disable Watchdog Timer
WDTCN = 0xAD;
P5 = 0x0F;
// Clear port P5[7:4] (Switch off LEDs).
P74OUT = 0x08;
// P5[7:4] - LEDs D1-D4, setup as push-pull outputs.
XBR2 = 0x40;
// Enable crossbar
}
// LCD_Init
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 Simple_Delay(void)
{
volatile unsigned int i;
for (i = 0; i < 40000; i++)
{
i--;
i++;
}
}
// --- End Of File ---
 

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