📄 ocmj15x20d_touch.c
字号:
//中断方式
//==============================================================================
//本触摸屏程序只适用于金鹏公司D型液晶模块,显示点数按OCMJ15X20D液晶模块显示,即320X240点阵显示。
//本程序利用液晶模块的触摸屏中断信号输出到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,打开ADC
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(14, 64);
LCD_Bold();
for(temp=0 ; temp<11 ; temp++)
{
lcd_datawrite(tab3[temp]);
}
gotoxy(18, 96);
Print_Hex(X1);
gotoxy(18, 128);
Print_Hex(Y1);
LCD_NoBold();
delay1 (100);
}
}
lcd_regwrite(0xc0, 0x00);//touch off,关闭ADC对显示质量的干扰
gotoxy(14, 64);
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<199 ; temp++)
{
lcd_datawrite(tab1[temp]);
}
IT0=1;
EA=1;
EX0=1;
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -