📄 setddramaddr.c
字号:
#include <p30fxxxx.h>
#include <xlcd.h>
/*External LCD functions are only defined for the following devices */
#if defined(__dsPIC30F5011__) || defined(__dsPIC30F5013__) || defined(__dsPIC30F6010__) || \
defined(__dsPIC30F6011__) || defined(__dsPIC30F6012__) || defined(__dsPIC30F6013__) || \
defined(__dsPIC30F6014__)
/*******************************************************************
Function Name : setDDRamAddr
Description : This function sets the display data address
of the LCD controller.
The user must first check if the controller
is busy or not by calling the busyXLCD()
function.
Input parameters: char address
Return value: void
********************************************************************/
void SetDDRamAddr( char address)
{
RW_PIN = 0; /* enable write */
RS_PIN = 0; /* select Instruction Reg */
/* configure the common data pins as output */
TRIS_DATA_PIN_7 = 0;
TRIS_DATA_PIN_6 = 0;
TRIS_DATA_PIN_5 = 0;
TRIS_DATA_PIN_4 = 0;
/*DB7 must be 1 for setting DDRam ADDR */
DATA_PIN_7 = 1;
/* address is only of 7 bits in length */
DATA_PIN_6 = (unsigned int) ((address & 0x40)>>6);
DATA_PIN_5 = (unsigned int) ((address & 0x20)>>5);
DATA_PIN_4 = (unsigned int) ((address & 0x10)>>4);
# ifdef EIGHT_BIT_INTERFACE
/* configure the other pins as output */
TRIS_DATA_PIN_3 = 0;
TRIS_DATA_PIN_2 = 0;
TRIS_DATA_PIN_1 = 0;
TRIS_DATA_PIN_0 = 0;
DATA_PIN_3 = (unsigned int)(( address & 0x08)>>3);
DATA_PIN_2 = (unsigned int)(( address & 0x04)>>2);
DATA_PIN_1 = (unsigned int)((address & 0x02)>>1);
DATA_PIN_0 = (unsigned int)(( address & 0x01)>>0);
E_PIN = 1; /* enable read/write */
Delay18Tcy();
E_PIN = 0;
# else
E_PIN = 1;
Delay18Tcy();
E_PIN = 0;
RW_PIN =0; /* enable write */
RS_PIN =0; /* select Instruction Reg */
DATA_PIN_7 = (unsigned int)((address & 0x08)>>3);
DATA_PIN_6 = (unsigned int)((address& 0x04)>>2);
DATA_PIN_5 = (unsigned int)((address & 0x02)>>1);
DATA_PIN_4 = (unsigned int)((address & 0x01)>>0);
E_PIN = 1; /* enable read/write */
Delay18Tcy();
E_PIN =0;
#endif
/* configure all pins to input mode */
TRIS_DATA_PIN_7 = 1;
TRIS_DATA_PIN_6 = 1;
TRIS_DATA_PIN_5 = 1;
TRIS_DATA_PIN_4 = 1;
# ifdef EIGHT_BIT_INTERFACE
TRIS_DATA_PIN_3 = 1;
TRIS_DATA_PIN_2 = 1;
TRIS_DATA_PIN_1 = 1;
TRIS_DATA_PIN_0 = 1;
#endif
} /* end of function */
#endif
/* end of file */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -