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

📄 12864.c

📁 12864串口显示显示程序
💻 C
字号:
#include<reg52.h>
#include"12864.h"
#include"const.h"
void delay(uint us)      //delay time
{
	uint i;
	for (i=1;i<=3;i++)	
     while(us--);
}
void SendByte(uchar Dbyte)
{
     uchar i;
     for(i=0;i<8;i++)
     {
           SCLK = 0;
           Dbyte=Dbyte<<1;       
           SID = CY;              
           SCLK = 1;
           SCLK = 0;
     }
}
uchar ReceiveByte(void)
{
     uchar i,temp1,temp2;
     temp1 = 0;
     temp2 = 0;
     for(i=0;i<8;i++)
     {
           temp1=temp1<<1;
           SCLK = 0;
           SCLK = 1;            
           SCLK = 0;
           if(SID)
		    temp1++;
     }
     for(i=0;i<8;i++)
     {
           temp2=temp2<<1;
           SCLK = 0;
           SCLK = 1;
           SCLK = 0;
           if(SID) 
		   temp2++;
     }
     return ((0xf0&temp1)+(0x0f&temp2));
}
void CheckBusy(  ) 
{
     do   SendByte(0xfc);         
     while(0x80&ReceiveByte());       
}
void Lcd_WriteCmd(uchar Cbyte )
{
     CheckBusy();
     SendByte(0xf8);              //11111,RW(0),RS(0),0
     SendByte(0xf0&Cbyte);        //高四位
     SendByte(0xf0&Cbyte<<4);   //低四位(先执行<<)
}
void Lcd_WriteData(uchar Dbyte )
{
     CheckBusy();
     SendByte(0xfa);              //11111,RW(0),RS(1),0
     SendByte(0xf0&Dbyte);        //高四位
     SendByte(0xf0&Dbyte<<4);   //低四位(先执行<<)
}
void Lcd_pos(uchar X,uchar Y)	  //行列确定
{
	uchar pos;
	if(X==0)
		X=0X80;
	else if(X==1)
		X=0X90;
	else if(X==2)
		X=0X88;
	else if(X==3)
		X=0x98;
	pos=X+Y;
	Lcd_WriteCmd(pos);
}
void Lcd_Init(void)
{ 
    Lcd_WriteCmd(0x30);        //选择基本指令集
 	delay(1);
    Lcd_WriteCmd(0x0c);          //开显示(无游标、不反白)
 	delay(1);
    Lcd_WriteCmd(0x01);          //清除显示,并且设定地址指针为00H
	delay(20);	
}
void Lcd_Display()
{
  		uchar num;
	 	Lcd_pos(0,0);
		while(table[num]!='\0')
		{
			Lcd_WriteData(table[num]);
			num++;
		//	delay(1);
		}
		num=0;
		Lcd_pos(1,0);
		while(table1[num]!='\0')
		{
			Lcd_WriteData(table1[num]);
			num++;
		//	delay(1);
		}
		num=0;
		Lcd_pos(2,0);
		while(table[num]!='\0')
		{
			Lcd_WriteData(table2[num]);
			num++;
		//	delay(1);
		}
		num=0;
		Lcd_pos(3,0);
		while(table[num]!='\0')
		{
			Lcd_WriteData(table3[num]);
			num++;
		//	delay(1);
		}
	//	Lcd_pos(0,4);
}

void Lcd_display_shu(uint S) 
{
	uint a,b,c,d;
	d=S%10;
	c=S/10%10;
	b=S/100%10;
	a=S/1000%10;
	Lcd_pos(0,3);
	Lcd_WriteData(a+0x30);			 //0x30就是将变量的转换,如果没有这个显示的结果会是a,并且,改变a的值的时候,不会发生如何变化
	Lcd_WriteData(b+0x30);
	Lcd_WriteData(c+0x30);
	Lcd_WriteData(d+0x30);
}

⌨️ 快捷键说明

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