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

📄 st7920.c

📁 TMS320F2808 DSP芯片的接口控制源码
💻 C
字号:


#include "DSP280x_Device.h"     // DSP280x Headerfile Include File
#include "DSP280x_Examples.h"   // DSP280x Examples Include File

#define	  SetRS		GpioDataRegs.GPADAT.bit.GPIO1 = 1
#define	  ClrRS		GpioDataRegs.GPADAT.bit.GPIO1 = 0
#define	  SetRW		GpioDataRegs.GPADAT.bit.GPIO2 = 1
#define	  ClrRW		GpioDataRegs.GPADAT.bit.GPIO2 = 0
#define	  SetE		GpioDataRegs.GPADAT.bit.GPIO0 = 1
#define	  ClrE		GpioDataRegs.GPADAT.bit.GPIO0 = 0

void   	SendData(Uint16	num,Uint16	data);
void	LcdInit(void);
void	WriteData(Uint16 data);
void	WriteCom(Uint16	com);
extern	const	Uint16	UserTab[];

Uint16	 Temp;


void main(void)
{
	Uint16	i,j;
	const	Uint16	*pBuffer;
	
    InitSysCtrl();

   DINT;

   InitPieCtrl();
   
   IER = 0x0000;
   IFR = 0x0000;

   InitPieVectTable();

 	InitGpio();  

	SetCs(1);
	SetCs(0);


	SendData(0,0xFF);
	SendData(1,0xFF);
	DELAY_US(40000);
	
	LcdInit();
	WriteCom(0x80);		
	for (i=0;i<64;i++)	
		WriteData(i+0x10);	//显示半角,从0X10处开始显示
		
	WriteCom(0x80);	
	for (i=0;i<64;i++)
	{
		WriteData(0xB4);
		WriteData(0xDE + i); //以上是从字库中“崔”字处开始显示汉字
	}
	
	WriteCom(0x01);
	WriteCom(0x32);
	WriteCom(0x36);
	
	pBuffer = UserTab;
	for (i=0;i<32;i++)
	{
		WriteCom(i+0x80);
		WriteCom(0x80);
		for(j=0;j<16;j++)
		{
			WriteData(*pBuffer);
			pBuffer++;
		}
	}
	
	for (i=0;i<32;i++)
	{
		WriteCom(i+0x80);
		WriteCom(0x88);
		for(j=0;j<16;j++)
		{
			WriteData(*pBuffer);
			pBuffer++;
		}
	}
	
	for(;;);
		
} 

void	LCDPIN(void)
{
     EALLOW;
	 GpioCtrlRegs.GPADIR.bit.GPIO3 = 0;
	 GpioCtrlRegs.GPADIR.bit.GPIO4 = 0;
	 GpioCtrlRegs.GPADIR.bit.GPIO5 = 0;
	 GpioCtrlRegs.GPADIR.bit.GPIO6 = 0;
	 GpioCtrlRegs.GPADIR.bit.GPIO7 = 0;
	 GpioCtrlRegs.GPADIR.bit.GPIO8 = 0;
	 GpioCtrlRegs.GPADIR.bit.GPIO9 = 0;
	 GpioCtrlRegs.GPADIR.bit.GPIO10 = 0;
     EDIS;
     GpioDataRegs.GPADAT.bit.GPIO11 = 1;
}

void	LCDPOUT(void)
{
     EALLOW;
	 GpioCtrlRegs.GPADIR.bit.GPIO3 = 1;
	 GpioCtrlRegs.GPADIR.bit.GPIO4 = 1;
	 GpioCtrlRegs.GPADIR.bit.GPIO5 = 1;
	 GpioCtrlRegs.GPADIR.bit.GPIO6 = 1;
	 GpioCtrlRegs.GPADIR.bit.GPIO7 = 1;
	 GpioCtrlRegs.GPADIR.bit.GPIO8 = 1;
	 GpioCtrlRegs.GPADIR.bit.GPIO9 = 1;
	 GpioCtrlRegs.GPADIR.bit.GPIO10 = 1;
     EDIS;
     GpioDataRegs.GPADAT.bit.GPIO11 = 0;
}

//============================================
// 查忙
//============================================
void	Busy(void)
{
	Uint16	Temp = 0x0400;
	LCDPIN();
	DELAY_US(50);
	ClrRS;
	SetRW;
	DELAY_US(5);
	while(Temp)
	{
		SetE;
		DELAY_US(3);
		Temp = GpioDataRegs.GPADAT.all;
		Temp = Temp & 0x0400;
		DELAY_US(2);
		ClrE;
		DELAY_US(2);
	}
}
//==========================================
// 描述:写命令函数
// 入口:’COM‘

⌨️ 快捷键说明

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