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

📄 12864.c

📁 是一个msp430做的电子钟程序
💻 C
字号:
#define uchar unsigned char
#define uint unsigned int
#include "word1.c"
#define CLR_E P4OUT&=~BIT0;//p3.0
#define SET_E P4OUT|=BIT0;
#define CLR_WR P4OUT&=~BIT1;//p3.1
#define SET_WR P4OUT|=BIT1;
#define CLR_DI P4OUT&=~BIT2;//p3.2
#define SET_DI P4OUT|=BIT2;

#define CLR_CS1 P4OUT&=~BIT5;//p3.5
#define SET_CS1 P4OUT|=BIT5;
#define CLR_CS2 P4OUT&=~BIT6;//p3.6
#define SET_CS2 P4OUT|=BIT6;
#define  Set_Disp_On 0x3F
#define  Set_Disp_Off 0x3E
#define  Set_Column  0x40
#define  Set_Page  0xB8
#define  Set_Start_Line 0xC0


/*uchar rdat()
{
	uchar Disp_Data;
	DI12864=1;
	WR12864=1;
	DataPort=0xff;	    //清引脚电瓶
	E12864=1;
	Disp_Data=DataPort;
	E12864=0;
 return (Disp_Data);
}		*/

//指令寄存器写入函数

wcmd(uchar Reg_Code)
{
	CLR_DI;
	CLR_WR;
	P2DIR=0xff;
        P2OUT=Reg_Code;
	SET_E;
	CLR_E;
}

//  显示数据写入函数
wdat(uchar Disp_Data)
{
SET_DI;
CLR_WR;
SET_E;
P2DIR=0xff;
P2OUT=Disp_Data;

CLR_E;
}

//  设置XY地址,X用页表示,Y用行表示***********

void Set_XY(unsigned char X_PageColumn, unsigned char Y_Column)
{
wcmd(Set_Page+X_PageColumn);
wcmd(Set_Column+Y_Column);
}


//  12864寄存器初始化函数

init12864()
{ 
  P2DIR=0xff;
  P4DIR=0Xff;
  
  SET_CS1;
  SET_CS2;
  //delay(100);
  wcmd(Set_Disp_Off);
  wcmd(Set_Start_Line);
  wcmd(Set_Page);
  wcmd(Set_Column);
  wcmd(Set_Disp_On);
}


//******************************************************
//************读状态***返回0为准备就绪,1为忙**************
//******************************************************
uchar checkstatus()
{
uchar status=0;
SET_WR;
CLR_DI;
SET_E;
P2DIR=0x00;

status=P2IN;

CLR_E;
P2DIR=0xff;
if(status&0x80==0x80)
  return 1;
else
  return 0 ;
}

//*****************************************
//  清除12864显示存储器
//*****************************************
clr()
{ 
unsigned char j,k;

SET_CS1;
SET_CS2;
 for(k=0;k<8;k++)
 {
  wcmd(Set_Page+k);
  wcmd(Set_Column);

  for(j=0;j<64;j++) 
  {
	while(checkstatus());
  	wdat(0x00);
  	
  }
 }
}

//*****************************************
void display(uchar x,uchar y,uchar *k)	 //	16*16
{
     uchar i,j;
	// uchar	rline=y,rcol=x;
    //if(rcol>120) {rline=rline+2;rcol=0;}
    for(j=0;j<2;j++)
	{	
		
	       if(y<64) 
	        {
		     SET_CS1;
		     CLR_CS2;
		     Set_XY(x+j,y);
                }
	       else
		     {
			  CLR_CS1; 
			  SET_CS2;
		      Set_XY(x+j,y-64);}
		   for(i=0;i<16;i++)
	    {
			    wdat(*(k+j*16+i));  
			//y=y+1;
	    }
	}
} 

//*****************************************
void display3(uchar x,uchar y,uchar *k)	 //	16*8
{
     uchar i,j;
	// uchar	rline=y,rcol=x;
    //if(rcol>120) {rline=rline+2;rcol=0;}
    for(j=0;j<2;j++)
	{	
		
	       if(y<64) 
	        {
			 SET_CS1;
		     CLR_CS2;
		     Set_XY(x+j,y);}
	       else
		     {
			  CLR_CS1; 
			  SET_CS2;
		      Set_XY(x+j,y-64);}
		   for(i=0;i<8;i++)
	    {
			    wdat(*(k+j*8+i));  
			//y=y+1;
	    }
	}
} 

⌨️ 快捷键说明

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