11-01-2008, 04:01 PM | #1 |
Đệ tử 5 túi
Tham gia ngày: Sep 2006
Bài gửi: 100
: |
Bỏ bồ già ASM, chuyển sang bồ nhí C mà rắc rối quá!
Hi all,
Trước nay cứ bám váy mụ bồ già ASM, đến nay mụ khó tính quá nên phải tính kế đi kiếm bồ trẻ C cho nó dễ dụ. Ai ngờ trẻ thì có trẻ mà cũng rất khoai. Tui thử viết chương trình với mục đích: - Sử dụng 2 phím bấm: OK nối RB6 Cancel nối RB7 Khi phím được bấm thì mức điện áp trên chân cổng nối với phím bấm là 0V. - Khi cấp nguồn cho board mạch và chưa bấm phím, LCD hiển thị màn hình 1. - Mỗi lần bấm OK, LCD lần lượt chuyển sang màn hình 2 rồi màn hình 3... Đây là code nhưng nạp vào rồi bấm phím mà chả thấy xi nhê gì. Vác đồng hồ ra đo ở chân RB6 thì thấy mức điện áp có 1.6V khi phím không bấm (bình thường phải là mức 5V chứ nhỉ). Không hiểu tại sao có hiện tượng này. Xin nhờ các cao thủ trên diễn đàn giúp sức. Code:
#include <16F877A.h> #include <def_877a.h> #device *=16 adc=10 #FUSES NOWDT, XT, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=4000000) #use fast_io (b) #define OK PIN_B6 #define Cancel PIN_B7 #include <lcd_lib_4bit.c> int8 count; char phim; char Button(void) { while(1) { if(!OK) return 'O'; if(!Cancel) return 'E'; } } //----------------------------------------------------------------- void main(void) { set_tris_a(0xC0); set_tris_b(0xC1); LCD_init(); delay_ms(500); LCD_putcmd(0x80); Printf(LCD_putchar,"Hi ev'body"); //Hien thi man hinh 1 LCD_putcmd(0xC0); Printf(LCD_putchar,"Khoi tao..."); phim=Button(); if(phim=='O') { LCD_putcmd(0x01); //xoa man hinh LCD_putcmd(0x80); Printf(LCD_putchar,"Enter Pressed"); //Hien thi man hinh 2 } //end main----------------------------------------------------------- }
__________________
Do more than exist, LIVE thay đổi nội dung bởi: Jerry, 11-01-2008 lúc 04:13 PM. |
|
|