• 大小: 15KB
    文件类型: .c
    金币: 2
    下载: 2 次
    发布日期: 2021-05-29
  • 语言: 其他
  • 标签: T6963C  STM32  

资源简介

本程序是主控芯片为T6963C的LCD驱动,点阵为240128或者点阵160128或者其他都可行(简单修改下即可);硬件定义在头文件中,硬件为stm32F103VC系列单片机,IDE开发环境为keil4。此程序是直接可以使用,目前使用中未发现bug。

资源截图

代码片段和文件信息

/*************************************************************/

/* LCD.c:LCD操作函数的实现内置控制器T6963C      */

/*************************************************************/

#include “T6963.h“
#include “Ziku.h“
#include


//////////////////////////////////////////////////////////////// 
void LCD_DataIo_Out(void)//数据线输出 

    GPIO_InitTypeDef  GPIO_InitStructure; 

    GPIO_InitStructure.GPIO_Pin = DATA; 
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
    GPIO_Init(DATA_LINE &GPIO_InitStructure);    

//////////////////////////////////////////////////////////////// 
void LCD_DataIo_In(void)//数据线输入 

    GPIO_InitTypeDef  GPIO_InitStructure; 

    GPIO_InitStructure.GPIO_Pin = DATA; 
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; 
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
    GPIO_Init(DATA_LINE &GPIO_InitStructure);        


void LCD_I0_Config(void) 

    GPIO_InitTypeDef  GPIO_InitStructure; 

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOG ENABLE);

    GPIO_InitStructure.GPIO_Pin = WR | RD | CE | CD; 
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//输出 
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
    GPIO_Init(CRL_LINE &GPIO_InitStructure); 
CE_HIGH;
    GPIO_InitStructure.GPIO_Pin = DATA; 
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//输出 
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
    GPIO_Init(DATA_LINE &GPIO_InitStructure);





/**********************************************************
//功能:查询数据/指令是否可读写即判断状态字的STA0STA1标志位
//描述:STA0STA1为状态字的低两位STA0反应指令读写状态STA1反应数据读写状态1=准备好0=忙
**********************************************************/
void CheckStatus(void)
{
uint16 dat;

//LCD_DataIo_In();
DATA_LINE->BRR |= 0xFF00;
   do{
CD_HIGH;
   __NOP();__NOP(); //此延时相当重要

   CE_LOW;  
   WR_HIGH;
RD_LOW;      
__NOP();

dat=DATA_LINE->IDR; //读状态字
     __NOP();
RD_HIGH;     
     dat=0x0300&dat; //保留低2位
   }while(dat!=0x0300); //STA0STA1是否准备好
}

/**********************************************************
//功能:当使用自动写功能时STA3将取代STA0STA1成为忙标志位
//描述:STA3为状态字第三位STA3反应数据自动写状态1=准备好0=忙
**********************************************************/

void CheckAutoWrite(void)
{
uint16 dat;
//LCD_DataIo_In();
//DATA_LINE->BRR |= 0x00FF;
   do{
CD_HIGH;
__NOP();__NOP(); __NOP();__NOP();__NOP();__NOP();__NOP(); //此延时相当重要

   CE_LOW;
   WR_HIGH;
     RD_LOW;     
   __NOP();__NOP();__NOP();__NOP();__NOP();

     dat=DATA_LINE->IDR; //读状态字
__NOP();
RD_HIGH ; //模拟操作时序
dat=0x0800&dat; //保留第3位
  }while(dat!=0x0800); //STA3是否准备好                  
}

/**********************************************************
//函数原型:void WriteData(uint8 dat)                      
//功能:向T6963C发送一字节数据
//参数:发送的数据(8位)
//描述:该函数向T6963C的数据通道写数据该数据可以作为写入当前显示地址指针
所指的单元

评论

共有 条评论