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

📄 ym12864r_s.c

📁 ym12864r_s.c是基于8051单片机的LCD驱动程序,分辨率为128*64的单色图形LCD
💻 C
字号:
#include"reg52.h"
#define uchar unsigned char
#define uint unsigned int
#define clear() 	wcode(0x01)/*清除显示*/

//函数原型
void	LCD_init(void);
void	screen_welcome(void);
void	screen_succeed(void);
void	screen_fail(void);

//sbit RST=P1^4;
//sbit PSB=P1^4;//可以一直接地
sbit SCLK=P1^4;
sbit SID=P1^3;
sbit CS=P1^2;

void delay(uint v)/*延时*/
{
	while(v!=0) v--;
}

void ser_in(uchar c)/*serial输入程序*/
{
   uchar BitCnt;
   for(BitCnt=0;BitCnt<8;BitCnt++)  
     {
      if((c<<BitCnt)&0x80)SID=1;  
      else  SID=0;
      delay(1);                
      SCLK=1;              
      delay(3);      
      SCLK=0; 
      }
 }   

void wcode (uchar cmd)/*写命令*/
{       
  CS=0;
  delay(10);
  CS=1;
  ser_in(0xf8);
  ser_in(cmd&0xf0);
  ser_in((cmd&0x0f)<<4);
}

void wdata(uchar dat)/*写数据*/
{
  CS=0;
  delay(10);
  CS=1;
  ser_in(0xfa);
  ser_in(dat&0xf0);
  ser_in((dat&0x0f)<<4);
   
}

void set_adr_GB(uchar x)/*设定国标码地址*/
{
        x=x+0x80;
        wcode(x);
}

void set_function(uchar c)/*功能设定*/
{
        c=c+0x30;
        wcode(c);
} 

void addr_zero(void)/*地址归零*/
{
        wcode(0x02);
}

void dis_on_off(uchar c)/*显示状态*/
{
	c=c+0x08;
	wcode(c);
}
void	ShowWord(uint GB_Num)
{
uchar GB_h,GB_l;
        GB_h=(GB_Num&0xff00)>>8;
        GB_l=GB_Num&0xff;
        wdata(GB_h);
        wdata(GB_l);
}
void	LCD_init(void)
{
	//PSB=0;
	dis_on_off(0x07); 
	set_function(0x00);
	addr_zero();//地址归0
    clear();//清屏
}


//    您  好!
//    请刷卡!
void	screen_welcome(void)
{
	clear();//清屏

    set_adr_GB(2);
//	ShowWord(0xa1a0);//空格
	ShowWord(0xc4fa);//您
    set_adr_GB(4);
	ShowWord(0xbac3);//好
	ShowWord(0xa3a1);//!
    set_adr_GB(10);
	ShowWord(0xc7eb);//请
	ShowWord(0xcba2);//刷
	ShowWord(0xbfa8);//卡
	ShowWord(0xa3a1);//!
}
//    刷卡成功!
void	screen_succeed(void)
{
	clear();//清屏

    set_adr_GB(10);
	ShowWord(0xcba2);//刷
	ShowWord(0xbfa8);//卡
	ShowWord(0xb3c9);//成
	ShowWord(0xb9a6);//功
	ShowWord(0xa3a1);//!
}
//    刷卡失败!
void	screen_fail(void)
{
	clear();//清屏

    set_adr_GB(10);
	ShowWord(0xcba2);//刷
	ShowWord(0xbfa8);//卡
	ShowWord(0xcaa7);//失
	ShowWord(0xb0dc);//败
	ShowWord(0xa3a1);//!
}

//  江门殡仪馆
//    欢迎您!
//  您的位置在:
//X室X排X行X列

void	screen_2(void)
{
	clear();//清屏

    set_adr_GB(1);
	ShowWord(0xbdad);//江
	ShowWord(0xc3c5);//门
	ShowWord(0xe9eb);//殡
	ShowWord(0xd2e5);//仪
	ShowWord(0xb9dd);//馆
    set_adr_GB(18);
	ShowWord(0xbbb6);//欢
	ShowWord(0xd3ad);//迎
	ShowWord(0xc4fa);//您
	ShowWord(0xa3a1);//!
    set_adr_GB(9);
	ShowWord(0xc4fa);//您
	ShowWord(0xb5c4);//的
	ShowWord(0xcebb);//位
	ShowWord(0xd6c3);//置
	ShowWord(0xd4da);//在
	ShowWord(0xa1c3);//:
    set_adr_GB(24);
	ShowWord(0xa3b1);//1
	ShowWord(0xcad2);//室
	ShowWord(0xa3b1);//1
	ShowWord(0xc5c5);//排
	ShowWord(0xa3b1);//1
	ShowWord(0xd0d0);//行
	ShowWord(0xa3b1);//1
	ShowWord(0xc1d0);//列
}
/*void main(void)
{
	LCD_init();

while(1)
{
	screen_1();
	delay(65535);
	delay(65535);
	screen_2();
	delay(65535);
	delay(65535);
}
}
*/

⌨️ 快捷键说明

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