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

📄 1335.h

📁 触摸屏打地鼠小游戏 AVR控制
💻 H
字号:
#include <delay.h>  
#include <math.h>  
//宏定义//  
#define   Uchar     unsigned char 
#define Uint      unsigned int 
#define BasePart1        0x00  
#define BasePart2        0x40  
#define BasePart3        0x80  
#define BasePart4        0x00  
#define SystemSet        0x40  
#define Scroll           0x44  
#define DispOn           0x59  
#define DispOff          0x58  
#define Ovlay            0x5b  
#define HdotScr          0x5a  
#define CsrForm          0x5d  
#define CgramAdr         0x5c  
#define CsrDirR          0x4c  
#define CsrDirL          0x4d  
#define CsrDirU          0x4e  
#define CsrDirD          0x4f  
#define CsrW             0x46  
#define CsrR             0x47  
#define mWrite           0x42  
#define mRead            0x43  
/* 对sed1355的驱动引脚通进行宏定义,注意一定要把其设置为输出口*/ 
#define A0_H             PORTD|=(1<<5) 
#define A0_L             PORTD&=~(1<<5) 
#define RD_H             PORTD|=(1<<6) 
#define RD_L             PORTD&=~(1<<6) 
#define WR_H             PORTD|=(1<<7) 
#define WR_L             PORTD&=~(1<<7) 
#define   OUT_DATABUS        PORTC            
#define   DIR_BUS            DDRC             
#define   IN_DATABUS         PINC  

/*============================================================================ 
 sed1335基本接口函数                        底层函数 
读内部参数,辩忙     尚未用到 
============================================================================*/ 
Uchar sed1335_read_state(void)  
{   
  Uchar data; 
  DIR_BUS=0x00; 
  A0_L;  
  RD_L; 
  WR_H; 
  data=IN_DATABUS;  
  RD_H; 
  DIR_BUS=0xff; 
  return data; 
//delay_us(1); 
}    
/*============================================================================ 
 sed1335基本接口函数                       底层函数 
读取sed1335当前光标处字节     
============================================================================*/  
Uchar sed1335_read_data(void)  
{  Uchar data ; 
   DIR_BUS=0x00; 
   A0_H; 
   RD_L; 
   WR_H; 
   data=IN_DATABUS; 
   RD_H; 
   DIR_BUS=0xff; 
   return data; 
}  


/*============================================================================ 
 sed1335基本接口函数                         底层函数 
 向sed1335写入命令字 
============================================================================*/ 
void sed1335_write_command(Uchar commandcode)  
{  
   
  OUT_DATABUS=commandcode;  
  A0_H;  
  RD_H; 
  WR_L;
  WR_H; 
  
}  
/*============================================================================ 
 sed1335基本接口函数                           底层函数 
 向sed1335写入数据 
============================================================================*/ 
void sed1335_write_data(Uchar data)  
{  
   
  OUT_DATABUS=data;  
  A0_L; 
  RD_H; 
  WR_L;
  WR_H; 
  
} 



/*============================================================================ 
     初始化函数       必须先将sed1335初始化 
============================================================================*/ 
void LcmInition( void )  
{  

//delay_ms(50);  
sed1335_write_command(SystemSet);  
sed1335_write_data(0x30);  
sed1335_write_data(0x87);  
sed1335_write_data(0x07);  
sed1335_write_data(0x27);  
sed1335_write_data(0x42);  
sed1335_write_data(0xf0);  
sed1335_write_data(0x28);  
sed1335_write_data(0x00);  


sed1335_write_command(Scroll);  
sed1335_write_data(0x00);      //第一画面首地址低字节 
sed1335_write_data(0x00);       //第一画面首地址高字节  
sed1335_write_data(0xf0);      //第一画面所占行数 

sed1335_write_data(0x00);      //第二画面首地址 
sed1335_write_data(0x40);  
sed1335_write_data(0xf0);  

sed1335_write_data(0x00);     //第三画面首地址 
sed1335_write_data(0x80);  

sed1335_write_data(0x00);      //第四画面首地址 
sed1335_write_data(0x00);  


sed1335_write_command(HdotScr);  //设置水平位移量 
sed1335_write_data(0x00);  

sed1335_write_command(Ovlay);    //设置各画面合成方式 
sed1335_write_data(0x1c);  
//delay_ms(100);  
} 


/*============================================================================ 
 向整个显示区域写入code;eg,写入0x00就相当与清屏 
============================================================================*/ 
void disp_clear(Uchar code)   
{   Uint i1; 
   i1=32768;
   sed1335_write_command(CsrDirR);  
   sed1335_write_command(CsrW);  
   sed1335_write_data(0x00);  
   sed1335_write_data(0x00);  
   sed1335_write_command(mWrite);  
   while(i1--)  
 {  
   sed1335_write_data(code);  
 } 

}  


 void sed1335_Dispon(Uchar code)  
 { 
     
   sed1335_write_command(DispOn);  
   sed1335_write_data(code);  
   
 } 

 void sed1335_DispOff(void)  
 { 
     
   sed1335_write_command(DispOff);  
  // sed1335_write_data(code);  
   
 } 


/*============================================================================== 
 基本操作函数 
 注意字模要先上下,再左右
 每次调用输出一个80*80点阵       
 ==============================================================================*/ 
void disp_word( Uchar px, Uchar py, flash Uchar *fla_par , Uint Cnumber)  
{ 

    	Uint Optr; 
	Uchar tempCount1,ii; 
	(Uint)Cnumber*=800;//Cnumber为图像数组中的位置 
      	fla_par+=Cnumber; 
	Optr=(Uint)py*3200+(Uint)px*10; 
	sed1335_write_command( CsrDirD);                  // 自动下移
    	for (tempCount1=0;tempCount1<10;tempCount1++)  
        	{ 
            		sed1335_write_command( CsrW );                  // 光标定位指令 
       			sed1335_write_data( (Uchar)(Optr &0xff) );                      // 设置光标地址CSR 
       			sed1335_write_data( (Uchar)(Optr /256 ) ); 
       			sed1335_write_command( mWrite );               // ram写指令 
      			for(ii=0;ii<80;ii++) 
       				{ 
         				sed1335_write_data( *fla_par); 
         				fla_par++; 
      				} 
      			Optr++; 
   		} 
}    

⌨️ 快捷键说明

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