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

STM32F103V NOKIA5110液晶

[复制链接]
STMCU小助手 发布时间:2023-1-7 11:59


Nokia_5110.h头文件
<span]Nokia_5110.h头文件
<span]

#ifndef]#ifndef]
#include"HZ_12x12_pixel.h"
#include"english_6x8_pixel.h"
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define true 1
#define flase 0
/////////////引脚定义//////////////
<span]/////////////引脚定义//////////////
<span]void Delay_1uS(void);
void LCD_Init(void);
void LCD_set_XY(unsigned char X, unsigned char Y);
/*-----------------------------------------------------------------------
LCD_write_english_String  : 英文字符串显示函数
输入参数:*s]输入参数:*s]-----------------------------------------------------------------------*/
void LCD_write_english_string(unsigned char X,unsigned char Y,char *s);
void TestLCD_Nokia5110(void);
unsigned]unsigned]
void displayonechar1212(uchar row,uchar page,uchar dd); //显示 12*12 点阵
void write_byte(uchar dd,uchar a); //写数据或指令 0:指令 1:数据
#define]#define]#define c_LCD_Max_Dot_X 84
#define c_LCD_Max_Dot_Y 48

#define]
#define]
void delay_1us(void)                 //1us延时函数
  {
   unsigned int i;
  for(i=0;i<1000;i++);
  }
]]/*****************************************************************/
/*-----------------------------------------------------------------------
LCD_write_byte]/*-----------------------------------------------------------------------
LCD_write_byte]输入参数:data    :写入的数据;
          command :写数据/命令选择;
-----------------------------------------------------------------------*/
void]-----------------------------------------------------------------------*/
void]    //SCE = 0;
    //DC = 0;
    GPIO_ResetBits(GPIOD, NOKIA_SCE);
    GPIO_ResetBits(GPIOD, NOKIA_DC);
]]   //SCE = 1;
         GPIO_SetBits(GPIOD, NOKIA_SCE);
}
/*-----------------------------------------------------------------------
LCD_write_byte]/*-----------------------------------------------------------------------
LCD_write_byte]输入参数:data    :写入的数据;
          command :写数据/命令选择;-------------------------*/
void LCD_write_Data(unsigned char ucWriteData)
{
    unsigned char uci;
]] for(uci=0;uci<8;uci++)
{
  if(ucWriteData & 0x80)
  {
   //SDIN = 1;
                        GPIO_SetBits(GPIOD, NOKIA_SDIN);
    }
  else
  {
   //SDIN = 0;
                        GPIO_ResetBits(GPIOD, NOKIA_SDIN);
    }
  //SCLK = 0;
                GPIO_ResetBits(GPIOD, NOKIA_SCLK);
  ucWriteData = ucWriteData << 1;
  //SCLK = 1;
                 GPIO_SetBits(GPIOD, NOKIA_SCLK);
}
]]}
/*-----------------------------------------------------------------------
LCD_set_XY        : 设置LCD坐标函数
输入参数:X]输入参数:X]
void setadd(unsigned char a,unsigned char d)//设定地址
{
write_byte((a|0x80),0);
write_byte((d|0x40),0);
}
/*-----------------------------------------------------------------------
LCD_clear         : LCD清屏函数
-----------------------------------------------------------------------*/
void]-----------------------------------------------------------------------*/
void]// LCD_write_CMD(0x0c);
// LCD_write_CMD(0x80);
]]}

void]
void]
  // 产生一个让LCD复位的低电平脉冲
//RST = 0;
        GPIO_ResetBits(GPIOD, NOKIA_RST);
   
    delay_1us();
    //RST = 1;
        GPIO_SetBits(GPIOD, NOKIA_RST);
    //SCE = 0;
    //DC = 0;
     GPIO_ResetBits(GPIOD, NOKIA_SCE);
     GPIO_ResetBits(GPIOD, NOKIA_DC);
]]    LCD_write_CMD(0x21); // 使用扩展命令设置LCD模式,PD=0,V=0,H=1
    LCD_write_CMD(0xc0); // 设置偏置电压
    LCD_write_CMD(0x06); // 温度校正
    LCD_write_CMD(0x13); // 1:48
]]  //  LCD_write_CMD(Nokia5110_DispMode_Reverse);
           // 关闭LCD
]]
/*-----------------------------------------------------------------------
LCD_write_char    : 显示英文字符
输入参数:c]输入参数:c]    c -= 32;
]]void write_byte(uchar dd,uchar a)//写一字节 0:指令 1:数据
{
char i;
//SCE=0;
//DC=a;
GPIO_ResetBits(GPIOD, NOKIA_SCE);
   if(a==0)GPIO_ResetBits(GPIOD, NOKIA_DC);
   if(a==1)GPIO_SetBits(GPIOD, NOKIA_DC);        
for(i=0;i<8;i++)
{
if(dd&mask_table)
//SDIN=1;
        GPIO_SetBits(GPIOD, NOKIA_SDIN);
else
//SDIN=0;
//SCLK=0;
//SCLK=1;
        GPIO_ResetBits(GPIOD, NOKIA_SDIN);
        GPIO_ResetBits(GPIOD, NOKIA_SCLK);
        GPIO_SetBits(GPIOD, NOKIA_SCLK);
]]
/*-----------------------------------------------------------------------
LCD_write_english_String  : 英文字符串显示函数
输入参数:*s]输入参数:*s]-----------------------------------------------------------------------*/
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++;
   }
}
//****************************************************/
//显示12(宽)*12(高)点阵列汉字
void displayonechar1212(uchar row, uchar page,uchar dd) //row:列 page:页 dd:字符
{
uchar row_i,xx,num=0;
for(xx=0;xx<2;xx++)
{
setadd(row,page);// 列,页
for(row_i=num; row_i<num+12;row_i++) write_byte(hzk1212[dd][row_i],1);
num=num+12;page++;
}
}
]]
#endif

转载自:eefocus
收藏 评论0 发布时间:2023-1-7 11:59

举报

0个回答

所属标签

相似分享

官网相关资源

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