Admin Admin
Tổng số bài gửi : 223
Cảm ơn : 2 Join date : 17/08/2010 Age : 35 Đến từ : Ninh binh Châm ngôn : Cuộc đời là bất công Hãy cùng nhau tạo nhiều bất công !
Character sheet Sinhvien: sinh vien
| |
Admin Admin
Tổng số bài gửi : 223
Cảm ơn : 2 Join date : 17/08/2010 Age : 35 Đến từ : Ninh binh Châm ngôn : Cuộc đời là bất công Hãy cùng nhau tạo nhiều bất công !
Character sheet Sinhvien: sinh vien
| Tiêu đề: [Ki-nang]Code Ma trận phím 4x4 Mon Apr 25, 2011 1:53 am | |
| /*---------------------------------------------------------------------------- ==========MA TRAN PHIM 4X4 HIEN THI LCD=======================
Dung P2 de noi vao chan cac ma tran phim + Tu P2_0 den P2_3 duoc noi vao hang + Tu P2_4 den P2_7 duoc noi vao cot + Tat ca P2 duoc dat o che do Strong Dung LCD 16*2 hien thi gia tri ban phim duoc noi vao cong P0
----------------------------------------------------------------------------*/
#include // part specific constants and macros #include "PSoCAPI.h" // PSoC API definitions for all User Modules
unsigned char sttphim; //====================Dinh nghia cac gia tri nut nhan========================= #define hang1 (PRT2DR&0x01) #define hang2 (PRT2DR&0x02) #define hang3 (PRT2DR&0x04) #define hang4 (PRT2DR&0x08) #define cot1 (PRT2DR&0x10) #define cot2 (PRT2DR&0x20) #define cot3 (PRT2DR&0x40) #define cot4 (PRT2DR&0x80) //================================Ham hien thi 2 so tren LCD==================== void lcd2digit(unsigned int Data) { LCD_1_WriteData('0'+Data/10); Data=Data%10; LCD_1_WriteData('0'+Data); } // ==============================Ham quet ma tran phim========================== void quetphim() { PRT2DR=PRT2DR|0x01; //Cho cac hang muc 1 PRT2DR=PRT2DR|0x02; PRT2DR=PRT2DR|0x04; PRT2DR=PRT2DR|0x08; PRT2DR=PRT2DR&0xef; // Cho cac cot muc 0 PRT2DR=PRT2DR&0xdf; PRT2DR=PRT2DR&0xbf; PRT2DR=PRT2DR&0x7f;
if((!hang1)|(!hang2)|(!hang3)|(!hang4)) // kiem tra hang dc nhan { if(hang1==0) // neu hang 1 { PRT2DR=PRT2DR|0x10; // cho cac cot muc 1 PRT2DR=PRT2DR|0x20; PRT2DR=PRT2DR|0x40; PRT2DR=PRT2DR|0x80; PRT2DR=PRT2DR&0xfe; // chuyen hang1 ve muc 0 if(!cot1) sttphim=0; if(!cot2) sttphim=1; if(!cot3) sttphim=2; if(!cot4) sttphim=3; }
if(hang2==0) { PRT2DR=PRT2DR|0x10; PRT2DR=PRT2DR|0x20; PRT2DR=PRT2DR|0x40; PRT2DR=PRT2DR|0x80; PRT2DR=PRT2DR&0xfd; // chuyen hang2 ve muc 0 if(!cot1) sttphim=4; if(!cot2) sttphim=5; if(!cot3) sttphim=6; if(!cot4) sttphim=7; } if(hang3==0) {
PRT2DR=PRT2DR|0x10; PRT2DR=PRT2DR|0x20; PRT2DR=PRT2DR|0x40; PRT2DR=PRT2DR|0x80; PRT2DR=PRT2DR&0xfb; // chuyen hang3 ve muc 0 if(!cot1) sttphim=8; if(!cot2) sttphim=9; if(!cot3) sttphim=10; if(!cot4) sttphim=11; } if(hang4==0) {
PRT2DR=PRT2DR|0x10; PRT2DR=PRT2DR|0x20; PRT2DR=PRT2DR|0x40; PRT2DR=PRT2DR|0x80; PRT2DR=PRT2DR&0xf7; // chuyen hang4 ve muc 0 if(!cot1) sttphim=12; if(!cot2) sttphim=13; if(!cot3) sttphim=14; if(!cot4) sttphim=15; } } } void main() { PRT2DR=0xff; LCD_1_Start(); LCD_1_Position(0,0); LCD_1_PrCString("MTPHIM by BIENDT"); LCD_1_Position(1,0); LCD_1_PrCString("PHIM:"); while(1) { quetphim(); LCD_1_Position(1,8); lcd2digit(sttphim); } }
| |
|
xwildx135
Tổng số bài gửi : 1
Cảm ơn : 10 Join date : 23/07/2011 Châm ngôn : song de chet 1 lan
| Tiêu đề: Re: Ma trận phím 4x4 Sat Jul 23, 2011 10:03 pm | |
| cảm ơn chủ thớt.bạn có thể giải thích rõ hơn cho minh cách kết ma trận phím với con vi điều khiển được không. thấy đề tài hấp dẫn đấy nhân tiện cho minh hỏi có đoạn code vieb bằng assembly không cho minh xin với | |
|
Sponsored content
| Tiêu đề: Re: Ma trận phím 4x4 | |
| |
|