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

📄 main.c

📁 F2812实现电机控制源程序.rar
💻 C
字号:
/*********************************************************************
**	Module Name:		1602 LCD  				    				**
**	Author:				Cbq  			    						**
**	Version:			1.0			    							**
**	CreateDate:			2008-05-21		    						**
**	Description:		            			    				**
**	Remark:				Huozq		    							**
**	Revision History:	2008-11-10			    					**
**********************************************************************/

/*********************************************************************
**	实验目的:了解1602字符液晶的使用功能                             **
**	实验说明:数据线是和12864液晶共用在一起的,都是从CPLD引出来的,控  **
**           制信号RS和E两个信号线全部都是由CPLD引出的.因此在CPLD中 **
**           将会定义他们各自的地址.具体还得看我们提供的手册来学习  **
**	实验结果:显示两行字符,开发板之家的网址和电话。                 **
**********************************************************************/


#include "DSP28_Device.h"

volatile unsigned int * LCDE     = (unsigned int *) 0x4200;////LCD使能地址线
volatile unsigned int * LCDRS    = (unsigned int *) 0x4300;////数据命令选择端地址线
volatile unsigned int * LCDData  = (unsigned int *) 0x4400;////LCD写数据地址


void WriteLcdCom(unsigned char c);
void WriteLcdDat(unsigned char d);
void delay(unsigned int data);

/*要显示的字符*/
unsigned char str1[]={"study-kit.com   "};
unsigned char str2[]={"TEL:010-82623343"};
long int a;

void main(void)
{	int k;

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

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

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

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

    for(a=0;a<100000;a++);

    * LCDE = 0x00;
    
	 WriteLcdCom(0x38);		//显示模式设置
	 WriteLcdCom(0x0c);		//开显示,无光标,光标不闪烁
	 WriteLcdCom(0x06);		//读写字符后地址指针加一设置
	 WriteLcdCom(0x01);		//清屏



	 while(1)
	 { 
		WriteLcdCom(0x01);	//清屏
			 
	 	WriteLcdCom(0x80);	//第一行数据指针地址
		for(k=0;k<16;k++)
        {
 	  	    WriteLcdDat(str1[k]);
            delay(200);
        }   
        
		WriteLcdCom(0xc0);	//第二行数据指针的地址
		for(k=0;k<16;k++)
 	  	  {
 	  	    WriteLcdDat(str2[k]);
 	  	    delay(200);
 	  	  }
        
        delay(10000);
    
	  }


} 	


void WriteLcdCom(unsigned char c)
{
  	*LCDRS=0;				//切换到写命令
  	*LCDData=c;
  	*LCDE=1;
  	*LCDE=0;
  	for(a=0;a<2000;a++);
}

void WriteLcdDat(unsigned char d)
{
  	*LCDRS=1;				//切换到写数据
  	*LCDData=d;
  	*LCDE=1;
  	*LCDE=0;
  	for(a=0;a<2000;a++);
}

void delay(unsigned int data)
{
  unsigned int i;
     while(data--)
      {
        for(i=0;i<1000;i++);
      }  
}

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

⌨️ 快捷键说明

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