STM32驱动_NOKIA5110

news/2024/12/4 17:34:21/

文章目录

  • english_6x8_pixel.h
  • write_chinese_string_pixel.h
  • nokia_5110.h
  • nokia_5110.c
  • main.c

english_6x8_pixel.h

  english_6x8_pixel.h如下:

const unsigned char font6x8[][6] = {{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, // sp{ 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 }, // !{ 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 }, // "{ 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 }, // #{ 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, // ${ 0x00, 0x62, 0x64, 0x08, 0x13, 0x23 }, // %{ 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 }, // &{ 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 }, // '{ 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00 }, // ({ 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 }, // ){ 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 }, // *{ 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 }, // +{ 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 }, // ,{ 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 }, // -{ 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 }, // .{ 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 }, // /{ 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E }, // 0{ 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 }, // 1{ 0x00, 0x42, 0x61, 0x51, 0x49, 0x46 }, // 2{ 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 }, // 3{ 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 }, // 4{ 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 }, // 5{ 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 }, // 6{ 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 }, // 7{ 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 }, // 8{ 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E }, // 9{ 0x00, 0x00, 0x36, 0x36, 0x00, 0x00 }, // :{ 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 }, // ;{ 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 }, // <{ 0x00, 0x14, 0x14, 0x14, 0x14, 0x14 }, // ={ 0x00, 0x00, 0x41, 0x22, 0x14, 0x08 }, // >{ 0x00, 0x02, 0x01, 0x51, 0x09, 0x06 }, // ?{ 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E }, // @{ 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C }, // A{ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 }, // B{ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22 }, // C{ 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C }, // D{ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 }, // E{ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 }, // F{ 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A }, // G{ 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F }, // H{ 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 }, // I{ 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01 }, // J{ 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 }, // K{ 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 }, // L{ 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F }, // M{ 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F }, // N{ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E }, // O{ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 }, // P{ 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E }, // Q{ 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46 }, // R{ 0x00, 0x46, 0x49, 0x49, 0x49, 0x31 }, // S{ 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 }, // T{ 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F }, // U{ 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F }, // V{ 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F }, // W{ 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 }, // X{ 0x00, 0x07, 0x08, 0x70, 0x08, 0x07 }, // Y{ 0x00, 0x61, 0x51, 0x49, 0x45, 0x43 }, // Z{ 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00 }, // [{ 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55 }, // 55{ 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00 }, // ]{ 0x00, 0x04, 0x02, 0x01, 0x02, 0x04 }, // ^{ 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 }, // _{ 0x00, 0x00, 0x01, 0x02, 0x04, 0x00 }, // '{ 0x00, 0x20, 0x54, 0x54, 0x54, 0x78 }, // a{ 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38 }, // b{ 0x00, 0x38, 0x44, 0x44, 0x44, 0x20 }, // c{ 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F }, // d{ 0x00, 0x38, 0x54, 0x54, 0x54, 0x18 }, // e{ 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02 }, // f{ 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C }, // g{ 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78 }, // h{ 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00 }, // i{ 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00 }, // j{ 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00 }, // k{ 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00 }, // l{ 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78 }, // m{ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78 }, // n{ 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 }, // o{ 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18 }, // p{ 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC }, // q{ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08 }, // r{ 0x00, 0x48, 0x54, 0x54, 0x54, 0x20 }, // s{ 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20 }, // t{ 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C }, // u{ 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C }, // v{ 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C }, // w{ 0x00, 0x44, 0x28, 0x10, 0x28, 0x44 }, // x{ 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C }, // y{ 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44 }, // z{ 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 }  // horiz lines
};

write_chinese_string_pixel.h

  write_chinese_string_pixel.h如下:

const unsigned char write_chinese[][24] = {{0x89, 0xF2, 0x00, 0xFF, 0x01, 0xF9, 0xFF, 0x00, 0xFC, 0x00, 0xFF, 0x00,0x00, 0x07, 0x04, 0x04, 0x02, 0x01, 0x02, 0x04, 0x01, 0x04, 0x07, 0x00}, /* 测 */{0x11, 0xF6, 0x00, 0x04, 0x24, 0xE4, 0x24, 0x24, 0xFF, 0x05, 0x06, 0x00,0x00, 0x07, 0x02, 0x01, 0x02, 0x03, 0x01, 0x01, 0x01, 0x02, 0x07, 0x00}, /* 试 */{0x8A, 0x6A, 0xFF, 0x49, 0x20, 0xAF, 0xA9, 0xE9, 0xA9, 0xAF, 0x20, 0x00,0x01, 0x00, 0x07, 0x00, 0x04, 0x04, 0x04, 0x07, 0x04, 0x04, 0x04, 0x00}, /* 程 */{0x00, 0xFE, 0x42, 0x4A, 0x4A, 0x5B, 0xEA, 0x5A, 0x4A, 0xC2, 0x42, 0x00,0x06, 0x01, 0x00, 0x00, 0x04, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 序 */{0x00, 0xFC, 0x94, 0x94, 0x94, 0xFF, 0x94, 0x94, 0x94, 0xFE, 0x04, 0x00,0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x06, 0x00}, /* 电 */{0x20, 0x21, 0x21, 0x21, 0x21, 0xF9, 0x29, 0x25, 0x23, 0x31, 0x20, 0x00,0x00, 0x00, 0x00, 0x04, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* 子 */{0x18, 0xD6, 0x54, 0xFF, 0x54, 0x56, 0xD4, 0x00, 0xFC, 0x00, 0xFF, 0x00,0x00, 0x03, 0x00, 0x07, 0x00, 0x02, 0x03, 0x00, 0x04, 0x04, 0x07, 0x00}, /* 制 */{0x10, 0x08, 0xFC, 0x13, 0x08, 0x04, 0xFF, 0x24, 0x24, 0x24, 0x04, 0x00,0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x01, 0x01, 0x01, 0x01, 0x00}, /* 作 */{0x40, 0x62, 0x52, 0xCA, 0x47, 0xE2, 0x42, 0xDE, 0x50, 0x50, 0x58, 0x00,0x04, 0x02, 0x01, 0x04, 0x04, 0x07, 0x00, 0x00, 0x01, 0x02, 0x04, 0x00}, /* 杂 */{0x04, 0xA4, 0x24, 0xA4, 0x24, 0xBF, 0x24, 0x24, 0x24, 0xA6, 0x04, 0x00,0x02, 0x01, 0x00, 0x07, 0x04, 0x04, 0x05, 0x04, 0x06, 0x00, 0x03, 0x00}, /* 志 */{0x84, 0x44, 0xF5, 0x2E, 0x40, 0x10, 0x10, 0xFF, 0x10, 0x10, 0x10, 0x00,0x00, 0x00, 0x07, 0x00, 0x04, 0x04, 0x04, 0x07, 0x04, 0x04, 0x04, 0x00}, /* 社 */
};

nokia_5110.h

  nokia_5110.h如下:

#ifndef __NOKIA5110_H_
#define __NOKIA5110_H_
#include "sys.h"#define SCLK    PAout(4)
#define SDIN    PAout(3)
#define LCD_DC  PAout(2)
#define LCD_CE  PAout(1)
#define LCD_RST PAout(0)void LCD_init ( void );
void LCD_write_english_string ( unsigned char X, unsigned char Y, char *s );
void LCD_write_chinese_string ( unsigned char X, unsigned char Y, unsigned char ch_with,unsigned char num, unsigned char line, unsigned char row );
#endif

nokia_5110.c

  nokia_5110.c如下:

#include "delay.h"
#include "nokia_5110.h"
#include "english_6x8_pixel.h"
#include "write_chinese_string_pixel.h"static void LCD_write_byte ( unsigned char dat, unsigned char command ) {unsigned char i;LCD_CE = 0;if ( command == 0 ) {LCD_DC = 0;} else {LCD_DC = 1;}for ( i = 0; i < 8; i++ ) {if ( dat & 0x80 ) {SDIN = 1;} else {SDIN = 0;}SCLK = 0;dat  = dat << 1;SCLK = 1;}LCD_CE = 1;
}static void LCD_set_XY ( unsigned char X, unsigned char Y ) {LCD_write_byte ( 0x40 | Y, 0 );LCD_write_byte ( 0x80 | X, 0 );
}static void LCD_clear ( void ) {unsigned int i;LCD_write_byte ( 0x0c, 0 );LCD_write_byte ( 0x80, 0 );LCD_write_byte ( 0x40, 0 );for ( i = 0; i <= 503; i++ ) {LCD_write_byte ( 0, 1 );}
}static void LCD_write_char ( unsigned char c ) {unsigned char line;c -= 32;for ( line = 0; line < 6; line++ ) {LCD_write_byte ( font6x8[c][line], 1 );}
}void LCD_init ( void ) {GPIO_InitTypeDef  GPIO_InitStructure;RCC_APB2PeriphClockCmd ( RCC_APB2Periph_GPIOA, ENABLE );GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init ( GPIOA, &GPIO_InitStructure );LCD_RST = 0;delay_us ( 1 );LCD_RST = 1;LCD_write_byte ( 0x21, 0 );LCD_write_byte ( 0xc8, 0 );LCD_write_byte ( 0x06, 0 );LCD_write_byte ( 0x13, 0 );LCD_write_byte ( 0x20, 0 );LCD_clear();LCD_write_byte ( 0x0c, 0 );LCD_CE = 0;
}void LCD_write_english_string ( unsigned char X, unsigned char Y, char *s ) {LCD_set_XY ( X, Y );while ( *s ) {LCD_write_char ( *s );s++;}
}void LCD_write_chinese_string ( unsigned char X, unsigned char Y, unsigned char ch_with,unsigned char num, unsigned char line, unsigned char row ) {unsigned char i, n;LCD_set_XY ( X, Y );for ( i = 0; i < num; ) {for ( n = 0; n < ch_with * 2; n++ ) {if ( n == ch_with ) {if ( i == 0 ) {LCD_set_XY ( X, Y + 1 );} else {LCD_set_XY ( ( X + ( ch_with + row ) *i ), Y + 1 );}}LCD_write_byte ( write_chinese[line + i][n], 1 );}i++;LCD_set_XY ( ( X + ( ch_with + row ) *i ), Y );}
}

main.c

  main.c如下:

#include "delay.h"
#include "sys.h"
#include "nokia_5110.h"int main ( void ) {SystemInit();delay_init ( 72 );NVIC_Configuration();LCD_init();while ( 1 ) {LCD_write_english_string ( 0, 0, " Welcome!" );LCD_write_english_string ( 0, 3, " Nokia5110 LCD" );LCD_write_chinese_string ( 12, 4, 12, 4, 0, 5 );}
}

http://www.ppmy.cn/news/306989.html

相关文章

bzoj 5110 Yazid的新生舞会

题目大意&#xff1a; 一个数列&#xff0c;求有多少个区间$[l,r]$满足该区间的众数出现次数大于$\lceil \frac{r-l}{2} \rceil$ 思路&#xff1a; 对于一个区间满足条件的众数明显是唯一的 所以设该数的前缀和数组为$S$ 则一个区间$(l,r]$满足条件满足$2 \times (S_r-S_l)>…

Nokia LCD 5110 移植(基于MSP430F5529)

今天也没什么想说的&#xff0c;因为某些事情忙的不行不行的。就偷个懒贴上自己移植的代码吧&#xff0c;希望能帮到初学者们。 头文件nokia_5110.h #ifndef __nokia_5110_h_ #define __nokia_5110_h_#include <msp430.h>#define LCD_5110_DIR P3DIR #defin…

hdu5110 dp

题意 给 了 一 个 矩 阵 然 后 &#xff0c; 潜 艇 可 以 向 前 在 西北和东北之间 的区域&#xff0c; 然后每个潜艇有一个值D &#xff0c;当到达潜艇距离为D的倍数的时候可以得到这个价值&#xff0c;这样我们1000*1000 的矩阵&#xff0c;D<1000, dp这么多显然是不可以的…

JoyStick Shield连接Nokia 5110--Arduino

SpaceTrash游戏是一个简单的射击游戏&#xff0c;您可以在其中控制宇宙飞船&#xff0c;并通过移动或爆破&#xff08;使用激光&#xff09;来避免漂浮在周围的小行星的碰撞。该游戏是u8g2图形库附带的示例&#xff0c;该图形库通常用于连接具有SPI或I2C协议的各种单色8位显示器…

P5110 块速递推

传送门 为啥我就没看出来有循环节呢…… 打表可得&#xff0c;这个数列是有循环节的&#xff0c;循环节为\(10^96\)&#xff0c;然后分块预处理&#xff0c;即取\(ksqrt(10^96)\)&#xff0c;然后分别预处理出转移矩阵\(A\)的\(A^1,A^2,...,A^{k-1}\)和\(A^k,A^{2k},...\)&…

STM32驱动Nokia5110

//以下是lcd5110.c #include "lcd5110.h" #include "english_6x8_pixel.h" //中文字库自己添加&#xff0c;如果没有请注释起来#include "write_chinese_string_pixel.h" //lcdgpio初始化函数 //GPIOC.0.9.10.11.12推挽输出&#xff0c;G…

linux驱动安装完桌面分辨率,kunbutu15.04安装后调整分辨率

在vbox里边安装了Kubuntu15.04虚拟机&#xff0c;安装过程还算顺利但是由于分辨率的问题&#xff0c;无法显示完全&#xff0c;折腾了我好一会&#xff0c;网上的说法可能只是应用于个人情况&#xff0c;所以我也记录下我的情况&#xff01; 我的本子是戴尔n5110 15寸的屏幕&am…

DELL笔记本安装windows10与deepin双系统详细图文教程

首先&#xff0c;我们的电脑上应该安装好了一个windows操作系统&#xff0c;我的系统是win10 1809版本。 工具&#xff1a; 1、装有win10系统的DELL电脑一台 2、4g以上的u盘一个 第一步 下载iso镜像 从deepin官网下载iso镜像&#xff0c;建议从百度云下&#xff0c;比较方…