?? ocmj8x15d_touch.c.bak
字號:
//中斷方式
//==============================================================================
//本觸摸屏程序只適用于金鵬公司D型液晶模塊,顯示點數按OCMJ8X15D液晶模塊顯示,即240X128點陣顯示。
//本程序利用液晶模塊的觸摸屏中斷信號輸出到lcd_int腳由MCU的INT0接收。
//==============================================================================
#include "init.c"
uchar code tab1[] = "金鵬電子有限公司D系列液晶模塊"
" 內嵌觸摸屏功能演示程序 "
" No-Touch!! "
" X= "
" Y= ";
uchar code tab2[] = "No-Touch!!";
uchar code tab3[] = "Touch-Now!";
//==============================================================================
void Get_Touch_XY(void)
{
uchar temp;
uint X1, X2, Y1 ,Y2;
lcd_regwrite(0xc0, 0xc0);//touch on
Y1 = Touch_Y();
X1 = Touch_X();
Delay1ms(2);
if(Test_Touch())
{
Y2 = Touch_Y();
X2 = Touch_X();
if((X1==X2) && (Y1==Y2))
{
/*已獲得確實的觸摸坐標X1、Y1*/
gotoxy(10, 32);
LCD_Bold();
for(temp=0 ; temp<11 ; temp++)
{
lcd_datawrite(tab3[temp]);
}
gotoxy(14, 48);
Print_Hex(X1);
gotoxy(14, 64);
Print_Hex(Y1);
LCD_NoBold();
delay1 (100);
Delay1ms(1);
}
}
lcd_regwrite(0xc0, 0x00);//touch off
gotoxy(10, 32);
for(temp=0 ; temp<11 ; temp++)
{
lcd_datawrite(tab2[temp]);
}
}
//==============================================================================
void lcd_touch_init(void)
{
uchar temp;
temp=lcd_regread(0xa0)|0x04;//enable lcd touch int
lcd_regwrite(0xa0, temp);
}
//==============================================================================
void Ext_int0(void) interrupt 0
{
EA=0;
if(0x40==(lcd_regread(0xa0)&0x40)) //test bit6 touch int is "1"?
{
Get_Touch_XY();
}
EA=1;
}
/******************************************************************************/
/*Main program */
/******************************************************************************/
void main(void)
{
uchar temp;
lcd_reset();
lcd_initial();
lcd_clear();
lcd_touch_init();
lcd_regwrite(0x10,0x6b);
lcd_regwrite(0x00,0xcd);
gotoxy(0, 0);
for(temp=0 ; temp<149 ; temp++)
{
lcd_datawrite(tab1[temp]);
}
IT0=1;
EA=1;
EX0=1;
while(1);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -