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

📄 ra8806.c

📁 Radio公司的最新控制器RA8806只要一条命令就可以实现硬件上90度的滚屏效果
💻 C
📖 第 1 页 / 共 4 页
字号:
}

//==============================================================================
//Subroutine:	LCD_GotoXY
//Function:		LCD Cursor X-Y
//==============================================================================
void LCD_GotoXY(uchar x, uchar y)
{
	LCD_CmdWrite(CURX);
	LCD_DataWrite((x & B0011_1111));
Delay2us(1);
	LCD_CmdWrite(CURY);
	LCD_DataWrite((y & B1111_1111));
Delay2us(1);
}
//==============================================================================
//Subroutine:	LCD_Graphic
//Function:
//==============================================================================
void LCD_Graphic(void)
{
	uchar temp;
	
	LCD_CmdWrite(WLCR);
	temp = LCD_DataRead();
	temp &= cClrb3;
	LCD_CmdWrite(WLCR);
	LCD_DataWrite(temp);
}

void LCD_Text(void)
{
	uchar temp;
	
	LCD_CmdWrite(WLCR);
	temp = LCD_DataRead();
	temp |= cSetb3;
	LCD_CmdWrite(WLCR);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	LCD_Cursor_Inc
//Function:
//==============================================================================
void LCD_Cursor_Inc(void)
{
	uchar temp;
	
	LCD_CmdWrite(WCCR);
	temp = LCD_DataRead();
	temp &= cClrb7;
	LCD_CmdWrite(WCCR);
	LCD_DataWrite(temp);	
}

void LCD_Cursor_No_Inc(void)
{
	uchar temp;
	
	LCD_CmdWrite(WCCR);
	temp = LCD_DataRead();
	temp |= cSetb7;
	LCD_CmdWrite(WCCR);
	LCD_DataWrite(temp);	
}

//==============================================================================
//Subroutine:	LCD_Cursor_Inc
//Function:
//==============================================================================
void LCD_GB_Sel(void)
{
	uchar temp;
	
	LCD_CmdWrite(WLCR);
	temp = LCD_DataRead();
	temp |= cSetb4;
	LCD_CmdWrite(WLCR);
	LCD_DataWrite(temp);	
}

//==============================================================================
//Subroutine:	LCD_Cursor_Inc
//Function:
//==============================================================================
void Reverse_Data(void)
{
	uchar temp;
	
	LCD_CmdWrite(WCCR);
	temp = LCD_DataRead();
	temp |= cSetb5;
	LCD_CmdWrite(WCCR);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	LCD_Cursor_Inc
//Function:
//==============================================================================
void NoReverse_Data(void)
{
	uchar temp;
	
	LCD_CmdWrite(WCCR);
	temp = LCD_DataRead();
	temp &= cClrb5;
	LCD_CmdWrite(WCCR);
	LCD_DataWrite(temp);
}
//==============================================================================
//Subroutine:	Cursor_Shift_Direct_HV
//Function:
//==============================================================================
void Cursor_Shift_Direct_HV(void)
{
	uchar temp;
	
	LCD_CmdWrite(MAMR);
	temp = LCD_DataRead();
	temp &= cClrb7;
	LCD_CmdWrite(MAMR);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	Cursor_Shift_Direct_VH
//Function:
//==============================================================================
void Cursor_Shift_Direct_VH(void)
{
	uchar temp;
	
	LCD_CmdWrite(MAMR);
	temp = LCD_DataRead();
	temp |= cSetb7;
	LCD_CmdWrite(MAMR);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	SEG_DIR_0_319
//Function:
//==============================================================================
void SEG_DIR_0_319(void)
{
	uchar temp;
	
	LCD_CmdWrite(MISC);
	temp = LCD_DataRead();
	temp &= cClrb1;
	LCD_CmdWrite(MISC);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	SEG_DIR_319_0
//Function:
//==============================================================================
void SEG_DIR_319_0(void)
{
	uchar temp;
	
	LCD_CmdWrite(MISC);
	temp = LCD_DataRead();
	temp |= cSetb1;
	LCD_CmdWrite(MISC);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	COM_DIR_0_239
//Function:
//==============================================================================
void COM_DIR_0_239(void)
{
	uchar temp;
	
	LCD_CmdWrite(MISC);
	temp = LCD_DataRead();
	temp &= cClrb0;
	LCD_CmdWrite(MISC);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	COM_DIR_239_0
//Function:
//==============================================================================
void COM_DIR_239_0(void)
{
	uchar temp;
	
	LCD_CmdWrite(MISC);
	temp = LCD_DataRead();
	temp |= cSetb0;
	LCD_CmdWrite(MISC);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	Scroll_Dir_LR_TB
//Function:
//==============================================================================
void Scroll_Dir_LR_TB(void)
{
	uchar temp;
	
	LCD_CmdWrite(ADSR);
	temp = LCD_DataRead();
	temp &= cClrb2;
	LCD_CmdWrite(ADSR);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	Scroll_Dir_RL_BT
//Function:
//==============================================================================
void Scroll_Dir_RL_BT(void)
{
	uchar temp;
	
	LCD_CmdWrite(ADSR);
	temp = LCD_DataRead();
	temp |= cSetb2;
	LCD_CmdWrite(ADSR);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	Horizontal_Scroll
//Function:
//==============================================================================
void Horizontal_Scroll(void)
{
	uchar temp;
	
	LCD_CmdWrite(ADSR);
	temp = LCD_DataRead();
	temp &= cClrb1;
	LCD_CmdWrite(ADSR);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	Vertical_Scroll
//Function:
//==============================================================================
void Vertical_Scroll(void)
{
	uchar temp;
	
	LCD_CmdWrite(ADSR);
	temp = LCD_DataRead();
	temp |= cSetb1;
	LCD_CmdWrite(ADSR);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	Scroll_Enable
//Function:
//==============================================================================
void Scroll_Enable(void)
{
	uchar temp;
	
	LCD_CmdWrite(ADSR);
	temp = LCD_DataRead();
	temp |= cSetb0;
	LCD_CmdWrite(ADSR);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	Scroll_Disable
//Function:
//==============================================================================
void Scroll_Disable(void)
{
	uchar temp;
	
	LCD_CmdWrite(ADSR);
	temp = LCD_DataRead();
	temp &= cClrb0;
	LCD_CmdWrite(ADSR);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	Clock_Output_Enable
//Function:
//==============================================================================
void Clock_Output_Enable(void)
{
	uchar temp;
	
	LCD_CmdWrite(MISC);
	temp = LCD_DataRead();
	temp |= cSetb6;
	LCD_CmdWrite(MISC);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	Clock_Output_Disable
//Function:
//==============================================================================
void Clock_Output_Disable(void)
{
	uchar temp;
	
	LCD_CmdWrite(MISC);
	temp = LCD_DataRead();
	temp &= cClrb6;
	LCD_CmdWrite(MISC);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	XCLK_Speed_x1
//Function:
//==============================================================================
void XCLK_Speed_x1(void)
{
	uchar temp;
	
	LCD_CmdWrite(MISC);
	temp = LCD_DataRead();
	temp &= cClrb2;
	LCD_CmdWrite(MISC);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	XCLK_Speed_x0d5
//Function:
//==============================================================================
void XCLK_Speed_x0d5(void)
{
	uchar temp;
	
	LCD_CmdWrite(MISC);
	temp = LCD_DataRead();
	temp |= cSetb2;
	LCD_CmdWrite(MISC);
	LCD_DataWrite(temp);
}


//==============================================================================
//Subroutine:	Gray_Mode
//Function:
//==============================================================================
void Gray_Mode(void)
{
	uchar temp;
	
	LCD_CmdWrite(MAMR);
	temp = LCD_DataRead();
	temp &= cClrb6;
	temp &= cClrb5;
	temp &= cClrb4;
	LCD_CmdWrite(MAMR);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	Enable_LongKey
//Function:
//==============================================================================
void Enable_LongKey(void)
{
	uchar temp;

	LCD_CmdWrite(KSCR1);	
	temp = LCD_DataRead();
	temp |= cSetb3;
	LCD_CmdWrite(KSCR1);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	Only_Show_Page2
//Function:
//==============================================================================
void Only_Show_Page2(void)
{
	uchar temp;
	
	LCD_CmdWrite(MAMR);
	temp = LCD_DataRead();
	temp &= cClrb6;
	temp |= cSetb5;
	temp &= cClrb4;
	LCD_CmdWrite(MAMR);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	Only_Show_Page1
//Function:
//==============================================================================
void Only_Show_Page1(void)
{
	uchar temp;
	
	LCD_CmdWrite(MAMR);
	temp = LCD_DataRead();
	temp &= cClrb6;
	temp &= cClrb5;
	temp |= cSetb4;
	LCD_CmdWrite(MAMR);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	Show_Two_Layer
//Function:
//==============================================================================
void Show_Two_Layer(void)
{
	uchar temp;
	
	LCD_CmdWrite(MAMR);
	temp = LCD_DataRead();
	temp &= cClrb6;
	temp |= cSetb5;
	temp |= cSetb4;
	LCD_CmdWrite(MAMR);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	XOR_Two_Layer
//Function:
//==============================================================================
void XOR_Two_Layer(void)
{
	uchar temp;
	
	LCD_CmdWrite(MAMR);
	temp = LCD_DataRead();
	temp &= cClrb3;
	temp |= cSetb2;
	LCD_CmdWrite(MAMR);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	Reverse_Block
//Function:
//==============================================================================
void Reverse_Block(uchar XP, uchar YP)
{
	uchar i;
	LCD_Graphic();
	LCD_GotoXY(XP,YP);
	
	for(i=0;i<16;i++)
	{
		LCD_CmdWrite(0xb0);
		LCD_DataWrite(0xff);
		LCD_DataWrite(0xff);
		LCD_GotoXY(XP,YP+i+1);
	}
}

//==============================================================================
//Subroutine:	Access_2Page
//Function:
//==============================================================================
void Access_Page0(void)
{
	uchar temp;
	
	LCD_CmdWrite(MAMR);
	temp = LCD_DataRead();
	temp &= cClrb1;
	temp &= cClrb0;
	LCD_CmdWrite(MAMR);
	LCD_DataWrite(temp);
}

//==============================================================================
//Subroutine:	Access_Page2
//Function:
//==============================================================================
void Access_Page2(void)
{
	uchar temp;
	
	LCD_CmdWrite(MAMR);
	temp = LCD_DataRead();
	temp |= cSetb1;
	temp &= cClrb0;
	LCD_CmdWrite(MAMR);
	LCD_DataWrite(temp);
}

//==============================================================================

⌨️ 快捷键说明

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