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

📄 ui.c

📁 第4章-μCOS-II中间件 4.1-数据队列 4.2-串口驱动 4.3-MODEM接口模块 4.4-I2C总线模块 4.5-SPI总线模块 4.6-ZLGFS文件系统
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                               Guangzou ZLG-MCU Development Co.,LTD.
**                                      graduate school
**                                 http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name:			main.c
** Last modified Date:  2004-09-16
** Last Version:		1.0
** Descriptions:		The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by:			Chenmingji
** Created date:		2004-09-16
** Version:				1.0
** Descriptions:		The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#include  "config.h"
#include  <stdio.h>
#include  <stdlib.h>
#include  "string.h"
#include  "zk.h"
#include  "Ui.h"
#include 	"spi.h"


#define Function_set_ini   0x20
#define ReadStatusByte_ini   0x00
#define Set_VLCD_ini   0x04
#define Display_Control_ini   0x08
#define Set_Y_Address_ini   0x40
#define Set_X_Address_ini   0x80
#define Display_Configuration_ini   0x04
#define Sets_Bias_System_ini   0x10
#define Set_Start_line_ini   0x40
#define Set_VOP_ini   0x80
#define Display_Control_ini   0x08
#define Line_Inversion_ini   0x40










/****************************************************************************
* 名称:Writer command ()
* 功能:初始化PWM功能模块,并由PWM6输出PWM波形。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void Write_Command(unsigned char Command)

{  unsigned char i,temp; 


          IOCLR=DC;              // A0=0 COMMAND
// 	   IOSET=SD;
//	   IOSET=SCLK;         
     
          IOCLR=CE;              
                               
          for (i=0;i<8;i++)
          {
          
          	IOCLR=SCLK;
          
          	if( Command &0x80) IOSET=SD;else IOCLR=SD;
			
          	
          	Command<<=1;
          	
          	
          	IOSET=SCLK;
          	
          	
          }      
              
           IOSET=DC|CE;              // A0=1 no COMMAND

 
                       
                
}  


/****************************************************************************
* 名称:Writer data ()
* 功能:初始化PWM功能模块,并由PWM6输出PWM波形。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void Write_Data(unsigned char Data)

{  unsigned char i,temp; 

	   IOSET=DC;		 // A0=1  DATA
//   	   IOSET=SD;
//	   IOSET=SCLK;
          IOCLR=CE;              
                               
          for (i=0;i<8;i++)
          {
          	IOCLR=SCLK;
          	if( Data &0x80) IOSET=SD;else IOCLR=SD;
          	
          	Data<<=1;
          	
          	IOSET=SCLK;
          	
          }      


          
              
          IOSET=DC|CE;              // A0=1 DATA

                      
                
}           


/****************************************************************************
* 名称:PWM_Init()
* 功能:初始化PWM功能模块,并由PWM6输出PWM波形。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void  LCD_Init(void)
{   
unsigned char i,j;	

 	   IO0DIR|=RES|SCLK|DC|SD|CE;
	   
	   IOSET=RES|DC;
	    
//		wait_ms(100);

         OSTimeDly(50);
        IOSET=RES;
 //       wait_ms(1);         // DELAY 1mS
         OSTimeDly(10);
        IOCLR=RES;         // RESET CHIP
 //       wait_ms(1);         // DELAY 1mS
          OSTimeDly(10);
        IOSET=RES;          //su reset low time = 300ns
//        wait_ms(1);         // DELAY 1mS
         OSTimeDly(10);




//INIT CHIP

         //       MOV     A,#00100011B    ; 0,0,1,MX,MY,PD,H1,H0       
          //      CALL    WR_INST         ; SET H[1:0]=11 ; MX=0(COM0->COM66); MY=0(SEG0->SEG101); PD=0
           Write_Command(0x23);

          //      MOV     A,#10010110B    ; 1,0,0,1,BE1,BE0,PC1,PC0                                 
         //       CALL    WR_INST         ; BE1,BE0=10(DEFAULT);PC1,PC0=11-->5

		  Write_Command(0x96);  
		  ;
         //       MOV     A,#00100001B    ; 0,0,1,MX,MY,PD,H1,H0       
         //       CALL    WR_INST         ; SET H[1:0]=01 ; MX=0(COM0->COM66); MY=0(SEG0->SEG101); PD=0

		 Write_Command(0x21);

		
           //     MOV     A,#11001011B    ; 1,VOP6,VOP5,VOP4,VOP3,VOP2,VOP1,VOP0
           //     CALL    WR_INST         ; VOP=9V=6.75+0.03*75;  75=4Bh ;                              

		Write_Command(0xcb);

										; 
           //     MOV     A,#00010010B    ; 0,0,0,1,0,BS2,BS1,BS0
            //    CALL    WR_INST         ; BIAS=010=1/9

		Write_Command(0x12);

		   
		// 0 0 0 0 0 0 1 DO X x Top/bottom row mode set

		Write_Command(0x0c);

		   
         //       MOV     A,#00100000B    ; 0,0,1,MX,MY,PD,H1,H0       
         //       CALL    WR_INST         ; SET H[1:0]=00 ; MX=0(COM0->COM66); MY=0(SEG0->SEG101); PD=0


			Write_Command(0x20);
		 
          //      MOV     A,#10000000B    ; 1,X6,X5,X4,X3,X2,X1,X0                   
          //      CALL    WR_INST         ; X=0

		Write_Command(0x80);

	
           //     MOV     A,#01000000B    ; 0,1,0,0,Y3,Y2,Y1,Y0                          	
          //      CALL    WR_INST         ; Y=0                             	

		Write_Command(0x40);

		  
          //      MOV     A,#00000101B    ; 0,0,0,0,0,1,0,PRS
         //       CALL    WR_INST         ; PRS=1


		Write_Command(0x05);

		
         //       MOV     A,#00001100B    ; 0,0,0,0,1,D,0,E                                 
          //      CALL    WR_INST         ; D,E=1,0=DISPLAY ON


		 Write_Command(0x0c);
         //       MOV     A,#00100000B    ; 0,0,1,MX,MY,PD,H1,H0       
         //       CALL    WR_INST         ; SET H[1:0]=00 ; MX=0(COM0->COM66); MY=0(SEG0->SEG101); PD=0
	
		Write_Command(0x20);
		 
		 for(i=0;i<10;i++)
		 {

		 Write_Command(0x40|i);         //Y ADDRESS SET Y=0~8 page0~8
		 Write_Command(0x80);         //X ADDRESS SET X=0
		 
			 for(j=0;j<96;j++)
		 	{
		 		Write_Data(0xff);
				
			 }	
		 }
		 
}



void  show(unsigned char * pStrings,unsigned char x,unsigned char y)
{   
unsigned char i,j;	


		x=x*5+3;
		Write_Command(0x20);
		Write_Command(0x40|y);          //Y ADDRESS SET Y=0~8 page0~8
		Write_Command(0x80);        	 //X ADDRESS SET X=0
		
			 for(j=0;j<96;j++)
		 	{
		 		Write_Data(0x00);
				
			 }	

		Write_Command(0x40|y);          //Y ADDRESS SET Y=0~8 page0~8
		Write_Command(0x80|x);         //X ADDRESS SET X=0

	
	
		
		 for(i=0;i<strlen((const char * )  pStrings);i++)
		 {
			
		 
			 for(j=0;j<5;j++)
		 	{
		 		 
		 		Write_Data(dot[((unsigned char)pStrings[i]-0x20)*5+j]);

			 }	

		 }
		 




}




 

/*********************************************************************************************************
**                            End Of File
]
********************************************************************************************************/

/*

       
void Write_Command(unsigned char Command)

{  unsigned char i,temp; 


          IOCLR=DC;              // A0=0 COMMAND
          
       
           IOSET=DC|CE;              // A0=1 no COMMAND

            SPIStart();
            IO0CLR = CE;
            SPIRW(&temp, Command);
            IO0SET = CE;
            SPIEnd();
            IOSET=DC;              // A0=1 DATA
                       
                
}  
void Write_Data(unsigned char Data)

{  unsigned char i,temp; 

	   IOSET=DC;		 // A0=1  DATA


            SPIStart();
            IO0CLR = CE;
            SPIRW(&temp, Data);
            IO0SET = CE;
            SPIEnd();

          
              

           IOSET=DC;              // A0=1 DATA
                      
                
}           
void Write_Data(unsigned char Data)

{  unsigned char i,temp; 

	   IOSET=DC;		 // A0=1  DATA
   	   IOSET=SD;
	   IOSET=SCLK;
          IOCLR=CE;              
                               
          for (i=0;i<8;i++)
          {
          	IOCLR=SCLK;
          	if( Data &0x80) IOSET=SD;else IOCLR=SD;
          	
          	Data<<=1;
          	
          	IOSET=SCLK;
          	
          }      


          
              
          IOSET=DC|CE;              // A0=1 DATA

                      
                
}      

void Write_Command(unsigned char Command)

{  unsigned char i,temp; 


          IOCLR=DC;              // A0=0 COMMAND
 	   IOSET=SD;
	   IOSET=SCLK;         
     
          IOCLR=CE;              
                               
          for (i=0;i<8;i++)
          {
          
          	IOCLR=SCLK;
          
          	if( Command &0x80) IOSET=SD;else IOCLR=SD;
			
          	
          	Command<<=1;
          	
          	
          	IOSET=SCLK;
          	
          	
          }      
              
           IOSET=DC|CE;              // A0=1 no COMMAND

 
                       
                
}  

*/

⌨️ 快捷键说明

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