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

📄 hd44780.c

📁 此源码是本人买的株洲开发板全套例程
💻 C
字号:

#include "DSP28_Device.h"
#include "DSP28_Globalprototypes.h"

#define	  SetData	GpioDataRegs.GPFDAT.bit.GPIOF12 = 1
#define	  ClrData   GpioDataRegs.GPFDAT.bit.GPIOF12 = 0
#define	  SetClk	GpioDataRegs.GPFDAT.bit.GPIOF8 = 1
#define	  ClrClk	GpioDataRegs.GPFDAT.bit.GPIOF8 = 0

#define	  SetRS	GpioDataRegs.GPADAT.bit.GPIOA5 = 1
#define	  ClrRS	GpioDataRegs.GPADAT.bit.GPIOA5 = 0
#define	  SetRW	GpioDataRegs.GPADAT.bit.GPIOA6 = 1
#define	  ClrRW	GpioDataRegs.GPADAT.bit.GPIOA6 = 0
#define	  SetE	GpioDataRegs.GPADAT.bit.GPIOA7 = 1
#define	  ClrE	GpioDataRegs.GPADAT.bit.GPIOA7 = 0


unsigned  int  *LedReg  = (unsigned int *)0x27FF;
unsigned  int  *Led8Lock = (unsigned int *)0x2BFF;

void	SendData(Uint16	data);
void	LcdInit(void);
void	WriteData(Uint16 data);
void	WriteNum(Uint16 row,Uint16 col,Uint16 num);
void	WriteCGRAM(Uint16	num, const Uint16	 *pBuffer);
void	WriteMenu(const	Uint16	*pBuffer);

const	Uint16	UserTab[]={
							 0x00,0x00,0x04,0x0E,0x1F,0x1F,0x00,0x00,
							 0x00,0x00,0x1F,0x1F,0x0E,0x04,0x00,0x00,
							 0x00,0x03,0x07,0x0F,0x07,0x03,0x00,0x00,
							 0x00,0x0C,0x0E,0x0F,0x0E,0x0C,0x00,0x00,	
						  };
const	Uint16	MenuTab[]={
							 'V','o','l','t','a','g','e',' ','=',' ','.',' ',' ','k','V',' ',
							 ' ','S','e','t',' ','b','y',' ',' ','[',0x00,0x01,0x02,0x03,']',' ',
						  };
						  							  	
void main(void)
{

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

	/*关中断*/
	DINT;
	IER = 0x0000;
	IFR = 0x0000;
	/*初始化PIE*/
	InitPieCtrl();

	/*初始化PIE中断矢量表*/
	InitPieVectTable();	
	
	/*初始化外设*/
    InitPeripherals();
    
	InitGpio();
    
	*Led8Lock = 0X07;
	*LedReg = 0xFF;
	SendData(0xFF);
	LcdInit();
	WriteNum(1,3,0);
	WriteCGRAM(32,UserTab);
	WriteMenu(MenuTab);
	for(;;);

} 	


void	delay(Uint16  number)
{
	Uint16  j;
	for(j = 0;j < number;j++);
}	
void	SendData(Uint16 data)
{
	Uint16	i,Temp;
	Temp = 0x80;
	for	(i=0;i<8;i++)
		{
			if ((data & Temp)==0)	ClrData;
			else	SetData;
			Temp >>= 1;
			ClrClk;
			delay(10);
			SetClk;
		}
	*Led8Lock = 0x03;
	delay(10);	
	*Led8Lock = 0x07;
	SetData;		
}		

void	LCDPIN(void)
{
     EALLOW;
   	 GpioMuxRegs.GPADIR.all = 0x00FC;
     EDIS;
     GpioDataRegs.GPADAT.bit.GPIOA4 = 1;
}

void	LCDPOUT(void)
{
     EALLOW;
  	 GpioMuxRegs.GPADIR.all = 0xFFFC;
     EDIS;
     GpioDataRegs.GPADAT.bit.GPIOA4 = 0;     
}
//============================================
// 查忙
//============================================
void	Busy(void)
{
	Uint16	Temp = 0x8000;
	LCDPIN();
	delay(200);
	ClrRS;
	SetRW;
	while(Temp)
	{
		SetE;
		delay(50);
		Temp = GpioDataRegs.GPADAT.all;
		Temp = Temp & 0x8000;
		ClrE;
		delay(50);
	}

}

//==========================================
// 描述:写命令函数
// 入口:’COM‘

⌨️ 快捷键说明

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