⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yejing.c

📁 诺基亚5110液晶屏幕的资料和典型驱动程序。
💻 C
字号:
/******************************************************************
** NOKIA5110(3310)液晶屏驱动程序
** 晶 振  频 率:11.0592M
** 线路->单片机实验开发板A
******************************************************************/
    #include <reg51.h>

/*-- -------定义 Nokia5110 引角---- -----*/
  sbit sclk = P3^3;
  sbit sdin = P3^4;
  sbit dc   = P3^5;
  sbit sce = P3^7;
  sbit res = P3^6;



  void initNokia5110(void);                         /* NOkia 5110 初始化   */
  void clearNokia5110(void);                         /* 清除屏幕 整屏清空 */
  void Display_char(unsigned char x,unsigned char y,char *s);   /* 写字符 x 设置显示字符的X位置 ; y 设置显示字符的Y位置   *s 显示字符的首地址 */
  void Display_num(unsigned char x,unsigned char y,char s);   /* 写数字 x 设置显示字符的X位置 ; y 设置显示字符的Y位置   s 显示数字 */
  void write_byte(unsigned char data1);                 /* 发送1字节到 NOkia 5110 */
  void setxy(unsigned char x,unsigned char y);           /* 设置显示坐标 x 行坐标(0-83)   unsigned char y 列坐标(0-5) */
  void delay(unsigned int time);


  	void main(void)
	{
        initNokia5110();                         /* NOkia 5110 初始化   */
        clearNokia5110();                         /* 清除屏幕 整屏清空 */
        Display_char(1,2,"www.52c51.com");   /* 写字符 x 设置显示字符的X位置 ; y 设置显示字符的Y位置   *s 显示字符的首地址 */
        Display_char(10,4,"NOKIA5510");   /* 写字符 x 设置显示字符的X位置 ; y 设置显示字符的Y位置   *s 显示字符的首地址 */
        //Display_num(0,0,9);   // 写数字
		while(1);
	}

/****************************5110 0-9字模**************************/
/*函数原型:无
/*函数功能:0-9字模
/*输入参数:无
/*输出参数:无
/*调用模块:
/*建立时间:2006/10/1
/*作者:站长
/**********************************************************************/
unsigned char code asc2tab[][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 }


};


/****************************Nokia5110初始化函数**************************/
/*函数原型:initNokia5110(void)
/*函数功能:Nokia5110初始化
/*输入参数:无
/*输出参数:无
/*调用模块:
/*建立时间:2006/10/1
/*作者:站长
/**********************************************************************/
void initNokia5110(void)
{
  delay(10);             //系统复位 
  res = 0;
  delay(2);
  res = 1;
  dc   = 0;
  write_byte(0x21);         //;芯片是活动的(PD=0) 使用扩展指令集
  write_byte(0xd5);     
  write_byte(0x20);         //;芯片是活动的(PD=0) 使用水平寻址(V=0) 使用基本指令集(H=0)
  write_byte(0x0c);         //;设置显示配置(D=1 E=0)
}


/****************************Nokia5110清屏函数*********************/
/*函数原型:void clearNokia5110(void)
/*函数功能:Nokia5110清屏
/*输入参数:无
/*输出参数:无
/*调用模块:
/*建立时间:2006/10/1
/*作者:站长
/**********************************************************************/
void clearNokia5110(void)
{   
  unsigned int i,j;
  for(i=0;i<6;i++)
  { 
    setxy(j,i);
    dc   = 1;
    while (j<84)
    {

        write_byte(0x00);
        j++;
    }
    j   = 0;

  }
} 

/*--------------------------------------
;模块名称:Display_char(unsigned char x,unsigned char y,char *s);
;功   能:写字符
;占用资源:
;参数说明:x 设置显示字符的X位置 ; y 设置显示字符的Y位置   *s 显示字符的首地址
;创建日期:2001.01.19
;版   本:VER 2.0         ★STALI☆
;-------------------------------------*/
void Display_char(unsigned char x,unsigned char y,char *s)
{   
  unsigned char line;
  setxy(x,y); 
  while(*s)
  {
    for(line=0;line<6;line++)
    {   
        dc   = 1;
        write_byte(asc2tab[*s - 32][line]);   
    } 
    s++;   
  } 
  sce = 1;
}

/****************************Nokia5110写数字函数*********************/
/*函数原型:void Display_num(unsigned char x,unsigned char y,char s)
/*函数功能:Nokia5110写数字
/*输入参数:x 设置显示字符的X位置 ; y 设置显示字符的Y位置   s 显示数字
/*输出参数:无
/*调用模块:
/*建立时间:2006/10/1
/*作者:站长
/**********************************************************************/
void Display_num(unsigned char x,unsigned char y,char s)
{
  unsigned char line;
  setxy(x,y);
  dc   = 1;   
  for(line=0;line<6;line++)
  {   
    
    write_byte(asc2tab[s+16][line]);   
  } 
  sce = 1; 
}
   
/*************************Nokia5110发送1字节函数*********************/
/*函数原型:void Display_num(unsigned char x,unsigned char y,char s)
/*函数功能:发送1字节到 NOkia 5110
/*输入参数:x 设置显示字符的X位置 ; y 设置显示字符的Y位置   s 显示数字
/*输出参数:无
/*调用模块:
/*建立时间:2006/10/1
/*作者:站长
/**********************************************************************/
void write_byte(unsigned char data1)
{   
  unsigned char i;
  res = 1;
  sce = 0;
  for(i=0;i<8;i++)
  {
    sdin = (bit) (data1&0x80);
    sclk = 0;
      ;   
    sclk = 1;   
    data1 <<=1;
  }
} 

/*************************Nokia5110设置显示坐标函数*********************/
/*函数原型:void setxy(unsigned char x,unsigned char y)
/*函数功能:设置显示坐标
/*输入参数:unsigned char x 行坐标(0-83)   unsigned char y 列坐标(0-5)
/*输出参数:无
/*调用模块:
/*建立时间:2006/10/1
/*作者:站长
/**********************************************************************/
void setxy(unsigned char x,unsigned char y)
{
  dc   = 0;
  write_byte(y|0x40);         //设置y轴。
  write_byte(x|0x80);         //设置x轴。
}

/*******************************延时函数*********************************/
/*函数原型:delay(unsigned int delay_time)
/*函数功能:延时函数
/*输入参数:delay_time (输入要延时的时间)
/*输出参数:无
/*调用模块:无
/*建立时间:2005/10/21
/*作者:站长
/**********************************************************************/
void delay(unsigned int delay_time)   //延时子程序
{for(;delay_time>0;delay_time--)
{}
  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -