main.c

来自「F2812实现电机控制源程序.rar」· C语言 代码 · 共 164 行

C
164
字号
/*********************************************************************
**	Module Name:		12864 LCD 				    				**
**	Author:				Cbq  			    						**
**	Version:			1.0			    							**
**	CreateDate:			2008-05-21		    						**
**	Description:		            			    				**
**	Remark:				Huozq		    							**
**	Revision History:	2008-11-10			    					**
**********************************************************************/

/*********************************************************************
**	实验目的:通过学习本实验理解液晶在DSP中的使用.                   **
**	实验说明:从原理图我们可以看到,外围硬件主要由DSP和CPLD来组成的,  **
**           其他配置大家打开我们提供的FYD12864使用手册看一下,里面  **
**           讲的很清楚.                                            **
**           注意:两个重要的控制信号,是由DSP引出的T3CTRIP和T4CTRIP, **
**           分别是做为数据命令切换信号和使能控制信号.              **
**	实验结果:运行程序后,在看LCD上看到4行开发板之家欢迎您的字体.     **                                       **
**********************************************************************/



#include "DSP28_Device.h"


volatile unsigned int * LCDData  = (unsigned int *) 0x4400;//液晶数据线写地址,可用此地址锁存要送给液晶的数据


void WriteLcdCom(unsigned char c);///写命令函数
void WriteLcdDat(unsigned char d);///写数据函数


long int a;

void main(void)
{	

	/*初始化系统*/
	InitSysCtrl();

	/*关中断*/
	DINT;
	IER = 0x0000;
	IFR = 0x0000;

	/*初始化PIE*/
	InitPieCtrl();

	/*初始化PIE中断矢量表*/
	InitPieVectTable();	
	
	/*初始化外设*/
    InitPeripherals();

    for(a=0;a<100000;a++);
   
    //因为我们前面已经配置了GPIO为输出,所以这里我们用了GPIO数据寄存器来控
    //制其输出变量
    
    GpioDataRegs.GPDDAT.bit.GPIOD5 = 0;///输出为低
    GpioDataRegs.GPDDAT.bit.GPIOD6 = 0;///输出为低

    WriteLcdCom(0x01);////清屏
    
    WriteLcdCom(0x0e);////整体显示开,游标开
    
    WriteLcdCom(0x80);////第一行第一个字节地址  
    WriteLcdDat(0xbf);
    WriteLcdDat(0xaa);
    WriteLcdDat(0xb7);
    WriteLcdDat(0xa2);
    WriteLcdDat(0xb0);
    WriteLcdDat(0xe5);
    WriteLcdDat(0xd6);
    WriteLcdDat(0xae);
    WriteLcdDat(0xbc);
    WriteLcdDat(0xd2);
    WriteLcdDat(0xbb);
    WriteLcdDat(0xb6);
    WriteLcdDat(0xd3);
    WriteLcdDat(0xad);
    WriteLcdDat(0xc4);
    WriteLcdDat(0xfa);
    
    WriteLcdCom(0x90); ////第二行第一个字节地址  
    WriteLcdDat(0xbf);
    WriteLcdDat(0xaa);
    WriteLcdDat(0xb7);
    WriteLcdDat(0xa2);
    WriteLcdDat(0xb0);
    WriteLcdDat(0xe5);
    WriteLcdDat(0xd6);
    WriteLcdDat(0xae);
    WriteLcdDat(0xbc);
    WriteLcdDat(0xd2);
    WriteLcdDat(0xbb);
    WriteLcdDat(0xb6);
    WriteLcdDat(0xd3);
    WriteLcdDat(0xad);
    WriteLcdDat(0xc4);
    WriteLcdDat(0xfa);
    
    WriteLcdCom(0x88); ////第三行第一个字节地址  
    WriteLcdDat(0xbf);//开
    WriteLcdDat(0xaa);
    WriteLcdDat(0xb7);//发
    WriteLcdDat(0xa2);
    WriteLcdDat(0xb0);//板
    WriteLcdDat(0xe5);
    WriteLcdDat(0xd6);//之
    WriteLcdDat(0xae);
    WriteLcdDat(0xbc);//家
    WriteLcdDat(0xd2);
    WriteLcdDat(0xbb);//欢
    WriteLcdDat(0xb6);
    WriteLcdDat(0xd3);//迎
    WriteLcdDat(0xad);
    WriteLcdDat(0xc4);//您
    WriteLcdDat(0xfa);
    
    WriteLcdCom(0x98);////第四行第一个字节地址   
    WriteLcdDat(0xbf);
    WriteLcdDat(0xaa);
    WriteLcdDat(0xb7);
    WriteLcdDat(0xa2);
    WriteLcdDat(0xb0);
    WriteLcdDat(0xe5);
    WriteLcdDat(0xd6);
    WriteLcdDat(0xae);
    WriteLcdDat(0xbc);
    WriteLcdDat(0xd2);
    WriteLcdDat(0xbb);
    WriteLcdDat(0xb6);
    WriteLcdDat(0xd3);
    WriteLcdDat(0xad);
    WriteLcdDat(0xc4);
    WriteLcdDat(0xfa);
    
} 	


void WriteLcdCom(unsigned char c)
{
  	GpioDataRegs.GPDDAT.bit.GPIOD5 = 0;		//写命令控制数据
  	* LCDData=c;							//将命令数据写入CPLD地址
  	GpioDataRegs.GPDDAT.bit.GPIOD6 = 1;		//负跳变脉冲,把数据送入DR
  
  	GpioDataRegs.GPDDAT.bit.GPIOD6 = 0;
  	for(a=0;a<5000;a++);
}

void WriteLcdDat(unsigned char d)
{
  	GpioDataRegs.GPDDAT.bit.GPIOD5 = 1;		//写显示数据
  	* LCDData=d;							//送入地址
  	GpioDataRegs.GPDDAT.bit.GPIOD6 = 1;
  	GpioDataRegs.GPDDAT.bit.GPIOD6 = 0;
  	for(a=0;a<5000;a++);
}

//===========================================================================
// No more.
//===========================================================================

⌨️ 快捷键说明

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