full.c
来自「Source code for RFM01 fm radio receiver」· C语言 代码 · 共 59 行
C
59 行
/*--------------------------------------------------------------------- */
/* Test klawiatury matrycowej, wy渨ietlaczy LCD i LED, */
/* magistrali I2C i zegara PCF8583. Symulacja prostego terminala. */
/* Autor: Robert Krysztof */
/* WWW: http://www.8051.prv.pl */
/* E-mail: robert.krysztof@wp.pl */
/* -------------------------------------------------------------------- */
/* -------------------------------------------------------------------- */
/* Uk砤d klawiatury: */
/* [ 7 ] [ 8 ] [ 9 ] [ESC] */
/* [ 4 ] [ 5 ] [ 6 ] [ENT] */
/* [ 1 ] [ 2 ] [ 3 ] [ ^ ] */
/* [ < ] [ 0 ] [ > ] [ v ] */
/* -------------------------------------------------------------------- */
#include <avr/io.h>
#include <avr/pgmspace.h>
#include "kbd.h" // obs硊ga klawiatury
#include "lcd.h" // obs硊ga wy渨ietlacza LCD
#include "led7seg.h" // obs硊ga wy渨ietlacza LED
#include "uart.h" // obs硊ga portu szeregowego
#include "pcf8583.h" // obs硊ga zegara I2C PCF8583
/* -------------------------------------------------------------------- */
/* Deklaracje tablic i zmiennych */
/* -------------------------------------------------------------------- */
u08 ssek, sek,min,godz,dzien; /* aktualny czas */
/* -------------------------------------------------------------------- */
/* Definicje stalych i makroinstrukcji */
/* -------------------------------------------------------------------- */
#define ENT 13
#define ESC 27
#define KBD_ascii pgm_read_byte(&KBD_conv[KBD_key-1])
// makro zwracaj筩e kod ASCII wci渘i阾ego klawisza
prog_char KBD_conv[] = {'7','4','1','D','8','5','2','0','9','6','3','C',ESC,ENT,'A','B'};
// tablica przekodowuj筩a kod klawisza na kod ASCII
prog_char CURSOR[] = {ESC,'[',0};
// pocz箃kowe kody ANSI do sterownia kursorem terminala
/* -------------------------------------------------------------------- */
/* ------------- Program glowny --------------- */
/* -------------------------------------------------------------------- */
int main(void)
{
char c; // odebrany znak
UART_init(); // inicjalizacja portu szeregowego
LCD_init(); // inicjalizacja wy渨ietlacza LCD
LCD_PL_chars_init(); // polskie znaki na wy渨ietlaczu LCD
KBD_init(); // inicjalizacja klawiatury
LED7SEG_init(); // inicjalizacja wy渨ietlacza
sei(); // w彻cz obs硊g
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?