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

📄 uart_lcd_bak.c

📁 ARM7 LPC2114自已工作中编写的直流马达驱动源程序。 文件: uart_motor.HEX Uart_motor.mcp LPC2294.h 等相关文件。
💻 C
📖 第 1 页 / 共 2 页
字号:
    	IO0CLR = led1;
    	OSTimeDly(OS_TICKS_PER_SEC/5);
    }
}

/*********************************************************************************************************
** 函数名称: TaskUart0Revice
** 功能描述: μCOS-II的任务
** 输 入: 无
** 输 出: 无
** 全局变量: 无
** 调用模块: 
**
** 作 者: 陈明计
** 日 期: 2003年7月1日
**-------------------------------------------------------------------------------------------------------
** 修改人: 
** 日 期: 
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        void  TaskUart0Revice(void *pdata)
{
    
    uint8 Buf[8];
    
    pdata = pdata;                                                  /* 避免编译警告 */

    for (;;)
    {	
    	IO0SET = led1;
    	while (UART0Getch() != 0x77);       				 /* 接收数据头 */
		/*LCD_Display_a_Sentence_FUN(0x80,"这",1);
		LCD_Display_a_Sentence_FUN(0x82,"刻",0);
		LCD_Display_a_Sentence_FUN(0x84,"我",0);
		LCD_Display_a_Sentence_FUN(0x86,"们",0);
		LCD_Display_a_Sentence_FUN(0x88,"都",0);
		LCD_Display_a_Sentence_FUN(0x8a,"四",0);
		LCD_Display_a_Sentence_FUN(0x8c,"川",0);
		LCD_Display_a_Sentence_FUN(0x8e,"",0);	

		LCD_Display_a_Sentence_FUN(0x90,"人",0);
		LCD_Display_a_Sentence_FUN(0x92,"我",0);
		LCD_Display_a_Sentence_FUN(0x94,"们",0);
		LCD_Display_a_Sentence_FUN(0x96,"是",0);
		LCD_Display_a_Sentence_FUN(0x98,"中",0);
		LCD_Display_a_Sentence_FUN(0x9a,"国",0);
		LCD_Display_a_Sentence_FUN(0x9c,"人",0);
		LCD_Display_a_Sentence_FUN(0x9e,"!",0);			
		*/			
		Buf[0] = 0xff;
		Buf[1] = 0x0e;
		Buf[2] = 0xc5;
		Buf[3] = 0x00;
		Buf[4] = 0x37;
		Buf[5] = 0x01;
		Buf[6] = 0x00;
		Buf[7] = 0xfe;
		
		
	    OSMboxPost(Uart0ReviceMbox, (void *)Buf);
    }
}



/*********************************************************************************************************
** 函数名称: InitializeLCD_FUN
** 功能描述: 初始化LCD 
** 输 入:无
**
** 输 出:无
** 全局变量: LCD_WRITE_COMMAND_MODE
** 调用模块: LCD_Send_Command_Or_Data_FUN,LCD_Display_a_Sentence_FUN
**------------------------------------------------------------------------------------------------------
** 作 者: 梁浩荡
** 日 期: 2008年5月27日
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

void InitializeLCD_FUN(void)
{
     char s[40]={"这一刻我们都是"};
     char s1[40]={"四川人!"};
     //char s[40] = {"LCD initialize OK!0123456789ab"};
     //DelayNuS(100000);
     OSTimeDly(OS_TICKS_PER_SEC/10);
     LCD_Send_Command_Or_Data_FUN(LCD_WRITE_COMMAND_MODE,0x30); /*功能设置:一次送8位数据,基本指令集*/ 
	 DelayNuS(4);
     LCD_Send_Command_Or_Data_FUN(LCD_WRITE_COMMAND_MODE,0x18); /*点设定:显示字符/光标从左到右移位,DDRAM地址加1*/
	 DelayNuS(4);
     LCD_Send_Command_Or_Data_FUN(LCD_WRITE_COMMAND_MODE,0x0C); /*显示设定:开显示,显示光标,当前显示位反白闪动*/ 
	 DelayNuS(4);
     LCD_Send_Command_Or_Data_FUN(LCD_WRITE_COMMAND_MODE,0x01); /*清DDRAM*/ 
	 DelayNuS(4);
     LCD_Send_Command_Or_Data_FUN(LCD_WRITE_COMMAND_MODE,0x02); /*DDRAM地址归位*/ 
	 DelayNuS(4);
     LCD_Send_Command_Or_Data_FUN(LCD_WRITE_COMMAND_MODE,0x80); /*把显示地址设为0X80,即为第一行的首位*/ 
	 DelayNuS(4);
	 
	 LCD_Display_a_Sentence_FUN(0x80,s,1);
	 LCD_Display_a_Sentence_FUN(0x90,s1,0);
	 

}       

/*********************************************************************************************************
** 函数名称: LCD_Display_a_Sentence_FUN
** 功能描述: LCD显示一个句子
** 输 入: StartAddress_INT8U:显示首地址 * PointToSentence_INT8U:
**			数据指针 CleanDDRAM_INT8U:清DDRAM标志
** 输 出:无
** 全局变量: LCD_WRITE_COMMAND_MODE,
** 调用模块: LCD_Send_Command_Or_Data_FUN
**------------------------------------------------------------------------------------------------------
** 作 者: 梁浩荡
** 日 期: 2008年5月27日
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

void LCD_Display_a_Sentence_FUN(INT8U StartAddress_INT8U, char *PointToSentence_INT8U,INT8U CleanDDRAM_INT8U)
{
     if((StartAddress_INT8U>=0x80&&StartAddress_INT8U<0x8F)||(StartAddress_INT8U>=0x90&&StartAddress_INT8U<0x9F))
	 {
	     if(CleanDDRAM_INT8U==1)
		 {
		     LCD_Send_Command_Or_Data_FUN(LCD_WRITE_COMMAND_MODE,0x01); /*清DDRAM*/ 
		 }
         LCD_Send_Command_Or_Data_FUN(LCD_WRITE_COMMAND_MODE,StartAddress_INT8U);
         
         while((*PointToSentence_INT8U!='\0')&&(StartAddress_INT8U<0x9F))
	     {
             LCD_Send_Command_Or_Data_FUN(LCD_WRITE_DATA_MODE,*PointToSentence_INT8U++);
			 StartAddress_INT8U++;
			 if(StartAddress_INT8U==0x8F)
			 {
			     StartAddress_INT8U=0x90;
                 LCD_Send_Command_Or_Data_FUN(LCD_WRITE_COMMAND_MODE,StartAddress_INT8U);
			 }
		 }
	 }
}
/*********************************************************************************************************
** 函数名称: LCD_Send_Command_Or_Data_FUN
** 功能描述: LCD显示一个字符
** 输 入: WriteMode_INT8U:写模式 SendData_INT8U:发送数据
**			
** 输 出:无
** 全局变量: Bitmap_INT8U
** 调用模块: 
**------------------------------------------------------------------------------------------------------
** 作 者: 梁浩荡
** 日 期: 2008年5月27日
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

void LCD_Send_Command_Or_Data_FUN(INT8U WriteMode_INT8U,INT8U SendData_INT8U)
{
     INT8U i,sendbyte;
     IO0DIR |= LCD_CS_PIN | LCD_SCLK_PIN | LCD_SID_PIN;
	 	 
     IO0SET = LCD_CS_PIN;
	 IO0CLR = LCD_SCLK_PIN;
	 if(WriteMode_INT8U==1)
	 {
	     sendbyte=0xF8;     //11111 rw=0=w rs=0=instructionbuffer 0
	 }else{
	           sendbyte=0xFA;  //11111 rw=0=w rs=1=databuffer 0
	      }
	 for(i=0;i<8;i++)
	 {
	     if( (sendbyte&Bitmap_INT8U[7-i])!=0 ) IO0SET = LCD_SID_PIN;
        		else IO0CLR = LCD_SID_PIN;
	     DelayNuS(100);
		 IO0SET = LCD_SCLK_PIN;
		 DelayNuS(100);
		 IO0CLR = LCD_SCLK_PIN;
	 }

	 sendbyte=0xF0&SendData_INT8U;  //HSB 0000
	 for(i=0;i<8;i++)
	 {
	     if( (sendbyte&Bitmap_INT8U[7-i])!=0 ) IO0SET = LCD_SID_PIN;
        		else IO0CLR = LCD_SID_PIN;
		 DelayNuS(100);
		 IO0SET = LCD_SCLK_PIN;
		 DelayNuS(100);
		 IO0CLR = LCD_SCLK_PIN;
	 }

	 sendbyte=0x0F&SendData_INT8U;   //0000 LSB
	 sendbyte<<=4;              	//LSB 0000
	 for(i=0;i<8;i++)
	 {
	     if( (sendbyte&Bitmap_INT8U[7-i])!=0 ) IO0SET = LCD_SID_PIN;
        		else IO0CLR = LCD_SID_PIN;
		 DelayNuS(100);
		 IO0SET = LCD_SCLK_PIN;
		 DelayNuS(100);
		 IO0CLR = LCD_SCLK_PIN;
	 }

	 IO0CLR = LCD_CS_PIN;
}
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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