- 打卡等级:常住居民III
 
				- 打卡总天数:127
 
				
				
				- 最近打卡:2025-11-03 00:08:53
 
				  
  已绑定手机  
高级会员 
 
 
	- 积分
 - 549
 
 
 
 
 | 
 
中景园的1.3寸屏怎么软件驱动成功点亮屏幕,改成硬件驱动.硬件驱动初始化赋值了多种模式均无法点亮屏幕 
void SPI_Init(void) 
                { 
                SPDAT=0;//数据寄存器清0 
                SPCTL=0xDC;         //  1101 11xx 主模式,使能,先传数据最高位,前时钟为下降沿,并在下降沿驱动数据,上升沿检测数据 
/***************************************************************************************         
        SSIG:SS引脚功能控制位 D7 
            0:SS引脚确定器件是主机还是从机 
            1:忽略SS引脚功能,使用MSTR确定器件是主机还是从机 
        SPEN:SPI使能控制位  D6 
            0:关闭SPI功能  
            1:使能SPI功能 
        DORD:SPI数据位发送/接收的顺序 D5 
            0:先发送/接收数据的高位(MSB) 
            1:先发送/接收数据的低位(LSB) 
        MSTR:器件主/从模式选择位 设置主机模式: D4 
            若SSIG-0,则SS管脚必须为高电平且设置MSTR为1  
            若SSIG-1,则只需要设置MSTR为1(忽略SS管脚的电平) 
            设置从机模式: 若SSIG-0,则SS管脚必须为低电平(与MSTR位无关 若SSIG=1,则只需要设置MSTR为0(忽略SS管脚的电平) 
        CPOL:SPI时钟极性控制 D3 
            0:SCLK空闲时为低电平,SCLK的前时钟沿为上升沿,后时钟沿为下降沿 
            1:SCLK空闲时为高电平,SCLK的前时钟沿为下降沿,后时钟沿为上升沿  
        CPHA:SPI时钟相位控制 D2 
            0:数据SS管脚为低电平驱动第一位数据并在SCLK的后时钟沿改变数据,前时钟沿采样数据(必 须SSIG=0)  
            1:数据在SCLK的前时钟沿驱动,后时钟沿采样  
        SPR[1:0] SPI时钟频率选择 D1+D0 
            00 SYSCLK/4 
            01 SYSCLK/8 
            10 SYSCLK/16 
            11 SYSCLK/2 
**************************************************************************************************************/ 
                SPSTAT = 0xC0;      //  清中断标志 
                P_SW1 = 0x04;       //  P_SW1 = 0x00;//SS_1/P1.2, MOSI/P1.3, MISO/P1.4, SCLK/P1.5 
                                                        //  P_SW1 = 0x04;//SS_2/P2.2, MOSI_2/P2.3, MISO_2/P2.4, SCLK_2/P2.5 
                                                        //  P_SW1 = 0x08;//SS_3/P7.4, MOSI_3/P7.5, MISO_3/P7.6, SCLK_3/P7.7 
                                                        //  P_SW1 = 0x0c;//SS_4/P3.5, MOSI_4/P3.4, MISO_4/P3.3, SCLK_4/P3.2 
                }          
 
 
/****************************************************************************** 
      函数说明:LCD串行数据写入函数 
      入口数据:dat  要写入的串行数据 
      返回值:  无 
******************************************************************************/ 
void LCD_Writ_Bus(u8 dat) 
{         
    LCD_CS_Clr(); // CS=0 
    SPDAT = dat; 
    while(!(SPSTAT & 0x80)); 
    SPSTAT = 0xC0;    
} 
 
 
/****************************************************************************** 
      函数说明:LCD写入数据 
      入口数据:dat 写入的数据 
      返回值:  无 
******************************************************************************/ 
void LCD_WR_DATA8(u8 dat) 
{ 
    //LCD_DC_Set();          // DC =1 
        LCD_Writ_Bus(dat); 
} 
 
 
/****************************************************************************** 
      函数说明:LCD写入数据 
      入口数据:dat 写入的数据 
      返回值:  无 
******************************************************************************/ 
void LCD_WR_DATA(u16 dat) 
{ 
    //LCD_DC_Set();          // DC =1 
        LCD_Writ_Bus(dat>>8); 
        LCD_Writ_Bus(dat); 
} 
 
 
/****************************************************************************** 
      函数说明:LCD写入命令 
      入口数据:dat 写入的命令 
      返回值:  无 
******************************************************************************/ 
void LCD_WR_REG(u8 dat) 
{ 
        LCD_DC_Clr();//写命令 
        LCD_Writ_Bus(dat); 
        LCD_DC_Set();//写数据 
} 
以下是.H文件的部分 
 
 
 
#define USE_HORIZONTAL 0  //设置横屏或者竖屏显示 0或1为竖屏 2或3为横屏 
 
 
#define LCD_W 240 
#define LCD_H 240 
 
//sbit LCD_SCL=P2^5;//SCLK/scl 
//sbit LCD_SDA=P2^4;//MOSI/sda 
sbit LCD_RES=P2^0;//RES 
sbit LCD_DC =P2^1;//DC 
sbit LCD_CS =P2^2; //CS   
sbit LCD_BLK=P1^4; //BLK 
 
//-----------------LCD端口定义---------------- 
 
#define LCD_SCLK_Clr() LCD_SCL=0//SCL=SCLK 
#define LCD_SCLK_Set() LCD_SCL=1 
 
#define LCD_MOSI_Clr() LCD_SDA=0//SDA=MOSI 
#define LCD_MOSI_Set() LCD_SDA=1 
 
#define LCD_RES_Clr() LCD_RES=0//RES 
#define LCD_RES_Set() LCD_RES=1 
 
#define LCD_DC_Clr() LCD_DC=0//DC 
#define LCD_DC_Set() LCD_DC=1 
 
#define LCD_CS_Clr()  LCD_CS=0//CS 
#define LCD_CS_Set()  LCD_CS=1 
 
 
 |   
 
 
 
 |