arm之LCD(键盘输入)

本程序通过内存映射技术实现LCD屏幕的控制,包括绘制点、矩形、圆形及显示数字等功能。用户可以在程序中输入一个四位数内的数字,并将其显示在LCD屏幕上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/mman.h>
#include<string.h>


int *plcd = NULL;
char numprint[4][175];
char number2[4];

char text[8][175]={
    {0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x01,0xE0,0x00,0x00,0x00,0x03,
0xC0,0x00,0x00,0x00,0x03,0x81,0xCC,0x06,0x00,0x03,0xFF,0xEF,0xFF,0x00,0x07,0x3C,
0x0E,0x0F,0x00,0x07,0x3C,0x0E,0x0F,0x00,0x0E,0x3C,0x0E,0x0F,0x00,0x1C,0x38,0x0E,
0x0F,0x00,0x00,0x38,0xEE,0x0F,0x00,0x3F,0xFF,0xFE,0x0F,0x00,0x00,0x38,0x0E,0x0F,
0x00,0x00,0x7C,0x0E,0x0F,0x00,0x00,0x7F,0x0F,0xFF,0x00,0x00,0xF7,0xCE,0x0F,0x00,
0x00,0xE1,0xEE,0x0E,0x00,0x01,0xC1,0xEC,0x00,0x00,0x03,0xE0,0xE0,0x70,0x00,0x0F,
0x7F,0xFF,0xF8,0x00,0x1C,0x70,0x00,0xF0,0x00,0x30,0x70,0x00,0xF0,0x00,0x00,0x70,
0x00,0xF0,0x00,0x00,0x70,0x00,0xF0,0x00,0x00,0x70,0x00,0xF0,0x00,0x00,0x7F,0xFF,
0xF0,0x00,0x00,0x70,0x00,0xF0,0x00,0x00,0x70,0x00,0xF0,0x00,0x00,0x70,0x00,0xF0,
0x00,0x00,0x70,0x00,0xF0,0x00,0x00,0x7F,0xFF,0xF0,0x00,0x00,0x70,0x00,0xF0,0x00,
0x00,0x70,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0xF8,0x1C,0x00,0x00,0x00,
0xF8,0x1F,0x00,0x00,0x01,0xE0,0x1E,0x18,0x00,0x03,0xCC,0x1E,0x3C,0x00,0x03,0x87,
0x1E,0x7E,0x00,0x07,0x03,0x9E,0xF0,0x00,0x0E,0x03,0xDF,0x80,0x00,0x3F,0xFF,0xFE,
0x03,0x00,0x1F,0x81,0xFE,0x03,0x00,0x18,0x00,0xDE,0x03,0x00,0x00,0x00,0x1E,0x07,
0x00,0x0C,0x07,0x0F,0xFF,0x80,0x0F,0xFF,0x8F,0xFF,0x00,0x0E,0x07,0x00,0x00,0x00,
0x0E,0x07,0x00,0x00,0x00,0x0E,0x07,0x1C,0x00,0x00,0x0F,0xFF,0x1E,0x1C,0x00,0x0E,
0x07,0x1C,0x1E,0x00,0x0E,0x07,0x1C,0x3E,0x00,0x0E,0x07,0x1C,0xF8,0x00,0x0E,0x07,
0x1D,0xE0,0x00,0x0F,0xFF,0x1F,0x80,0x00,0x0E,0x07,0x1E,0x00,0x00,0x0E,0x07,0x1C,
0x03,0x00,0x0E,0x07,0x1C,0x03,0x00,0x0E,0x07,0x1C,0x03,0x00,0x0E,0x07,0x1C,0x03,
0x80,0x0E,0x07,0x1E,0x03,0x80,0x0E,0x7F,0x1F,0xFF,0xC0,0x0E,0x1F,0x0F,0xFF,0x00,
0x0C,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
},
    {0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x01,0xE0,0x00,0x00,0x00,
0x00,0xF0,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x06,0x00,0x60,0x07,0x00,0x07,0xFF,
0xFF,0xFF,0x80,0x0E,0x00,0x00,0x0F,0x80,0x1E,0x00,0x00,0x0E,0x00,0x3E,0x00,0x01,
0xFC,0x00,0x03,0xFF,0xFF,0xF0,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x07,0x80,0x00,
0x00,0x00,0x0F,0x80,0x70,0x00,0x00,0x3D,0xC0,0xF8,0x00,0x00,0x78,0xE1,0xE0,0x00,
0x01,0xE1,0xE7,0x80,0x00,0x07,0x83,0xFF,0x00,0x00,0x1E,0x07,0xFB,0x00,0x00,0x30,
0x0E,0x3B,0x00,0x00,0x00,0x3C,0x7B,0x80,0x00,0x00,0x78,0xFD,0x80,0x00,0x01,0xE1,
0xFD,0xC0,0x00,0x07,0x83,0xFC,0xE0,0x00,0x3C,0x07,0x9C,0xF0,0x00,0x30,0x0F,0x1C,
0x78,0x00,0x00,0x3C,0x1C,0x3E,0x00,0x00,0x70,0x3C,0x1F,0xC0,0x01,0xE0,0x3C,0x0E,
0x00,0x0F,0x0C,0x3C,0x00,0x00,0x3C,0x07,0xF8,0x00,0x00,0x60,0x01,0xF0,0x00,0x00,
0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
},
    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x1C,0x00,0x03,
0xFF,0xFF,0xFE,0x00,0x03,0x80,0x00,0x1C,0x00,0x03,0x80,0x00,0x1C,0x00,0x03,0x80,
0x00,0x1C,0x00,0x03,0x80,0x00,0x1C,0x00,0x03,0xFF,0xFF,0xFC,0x00,0x03,0x80,0x00,
0x1C,0x00,0x03,0x80,0x3C,0x18,0x00,0x03,0x80,0x3C,0x00,0x00,0x03,0x80,0x38,0x00,
0x00,0x03,0x80,0x38,0x02,0x00,0x03,0x80,0x38,0x07,0x00,0x03,0xFF,0xFF,0xFF,0xC0,
0x03,0x80,0x38,0x00,0x00,0x03,0x80,0x38,0x00,0x00,0x03,0x80,0x38,0x00,0x00,0x07,
0x80,0x38,0x00,0x00,0x07,0x80,0x38,0x00,0x00,0x07,0x38,0x38,0x38,0x00,0x07,0x3F,
0xFF,0xFC,0x00,0x07,0x3C,0x00,0x78,0x00,0x07,0x3C,0x00,0x78,0x00,0x0E,0x3C,0x00,
0x78,0x00,0x0E,0x3C,0x00,0x78,0x00,0x0C,0x3C,0x00,0x78,0x00,0x1C,0x3C,0x00,0x78,
0x00,0x18,0x3F,0xFF,0xF8,0x00,0x38,0x3C,0x00,0x78,0x00,0x70,0x3C,0x00,0x70,0x00,
0x60,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
},
    {0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x03,0xE0,0x1C,0x00,0x00,0x03,
0xC0,0x0F,0x00,0x00,0x03,0xC0,0x07,0x80,0x00,0x03,0xC0,0x07,0x80,0x00,0x03,0xC1,
0x80,0x03,0x00,0x03,0xFB,0xFF,0xFF,0xC0,0x7F,0xFF,0x80,0x07,0x00,0x03,0xC7,0x80,
0x0E,0x00,0x03,0xCF,0x38,0x0C,0x00,0x03,0xC0,0x3F,0xE0,0x00,0x03,0xC0,0x78,0x78,
0x00,0x03,0xC0,0xF0,0x3C,0x00,0x03,0xCD,0xE0,0x1E,0x00,0x03,0xF9,0xC0,0x0F,0x00,
0x03,0xE3,0x80,0x0F,0x00,0x07,0xCE,0x00,0x06,0x00,0x3F,0xCC,0x00,0x3C,0x00,0x7F,
0xC3,0xFF,0xFE,0x00,0x7B,0xC0,0x0F,0x00,0x00,0x03,0xC0,0x0F,0x00,0x00,0x03,0xC0,
0x0F,0x00,0x00,0x03,0xC0,0x0F,0x00,0x00,0x03,0xC0,0x0F,0x00,0x00,0x03,0xC0,0x0F,
0x00,0x00,0x03,0xC0,0x0F,0x00,0x00,0x03,0xC0,0x0F,0x03,0x00,0x03,0xC0,0x0F,0x07,
0x80,0x33,0xDF,0xFF,0xFF,0xC0,0x3F,0xC0,0x00,0x00,0x00,0x07,0x80,0x00,0x00,0x00,
0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x0E,0x00,0x00,0x3C,0x00,0x0F,0x80,0x00,
0x38,0x00,0x0F,0x00,0x06,0x38,0x00,0x07,0x00,0x0F,0xB8,0x00,0x07,0x00,0x0F,0x38,
0x03,0x07,0x00,0x0E,0x39,0xE3,0xC7,0x00,0x1F,0xFF,0xF3,0xC7,0x00,0x1C,0x38,0x03,
0xC7,0x00,0x18,0x38,0x03,0xC7,0x00,0x38,0x38,0x03,0xC7,0x00,0x30,0x38,0x73,0xC7,
0x00,0x7F,0xFF,0xFF,0xC7,0x00,0x00,0x38,0x03,0xC7,0x00,0x00,0x38,0x03,0xC7,0x00,
0x18,0x38,0xE3,0xC7,0x00,0x1F,0xFF,0xF3,0xC7,0x00,0x1E,0x38,0xE3,0xC7,0x00,0x1E,
0x38,0xE3,0xC7,0x00,0x1E,0x38,0xE3,0xC7,0x00,0x1E,0x38,0xE3,0xC7,0x00,0x1E,0x38,
0xE3,0xC7,0x00,0x1E,0x38,0xE3,0xC7,0x00,0x1E,0x38,0xE3,0x07,0x00,0x1E,0x3E,0xE0,
0x07,0x00,0x1E,0x3B,0xE0,0x07,0x00,0x1E,0x39,0xC0,0x07,0x00,0x18,0x38,0x00,0x07,
0x00,0x00,0x38,0x01,0xCF,0x00,0x00,0x38,0x00,0xFF,0x00,0x00,0x38,0x00,0x1E,0x00,
0x00,0x30,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x03,0xFC,0x00,0x00,
0x00,0x7F,0xFC,0x00,0x01,0xFF,0xF0,0x00,0x00,0x07,0x80,0xF0,0x00,0x00,0x00,0x01,
0xF8,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x07,0x00,0xE0,0x00,0x00,0x0E,0x01,
0xF0,0x00,0x00,0x3C,0x03,0xF0,0x00,0x00,0xF0,0x07,0x80,0x00,0x01,0xFF,0xFE,0x00,
0x00,0x00,0xF8,0x3C,0x00,0x00,0x00,0xC0,0xF0,0x00,0x00,0x00,0x03,0xC1,0xC0,0x00,
0x00,0x0F,0x00,0xF0,0x00,0x00,0x3E,0x00,0x7C,0x00,0x00,0xF8,0x01,0xFE,0x00,0x03,
0xFF,0xFF,0x1E,0x00,0x03,0xF8,0x70,0x1E,0x00,0x01,0x80,0x70,0x0E,0x00,0x00,0x18,
0x76,0x00,0x00,0x00,0x1C,0x77,0x80,0x00,0x00,0x3E,0x71,0xE0,0x00,0x00,0x78,0x70,
0xF8,0x00,0x00,0xF0,0x70,0x7E,0x00,0x01,0xE0,0x70,0x3F,0x00,0x03,0x80,0x70,0x1F,
0x00,0x0F,0x0E,0x70,0x0F,0x00,0x1C,0x03,0xF0,0x07,0x00,0x70,0x01,0xF0,0x07,0x00,
0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
},
    {0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x1C,0x00,0x00,0x00,0xF0,0x0F,0x00,0x00,0x01,
0xF0,0x07,0x80,0x00,0x01,0xE0,0x07,0x82,0x00,0x03,0xC0,0x03,0x87,0x00,0x03,0x87,
0xFF,0xFF,0x80,0x07,0x80,0x0E,0x00,0x00,0x07,0x1C,0x0F,0x80,0x00,0x0E,0x1F,0x1E,
0x00,0x00,0x1C,0x3C,0x1C,0x00,0x00,0x3C,0x78,0x38,0xE0,0x00,0x3F,0xF8,0x70,0x78,
0x00,0x3C,0xF0,0xE0,0x3E,0x00,0x00,0xE1,0xC0,0x1F,0x00,0x01,0xC3,0xFF,0xFF,0x00,
0x03,0x83,0xF8,0xE7,0x00,0x07,0x01,0xBC,0xE3,0x00,0x0E,0x06,0x3C,0xE0,0x00,0x3F,
0xFC,0x3C,0xE0,0x00,0x3F,0xC0,0x3C,0xE0,0x00,0x1E,0x00,0x3C,0xE0,0x00,0x08,0x00,
0x3C,0xE0,0x00,0x00,0x00,0x38,0xE0,0x00,0x00,0x1E,0x38,0xE0,0x00,0x01,0xF8,0x78,
0xE3,0x80,0x3F,0xC0,0x78,0xE3,0x80,0x3F,0x00,0x70,0xE3,0x80,0x3C,0x00,0xE0,0xE3,
0x80,0x18,0x01,0xC0,0xE3,0x80,0x00,0x07,0x80,0xFF,0xC0,0x00,0x0E,0x00,0xFF,0x80,
0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
}
};

//0 ,1,2,3,4,5,6,7,8,9
char number[10][175]={
    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x01,0xE7,0x80,0x03,0xC3,
0xC0,0x07,0x81,0xE0,0x0F,0x80,0xF0,0x0F,0x00,0xF0,0x1F,0x00,0xF8,0x1E,0x00,0xF8,
0x3E,0x00,0x78,0x3E,0x00,0x7C,0x3E,0x00,0x7C,0x3E,0x00,0x7C,0x3E,0x00,0x7C,0x3E,
0x00,0x7C,0x3E,0x00,0x7C,0x3E,0x00,0x7C,0x3E,0x00,0x7C,0x3E,0x00,0x7C,0x3E,0x00,
0x7C,0x3E,0x00,0x7C,0x3E,0x00,0x7C,0x3E,0x00,0x7C,0x3E,0x00,0x7C,0x3E,0x00,0x78,
0x1E,0x00,0xF8,0x1F,0x00,0xF8,0x0F,0x00,0xF0,0x0F,0x81,0xF0,0x07,0x81,0xE0,0x03,
0xC3,0xC0,0x01,0xE7,0x80,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x1C,0x00,0x00,0x7C,
0x00,0x07,0xFC,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,
0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,
0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,
0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,
0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,
0x3E,0x00,0x00,0x7F,0x00,0x07,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x03,0xC7,0xC0,0x07,0x01,
0xE0,0x0E,0x00,0xF0,0x1E,0x00,0xF8,0x1E,0x00,0xF8,0x3E,0x00,0x78,0x3E,0x00,0x78,
0x3F,0x00,0x78,0x3F,0x00,0x78,0x1F,0x00,0xF8,0x00,0x00,0xF8,0x00,0x00,0xF0,0x00,
0x01,0xF0,0x00,0x03,0xE0,0x00,0x03,0xC0,0x00,0x07,0x80,0x00,0x0F,0x00,0x00,0x1E,
0x00,0x00,0x3C,0x00,0x00,0x78,0x00,0x00,0xF0,0x00,0x01,0xE0,0x00,0x03,0xC0,0x00,
0x07,0x80,0x1C,0x07,0x00,0x1C,0x0E,0x00,0x38,0x1C,0x00,0x38,0x3C,0x00,0x78,0x3F,
0xFF,0xF8,0x3F,0xFF,0xF8,0x3F,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x07,0x87,0x80,0x0F,0x03,
0xC0,0x1E,0x01,0xE0,0x1E,0x01,0xF0,0x1E,0x01,0xF0,0x1F,0x00,0xF0,0x1F,0x00,0xF0,
0x1E,0x00,0xF0,0x00,0x00,0xF0,0x00,0x01,0xF0,0x00,0x01,0xF0,0x00,0x03,0xE0,0x00,
0x03,0xC0,0x00,0x0F,0x00,0x00,0xFE,0x00,0x00,0x07,0x80,0x00,0x01,0xE0,0x00,0x00,
0xF0,0x00,0x00,0xF8,0x00,0x00,0xF8,0x00,0x00,0x78,0x00,0x00,0x7C,0x1E,0x00,0x7C,
0x3F,0x00,0x7C,0x3F,0x00,0x7C,0x3F,0x00,0x78,0x3E,0x00,0xF8,0x1E,0x00,0xF0,0x0F,
0x01,0xE0,0x07,0x87,0xC0,0x01,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x00,0x03,0xC0,0x00,0x07,
0xC0,0x00,0x0F,0xC0,0x00,0x0F,0xC0,0x00,0x1F,0xC0,0x00,0x3F,0xC0,0x00,0x3F,0xC0,
0x00,0x77,0xC0,0x00,0x77,0xC0,0x00,0xE7,0xC0,0x01,0xC7,0xC0,0x01,0xC7,0xC0,0x03,
0x87,0xC0,0x07,0x07,0xC0,0x07,0x07,0xC0,0x0E,0x07,0xC0,0x1E,0x07,0xC0,0x1C,0x07,
0xC0,0x38,0x07,0xC0,0x38,0x07,0xC0,0x7F,0xFF,0xFE,0x7F,0xFF,0xFE,0x00,0x07,0xC0,
0x00,0x07,0xC0,0x00,0x07,0xC0,0x00,0x07,0xC0,0x00,0x07,0xC0,0x00,0x07,0xC0,0x00,
0x07,0xC0,0x00,0x07,0xE0,0x00,0x7F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xF8,0x0F,0xFF,0xF8,0x0F,0xFF,
0xF8,0x0E,0x00,0x00,0x0E,0x00,0x00,0x0E,0x00,0x00,0x0E,0x00,0x00,0x0E,0x00,0x00,
0x0E,0x00,0x00,0x0E,0x00,0x00,0x0E,0x00,0x00,0x0E,0x7F,0x00,0x0D,0xFF,0xC0,0x0F,
0xC3,0xE0,0x1F,0x01,0xF0,0x1E,0x00,0xF8,0x1E,0x00,0xF8,0x00,0x00,0x78,0x00,0x00,
0x7C,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x7C,0x1E,0x00,0x7C,0x3F,0x00,0x7C,
0x3F,0x00,0x78,0x3F,0x00,0x78,0x3E,0x00,0xF8,0x1E,0x00,0xF0,0x1E,0x01,0xF0,0x0E,
0x01,0xE0,0x07,0x87,0xC0,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xC0,0x00,0xF1,0xE0,0x03,0xC1,
0xF0,0x07,0x81,0xF8,0x07,0x01,0xF8,0x0F,0x00,0xF0,0x1F,0x00,0x00,0x1E,0x00,0x00,
0x1E,0x00,0x00,0x3E,0x00,0x00,0x3E,0x00,0x00,0x3E,0x00,0x00,0x3E,0x3F,0x80,0x3E,
0xFF,0xE0,0x3F,0xE3,0xF0,0x3F,0x80,0xF8,0x3F,0x00,0xF8,0x3F,0x00,0x7C,0x3E,0x00,
0x7C,0x3E,0x00,0x7C,0x3E,0x00,0x3C,0x3E,0x00,0x3C,0x3E,0x00,0x3C,0x3E,0x00,0x3C,
0x3E,0x00,0x7C,0x1E,0x00,0x7C,0x1F,0x00,0x78,0x0F,0x00,0x78,0x0F,0x80,0xF0,0x07,
0xC0,0xE0,0x03,0xE3,0xC0,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFC,0x1F,0xFF,0xFC,0x1F,0xFF,
0xF8,0x1F,0x00,0x38,0x1C,0x00,0x70,0x1C,0x00,0xE0,0x38,0x00,0xE0,0x38,0x01,0xC0,
0x00,0x01,0xC0,0x00,0x03,0x80,0x00,0x03,0x80,0x00,0x07,0x80,0x00,0x07,0x00,0x00,
0x0F,0x00,0x00,0x0E,0x00,0x00,0x1E,0x00,0x00,0x1E,0x00,0x00,0x3C,0x00,0x00,0x3C,
0x00,0x00,0x3C,0x00,0x00,0x7C,0x00,0x00,0x78,0x00,0x00,0x78,0x00,0x00,0xF8,0x00,
0x00,0xF8,0x00,0x00,0xF8,0x00,0x00,0xF8,0x00,0x00,0xF8,0x00,0x00,0xF8,0x00,0x00,
0xF8,0x00,0x00,0xF8,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x07,0xC3,0xC0,0x0F,0x00,
0xE0,0x1E,0x00,0xF0,0x1E,0x00,0x78,0x3C,0x00,0x78,0x3C,0x00,0x78,0x3C,0x00,0x7C,
0x3E,0x00,0x78,0x3E,0x00,0x78,0x1F,0x00,0x78,0x1F,0x80,0xF0,0x0F,0xE1,0xE0,0x07,
0xFB,0xC0,0x01,0xFF,0x80,0x01,0xFF,0x80,0x07,0xBF,0xC0,0x0F,0x0F,0xE0,0x1E,0x03,
0xF0,0x3E,0x01,0xF8,0x3C,0x00,0xF8,0x3C,0x00,0x7C,0x7C,0x00,0x7C,0x78,0x00,0x3C,
0x78,0x00,0x3C,0x7C,0x00,0x3C,0x3C,0x00,0x78,0x3C,0x00,0x78,0x1E,0x00,0x70,0x0F,
0x00,0xE0,0x07,0xC3,0xC0,0x01,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
    {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFE,0x00,0x07,0xC7,0x80,0x0F,0x01,
0xE0,0x1E,0x01,0xE0,0x1E,0x00,0xF0,0x3E,0x00,0xF8,0x3C,0x00,0x78,0x3C,0x00,0x78,
0x7C,0x00,0x7C,0x7C,0x00,0x7C,0x7C,0x00,0x7C,0x7C,0x00,0x7C,0x7C,0x00,0x7C,0x3C,
0x00,0xFC,0x3E,0x00,0xFC,0x3E,0x01,0xFC,0x1F,0x03,0xFC,0x1F,0x8F,0xFC,0x0F,0xFF,
0x7C,0x03,0xFC,0x7C,0x00,0x00,0x7C,0x00,0x00,0xF8,0x00,0x00,0xF8,0x00,0x00,0xF8,
0x00,0x00,0xF0,0x00,0x01,0xF0,0x0F,0x01,0xE0,0x1F,0x01,0xE0,0x1F,0x03,0xC0,0x1F,
0x07,0x80,0x0F,0x9F,0x00,0x03,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}    
};

/*
******************************************************
*       在点坐标(x,y)画一个颜色为color的点
******************************************************
*/
void lcd_draw_point(int x, int y, int color)
{
    *(plcd + x + 800*y) = color;
}

/*
******************************************************
*           清屏或者初始化LCD屏幕
******************************************************
*/
void lcd_WR_color()
{
    //将整个lcd清除成白色
    //从坐标为0,0点的位置开始画一个800*480的矩形
    int x,y;
    for (y = 0; y < 480; y++)
    {
        for (x = 0; x < 800; x++)
            lcd_draw_point(x, y, 0xffffffff);
    }
}


/*
*******************************************************
*   在坐标(X0,Y0)处画一个显示一个宽度为width,
*   高度为hight,颜色为color的矩形    
******************************************************
*/
void lcd_draw_rectangle(int x,int y,int w,int h,int color)
{
    int i,j;
    for (i= y; i < y+h; i++)  //行
    {
        for (j = x; j <x+w; j++)
            lcd_draw_point(j, i, color);
    }
}


/*  
*******************************************************
*       在(X0,Y0)处画一个显示一个半径为r的空心圆
******************************************************
*/
void lcd_draw_circle(int x,int y,int r,int color)
{
    int i,j;
    int s;
    for(i=0;i<480;i++)
    {
        s=0;
        for(j=0;j<800;j++)
        {
            s=(y-i)*(y-i)+(x-j)*(x-j);
            if(s>=((r-1)*(r-1))&&s<=((r+1)*(r+1)))
                lcd_draw_point(j, i, color);
        }
    }
}


/*
*******************************************************
*       在(X0,Y0)处画一个显示一个半径为r的实心圆
******************************************************
*/
void lcd_draw_disc(int x,int y,int r,int color)
{
    int i,j;
    for(i=0;i<480;i++)
    {
        for(j=0;j<800;j++)
        {
            if((j-x)*(j-x)+(i-y)*(i-y)<=r*r)
                    lcd_draw_point(i, j, color);
        }
    }
}

/*
*******************************************************
*               显示汉字
*******************************************************
*/
void lcd_draw_word(int X, int Y, char (*ch)[175], int len, int w, int color)
{
    int i,j,k;
    for(k=0; k<8; k++)
    {
        for(i=0;i<len;i++)
        {
            for(j=7;j>0;j--)
            {
                if(ch[k][i] >>j&1)
                {
                    lcd_draw_point(7-j+8*(i%(len/w))+X, i/(len/w)+Y, color);
                }
            }
        }
        X+=45;
    }
}



/*
*******************************************************
*           输入一个数字(四位数以内,包含四位数)
*******************************************************
*/
void number_input()
{
    //输入一个数字
    int num,i=0;
    //char chnum[4];
    scanf("%d",&num);
    if(num/1000>0)      //判断是否是四位数
    {
         number2[0]=(num/1000)%10+48;   //千位
         number2[1]=(num/100)%10+48;    //百位
         number2[2]=(num/10)%10+48;     //十位
         number2[3]=num%10+48;          //个位
    }
    else if(num/100>0)  //判断是否是三位数
    {
         number2[0]=(num/100)%10+48;    //百位
         number2[1]=(num/10)%10+48;     //十位
         number2[2]=num%10+48;          //个位
    }
    else if(num/10>0)   //判断是否是两位数
    {
         number2[0]=(num/10)%10+48;     //十位
         number2[1]=num%10+48;          //个位
    }
    else if(num>0)      //判断是否是个位数
    {
         number2[0]=num%10+48;
    }
    else{
        printf("输入的数字不是大于0的整数\n");
    }

    //return chnum;
}


/*
*******************************************************
*           显示出该数字
*******************************************************
*/
void lcd_draw_number()
{
    int i=0,j=0;

    //*************
    number_input();


    //判断该数字
    for(i=0;i<sizeof(number2);i++)
    {
        if(number2[i]=='0')
            for(j=0;j<175;j++)
                numprint[i][j]=number[0][j];        //0

        else if(number2[i]=='1')
            for(j=0;j<175;j++)
                numprint[i][j]=number[1][j];        //1

        else if(number2[i]=='2')
            for(j=0;j<175;j++)
                numprint[i][j]=number[2][j];        //2

        else if(number2[i]=='3')
            for(j=0;j<175;j++)
                numprint[i][j]=number[3][j];        //3

        else if(number2[i]=='4')
            for(j=0;j<175;j++)
                numprint[i][j]=number[4][j];        //4

        else if(number2[i]=='5')
            for(j=0;j<175;j++)
                numprint[i][j]=number[5][j];        //5

        else if(number2[i]=='6')
            for(j=0;j<175;j++)
                numprint[i][j]=number[6][j];        //6

        else if(number2[i]=='7')
            for(j=0;j<175;j++)
                numprint[i][j]=number[7][j];        //7

        else if(number2[i]=='8')
            for(j=0;j<175;j++)
                numprint[i][j]=number[8][j];        //8

        else if(number2[i]=='9')
            for(j=0;j<175;j++)
                numprint[i][j]=number[9][j];        //9
        else
            for(j=0;j<175;j++)
                numprint[i][j]=' ';
    }

    lcd_draw_word(100, 40, numprint, 175, 50, 0);       //打印数字

}



/*
*******************************************************
*           主函数
*******************************************************
*/
int main(int argc, char *argv[])
{
    //打开LCD
    int fd;

    fd = open("/dev/fb0", O_RDWR);
    //if (fd == -1)
    if (-1 == fd)
    {
        perror("open lcd error");
        return 0;
    }

    //内存映射
    //把整个LCD映射到内存中,plcd就指向了映射的内存的首///地址=> plcd 指向了lcd的第0个像素点
    //我们在程序中操作plcd这个指针就相当于操作lcd了
    plcd = mmap(NULL, 800*480*4,PROT_READ | PROT_WRITE,MAP_SHARED,fd,0);

    //屏幕
    int color[480][800];

    //lcd  初始化白色屏幕
     lcd_WR_color();


    //1、在lcd的坐标为50,50的位置开始 画一个50*50的矩形
    //lcd_draw_rectangle(50,50,50,50,0x00fef0ef);

    //2、在lcd的坐标为200,200的位置开始,画一个实心圆半径80
    //lcd_draw_disc(200,200,80,0xadbc00ff);

    //3、在lcd的坐标为400,200的位置开始,画一个空心圆半径80
    //lcd_draw_circle(400,400,80,0);

    //4、打印汉字 智能家居控制系统
    //lcd_draw_word(100, 40, text, 175, 35, 0);

    //5、在键盘上输入一个数字并显示
    lcd_draw_number();


    close(fd);

    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值