你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F103V NOKIA5110液晶

[复制链接]
STMCU小助手 发布时间:2023-1-7 11:59
& `" A! U( }! ^9 j3 E' ^
3 w' t* b+ R0 N; L5 W+ H
Nokia_5110.h头文件
<span]Nokia_5110.h头文件
<span]

, E; d0 Y$ c# u0 X5 E1 j
#ifndef]#ifndef]8 E( ]* W: j; Z
#include"HZ_12x12_pixel.h"
! s  h& c4 |' U0 u" d#include"english_6x8_pixel.h"8 p& r. m) k+ o
#define uchar unsigned char
& z- _7 D9 W1 M& ~/ T#define uint unsigned int
( e+ \$ R. L% V# ]) \5 K5 c+ t/ [#define ulong unsigned long
- r$ y. u  a& N, J#define true 1* X2 o! L4 P( {& v, H# K
#define flase 0
/////////////引脚定义//////////////
<span]/////////////引脚定义//////////////
<span]void Delay_1uS(void);; ]4 C$ J0 m8 F2 n  o, A( u5 R
void LCD_Init(void);; M4 h5 }) s2 V
void LCD_set_XY(unsigned char X, unsigned char Y);3 a; X9 a" i0 S
/*-----------------------------------------------------------------------; p: j2 v) p2 x6 g! S3 j) W; W
LCD_write_english_String  : 英文字符串显示函数
输入参数:*s]输入参数:*s]-----------------------------------------------------------------------*/
; B9 O/ U# U- w* }4 Wvoid LCD_write_english_string(unsigned char X,unsigned char Y,char *s);
* q5 ~( B  r2 ?! c: Ovoid TestLCD_Nokia5110(void);
unsigned]unsigned]+ \! b# k6 s  g, S* Q7 L( o( ~6 O
void displayonechar1212(uchar row,uchar page,uchar dd); //显示 12*12 点阵5 x* I! i8 Y! x8 t  J, f7 T
void write_byte(uchar dd,uchar a); //写数据或指令 0:指令 1:数据
#define]#define]#define c_LCD_Max_Dot_X 84; @$ I5 E# c" s; ?
#define c_LCD_Max_Dot_Y 48
$ \  B, A" W: W  O: @% d
#define]: I+ z, U- Y7 t! d# U
#define]- q2 l; s6 b1 n
void delay_1us(void)                 //1us延时函数2 n8 ~5 [- ^# E( U# [
  {
2 `3 R, N3 F1 N, \( L/ k5 J   unsigned int i;0 a+ @8 Z) p! `$ \8 p: A1 I' Y
  for(i=0;i<1000;i++);5 J6 r3 X! t- p9 e- Z# A7 Q6 \
  }
]]/*****************************************************************/
/*-----------------------------------------------------------------------
& U5 V/ a: f, }! Y$ O9 oLCD_write_byte]/*-----------------------------------------------------------------------
7 u. O2 d5 r0 @9 N4 RLCD_write_byte]输入参数:data    :写入的数据;
2 y2 T  H! O( r          command :写数据/命令选择;
-----------------------------------------------------------------------*/
/ e, m5 m) }" J0 a  ~# R6 a' R1 V% Bvoid]-----------------------------------------------------------------------*/' a- R: h( \0 g3 i* L7 U- w  {
void]    //SCE = 0;
8 z) S) V- c( g    //DC = 0;
- W9 ^2 k6 N8 {8 u" j7 f    GPIO_ResetBits(GPIOD, NOKIA_SCE);
4 _) b# V6 J6 @' E1 @# k& k# L    GPIO_ResetBits(GPIOD, NOKIA_DC);
]]   //SCE = 1;$ U8 _. E4 ^# c  M- |
         GPIO_SetBits(GPIOD, NOKIA_SCE);, F9 Y2 o" Z8 v8 P! M* L
}
/*-----------------------------------------------------------------------
$ T$ m+ D/ {7 y% N8 g6 bLCD_write_byte]/*-----------------------------------------------------------------------5 S) m$ a/ F7 m: K- e
LCD_write_byte]输入参数:data    :写入的数据;
6 c7 `6 G! B, J: r% t( A' K          command :写数据/命令选择;-------------------------*/' }' D5 x! q5 {; u* B
void LCD_write_Data(unsigned char ucWriteData)* @# K; Z  t) O  z5 d+ y8 Z. Y
{
* ^6 f  k! x# h! I0 E8 `    unsigned char uci;
]] for(uci=0;uci<8;uci++), _/ K$ V! g" V  _  a% k. m
{
/ |" W# e1 a) R; [6 X  if(ucWriteData & 0x80)
! b  e6 Z. N7 r" s- k* a  {. D- C( S. Q8 @3 w6 S% y* \
   //SDIN = 1;6 T- Y5 m0 O+ t/ v9 Q
                        GPIO_SetBits(GPIOD, NOKIA_SDIN);
+ s) F5 ^8 Q# z8 I    }
/ t5 ~3 z6 s9 S- @8 n. L! C  else
6 {3 r  s( M; i' b. W( ?, U  {
9 G! w5 d' ~9 J- T, p$ Q$ b6 C   //SDIN = 0;  X8 D1 L% e# Q1 i( Y, b' ^" K
                        GPIO_ResetBits(GPIOD, NOKIA_SDIN);/ ~! j4 Z5 y0 w. k& }
    }. R* t: i8 K. B3 W. E* ]+ k( I
  //SCLK = 0;
( {/ i) L, G+ q3 O: p                GPIO_ResetBits(GPIOD, NOKIA_SCLK);. a' a' U1 X& ?$ E
  ucWriteData = ucWriteData << 1;
5 S. K' l3 o7 d) Z, H: o  //SCLK = 1;( M5 {  c7 ?- n- R1 B  r9 |
                 GPIO_SetBits(GPIOD, NOKIA_SCLK);
4 r2 c0 r0 j9 y! x5 I: ?6 \' h$ L }
]]}
$ R- Q+ M* {6 M0 H/*-----------------------------------------------------------------------
/ U, T9 \6 i+ kLCD_set_XY        : 设置LCD坐标函数
输入参数:X]输入参数:X]
( j9 r4 I2 l. |( Nvoid setadd(unsigned char a,unsigned char d)//设定地址
# l) K. {5 ?- _$ E; b5 l{
0 h0 _5 _# ~8 `# U+ k1 z9 R" Twrite_byte((a|0x80),0);* m; b7 o( B$ r
write_byte((d|0x40),0);
; q+ M8 {0 J9 h- v$ s& G; q3 I; Y}3 B0 m4 V& X' f1 a: w6 v
/*-----------------------------------------------------------------------3 V. m9 C2 x& ?$ C7 `) t' o
LCD_clear         : LCD清屏函数
-----------------------------------------------------------------------*/
1 V. `0 F9 o$ I7 K4 Q, pvoid]-----------------------------------------------------------------------*/3 {0 @9 N- V) R6 l
void]// LCD_write_CMD(0x0c);/ J5 n8 S' S! T1 c0 D
// LCD_write_CMD(0x80);
]]}

! p. h% G4 {+ u* k, @void]
+ c3 U& r" B/ h( W+ t) U- ~void]) K; b8 y! h5 T8 |, F1 B; Y9 u
  // 产生一个让LCD复位的低电平脉冲
3 Z+ `; G5 h$ B //RST = 0;
3 ]( m4 {3 Z* X        GPIO_ResetBits(GPIOD, NOKIA_RST);
) U. R& ^5 v2 X) ^    ; {2 N; G% x. y1 d3 ~; V
    delay_1us();4 d* I' S) @; f# j
    //RST = 1;1 Z% \0 c5 N+ F1 E- p% |
        GPIO_SetBits(GPIOD, NOKIA_RST);$ g8 d8 c9 y  r4 n7 ~7 n" r
    //SCE = 0;: o7 _9 U  u" b2 K6 B2 B# m" Q
    //DC = 0;$ k6 u- b- D) b$ g1 k* g
     GPIO_ResetBits(GPIOD, NOKIA_SCE);3 Y) Q' j, H! d5 I0 E* g
     GPIO_ResetBits(GPIOD, NOKIA_DC);
]]    LCD_write_CMD(0x21); // 使用扩展命令设置LCD模式,PD=0,V=0,H=1
# w3 Q, i! s' T) z& J' e" a    LCD_write_CMD(0xc0); // 设置偏置电压9 b  ?/ G/ n" m) {- o" v/ Q. h) ?
    LCD_write_CMD(0x06); // 温度校正
3 q; j* a, N, c' R- \, b    LCD_write_CMD(0x13); // 1:48
]]  //  LCD_write_CMD(Nokia5110_DispMode_Reverse);$ ?# H4 X1 l% s1 ?$ j% ^
           // 关闭LCD
]]
5 s- ~* H% |# L/*-----------------------------------------------------------------------, E8 R& B7 w. Z- G/ d
LCD_write_char    : 显示英文字符
输入参数:c]输入参数:c]    c -= 32;
]]void write_byte(uchar dd,uchar a)//写一字节 0:指令 1:数据+ x5 P: }1 V2 Z3 M
{
% P( y! C5 C; r+ x3 Achar i;( v0 J4 q; ~7 f3 o. A, ^
//SCE=0;
) \0 G/ u- @) t% h//DC=a;
5 [8 Q" ~2 l9 M! C  L) QGPIO_ResetBits(GPIOD, NOKIA_SCE);7 f" d0 m1 }* a; [# N3 R- |
   if(a==0)GPIO_ResetBits(GPIOD, NOKIA_DC);. j5 `  U1 Q' e4 s& x) @
   if(a==1)GPIO_SetBits(GPIOD, NOKIA_DC);        
# J9 h, @8 T/ D$ Kfor(i=0;i<8;i++)& ^+ B) k5 E9 c. M
{& n9 _2 @3 ^. l. r8 ]  T
if(dd&mask_table)( g( p+ y7 P. s9 G, V
//SDIN=1;
9 T4 N, }4 \5 ~3 }, B4 c4 z        GPIO_SetBits(GPIOD, NOKIA_SDIN);7 t. e  m1 T3 d6 ?: P6 X
else
2 N: N+ R! e" ]) z' e) w//SDIN=0;
& ]+ p: [4 a6 d9 \//SCLK=0;
$ G' ?# U7 {; G4 ~) r+ I, [//SCLK=1;
6 C  d# z' y" z. {+ v8 @: U        GPIO_ResetBits(GPIOD, NOKIA_SDIN);
2 j' L$ [. O$ O" V2 P# a8 u        GPIO_ResetBits(GPIOD, NOKIA_SCLK);
. i' S  q- I1 n% ?6 ^        GPIO_SetBits(GPIOD, NOKIA_SCLK);
]]
3 Z5 c: H7 }. ]% H. B2 _& m/*-----------------------------------------------------------------------
+ Y2 Q% W9 ~1 }. `6 j5 r3 h+ DLCD_write_english_String  : 英文字符串显示函数
输入参数:*s]输入参数:*s]-----------------------------------------------------------------------*/0 |. m  C' G7 t3 I
void LCD_write_english_string(unsigned char X,unsigned char Y,char *s)
2 u, }1 \, K1 H8 ~4 s% l{
& Z$ w  \; C( ]+ f. u/ ?    LCD_set_XY(X,Y);; \3 e. \9 z6 g
    while (*s)
9 y. c) v8 Q0 x1 t. B    {9 W* n) |0 g& [) v4 C8 a5 a
   LCD_write_char(*s);( n. C, ]2 e/ A4 s% q
   s++;
* d1 J" X' Z( v; Q! w& h   }
# d# G* r7 g( w! O* `! j, Y}
5 D# y) o: e, t& E2 c: h//****************************************************/
' f7 O. [4 A" R6 p3 P$ I0 J6 _//显示12(宽)*12(高)点阵列汉字  M7 `! q- V# r: L. a! a6 M2 Q) @
void displayonechar1212(uchar row, uchar page,uchar dd) //row:列 page:页 dd:字符4 Q6 x/ d6 q' I$ y
{8 V7 y2 U# n$ N: Q4 V- I2 t
uchar row_i,xx,num=0;: R$ u; t4 U  Q; I/ B
for(xx=0;xx<2;xx++)
4 e, J- f% W; b, [3 }# X{! P3 a3 G/ Z, ~1 x6 _6 _
setadd(row,page);// 列,页
, f- T; ?6 t8 q( A) f% dfor(row_i=num; row_i<num+12;row_i++) write_byte(hzk1212[dd][row_i],1);
2 X2 I% K4 H( _ num=num+12;page++;% F* i2 |+ [" k& r2 K5 f4 i1 s
}
" p, z) |' B4 s: ]0 w4 G9 k1 f}
]]
#endif

' o* P+ |; v' t
转载自:eefocus0 p  R* G9 K8 Q
收藏 评论0 发布时间:2023-1-7 11:59

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版