Ngày 01/08/2010 11:56:10 / Lượt xem: 6856 / Người đăng: biendt / Nguồn: Sưu tầm và Biên soạn
Đếm số nút nhấn 0-100 hiện thị lên LCD dùng chip Psoc
Hôm nay tôi giới thiệu với các bạn đếm số nút nhấn hiện thị lên LCD ở đây không giống như hiện thị lên LED7 thanh! Nguyên lý cũng giống như phương pháp hiện thi lên LED 7 nhưng mà ở đây chỉ hiện thị lên LCD hiện thị được 100 lần đếm. Cái này cũng đơn giản đối với PSoc
1 : Lắp mạch
LCD là một thiết bị hiện thị các chữ và các số lên LCD theo bảng mã ACSII. LCD có 16 chân tác dụng của các chân như sau:
Chân 1 : GND - - Chân nối đất
Chân 2 : VCC - - Chân cấp dương nguồn
Chân 3 : VEE - - Chân điều khiển phản
Chân 4 : RS --- RS=0 chọn thanh ghi lệnh, RS=1 chọn thanh ghi dữ liệu
Chân 5 : RW -- RW=1 đọc dữ liệu , RW ghi dữ liệu[separator]
Chân 6 : E --- Cho phép
Chân 7: DB0 - - - Các bít dữ liệu
Chân 8: DB1 - - - Các bít dữ liệu
Chân 9: DB2 - -- Các bít dữ liệu
Chân 10: DB3 ---- Các bít dữ liệu
Chân 11: DB4 - - - Các bít dữ liệu
Chân 12: DB5 - - - Các bít dữ liệu
Chân 13: DB6 - - - Các bít dữ liệu
Chân 14: DB7 - - - Các bít dữ liệu
Chân 15 : A - LED
Chân 16 : K - LED
Riêng chân 15, 16 dùng để nối nguồn 5V cấp cho LED nền cho LCD.
Đối với PSoc thì ghép LCD chỉ mất có 1 Port! Các ghép như sau:
Sơ đồ mạch nguyên lý :
Ở đây tôi dùng Port 2 để điều khiển hiện thị ra LCD 16*2 Và cách mắc này là theo datasheet của Psoc đối với LCD
Thêm 1 nút nhấn để đếm số nút nhấn. Nút nhấn này được mắc vào Port2-0 một đầu được nối với chân P2-0 và một đầu được nối với GND. Trong phần mền tôi không dùng phần mền để chống nhiễu cho nó mà ở phần cứng tôi dùng để chống nhiễu cho tụ ở đây tôi dùng thêm 1 con tụ được mắc song song với nút nhấn. Tác dụng của tụ này là:
+ Khi chưa nhấn nút thì tụ được nạp điện sau khi nhấn nút thì lúc này tụ sẽ phóng điện từ dương sang âm làm cho tín hiệu lâu về 0 hơn (Trễ cứng)
+ Khi nhấn nút do các tiếp điểm cơ khí nên tín hiệu đó không về không được mà nó còn có 1 số xung điện . Tu điện dùng để giảm nhiễu đó. Nếu không muốn phần cứng để khử nhiễu mà ta dùng phần mền khử nhiễu cũng được!
Thêm 1 mạch reset cho mạch: dùng 1 công tắc nối với chân số 19 thông qua 1 điện trở 1k và đầu kia được nối lên VCC. Khi công tắc được đóng thì mạch sẽ tự reset. Còn 1 tụ được nối giữa chân 28 và 14 là để không bị mất nguồn trong khoảng thời gian ngắn
2: Nguyên lý hoạt động
Như các dòng vi điều khiển khác giao tiếp với LCD cần tạo một module điều khiển LCD. Nhưng trong Psoc các bạn phải tạo cho nó 1 khối LCD trong phần mền và gắn nó vào Port 0.(Cách này tôi không nói ở đây)
Còn nút nhấn ở Port 2_0 các bạn chọn cho nó ở chế độ : Strong (Chế độ điều khiển vào ra)
Trong phần mền lập trình cho chip Psoc đã có sẵn các module cho LCD. Nên ta cần hiện thị gì là có thể lấy ra và cho hiện thị. Cấu trúc ghép nối LCD với PSoc phải theo quy tắc chung của phần mềm (Các đầu nối phải theo chuẩn).
LCD nhận các mã ACSII để hiện thị (xem thêm trong bảng mã vị trí các ký tự).
Thuật toán :
3 ) Chương trình.
+ Môi trường lập trình : Psoc Designer
+ Viết cho vi xử lý : Psoc Cy8C29466