Hi mọi người. Gần đây đọc được tài liệu hướng dẫn của anh F về mTouch thấy hay quá.
http://dientuvietnam.net/forums/showthread.php?t=18026
Bèn lần mò làm thử. Thấy kết quả vượt mức mong đợi. Tiếp điểm chạm rất nhẹ nhàng và rất nhạy nên up lên để anh em có thể sử dụng riêng cho mình. Em không có ý định múa rừu qua mắt thợ mà chỉ là thêm kiến thức thêm học hỏi , ít nhất là cho nhưng người còn gà như em. Mong được sự chỉ bảo của mọi người.
Ah còn vấn đề làm sao để quét ma trận phím Touch này nữa, mong mọi người cho ý kiến
Em dùng AT89S52 va trình dịch Keil C
Touch là đồng xu 500đ bọc một lớp băng dính. Đã thử nghiệm cảm biến tốt qua 20 lớp giấy vở
Hàm LCD_Delay
http://dientuvietnam.net/forums/showthread.php?t=18026
Bèn lần mò làm thử. Thấy kết quả vượt mức mong đợi. Tiếp điểm chạm rất nhẹ nhàng và rất nhạy nên up lên để anh em có thể sử dụng riêng cho mình. Em không có ý định múa rừu qua mắt thợ mà chỉ là thêm kiến thức thêm học hỏi , ít nhất là cho nhưng người còn gà như em. Mong được sự chỉ bảo của mọi người.
Ah còn vấn đề làm sao để quét ma trận phím Touch này nữa, mong mọi người cho ý kiến
Em dùng AT89S52 va trình dịch Keil C
Touch là đồng xu 500đ bọc một lớp băng dính. Đã thử nghiệm cảm biến tốt qua 20 lớp giấy vở
PHP Code:
/**********************************************************************************
NGO THANH BINH KS CLC K52
Giao tiep keypad Touch
***********************************************************************************/
/********************* define hardware *******************************************
AT89S52, LCD 16x2,Key Touch
P2(0-6) : LCD
***********************************************************************************/
#include "LCD4BIT.H"
#include <AT89X52.H>
#define LED P3_1
#define SIGN P3_4
#define TH_1 0xb1
#define TL_1 0xdf // 2000 vong lap - 2ms
#define TIME_PRESS 20
unsigned int count_old;
bit PRESS = 0;
void Timer_1(void) interrupt 3
{
unsigned int count;
TR0 = 0;
TH1 = TH_1;
TL1 = TL_1;
count=TL0|((TH0&0x00ff)<<8); // get data
//****************************************************
if(count_old >count+TIME_PRESS) // nhan phim
{
PRESS = 1;
}
else
{
PRESS = 0;
count_old=count;
}
//**********************************************************
//EXIT:
TL0 = 0;
TH0 = 0;
TR0 = 1;
}
//=============================== main ========================================
void main(void)
{
LCD_Init();
TMOD = 0x10|0x05; // TIMER 1 CHE DO 16 BIT& timer 0 16 bit count
IE = 0x88; // NGAT TRAN T0
TH1 = TH_1;
TL1 = TL_1;
TH0 = 0;
TL0 = 0;
SIGN = 1;
LED =0;
count_old=0;
TR0 = 1;
TR1 = 1;
while(1)
{
if(PRESS)
{
LCD_Delay(600);
if(PRESS)
{
while(PRESS){};
LED = !LED;
}
}
// phan hien thi lcd gia tri count_lod va trang thai light
LCD_Clear();
if(LED) LCD_PrString("On light");
else LCD_PrString("OFF light");
LCD_PutCmd(0xc0);
LCD_PrInteger(count_old);
LCD_Delay(200);
}
}
PHP Code:
void LCD_Delay(unsigned long time)
{
while(time--){};
}
Comment