Để thực hiện được giao tiếp giữa bàn phím và PIC cần có quá trình khởi tạo để 2 thiết bị nhận nhau. Quy trình khởi tạo thực hiện qua các bước:
• Xóa bộ đệm vào ra
• Thiết lập đầu vào dữ liệu và xung • Cấu hình ngắt ngoài
• Cho phép ngắt
Qúa trình khởi tạo được minh họa bằng đoạn code sau:
//////////////khoi tao keyboard///////////////////////// void PS2KeyInit(void){
PS2KeyNRead =0; //xoa viec doc nhung phim so PS2KeyBufInIx =0; //xoa bo dem vao
PS2KeyBufOutIx =0; //xoa bo dem ra
PS2_BREAKCODE =FALSE; //khong nhan breakcode PS2_SHIFT =FALSE; //khong nhan shift
PS2Key_DataTris =1; //thiet lap dau vao du lieu PS2Key_ClkTris =1; //thiet lap dau vao xung clock ext_int_edge(0, H_TO_L); //ngat theo suon xuong
enable_interrupts(INT_EXT); //cho phep ngat ngoai tai RB0 }
///////////////////////////////////////////////////////
4.6.2.2 Các hàm chức năng sử dụng trong chương trình.
Một số hàm sử dụng trong chương trình phục vụ cho quá trình giao tiếp giữa vi điều khiển và bàn phím.
- INT8U PS2KeyGetKey(void);
Nhận 1 mã quét từ bàn phím hàm trả về giá trị 1 nếu đang xứ lý, còn -1 nếu qúa trình không kết thúc.
- Void PS2SendComm(INT8U cmd); Gửi 1 byte lệnh tới bàn phím
- BOOLEAN PS2KeyHit(void);
Phát hiện phím được bấm giá trị 1 trả về nếu xảy ra, bằng 0 nếu không có hiện tượng. - void PS2KeyIntHandler( void );
Hàm sử dụng cho chức năng ngắt tại chân B0, sườn ngắt từ cao xuống thấp. - void PS2KeyBufIn (INT8U code)
Chèn 1 ký tự vào bộ nhớ đệm của bàn phím.
=====================================================CHƯƠNG 5: ĐỒNG HỒ THỜI GIAN THỰC CHƯƠNG 5: ĐỒNG HỒ THỜI GIAN THỰC