![]() |
|
![]() |
#1 |
Đệ tử 2 túi
Tham gia ngày: Jun 2007
Bài gửi: 43
: |
Cám ơn các bạn nhiều,mình đã biết sai rồi.Nhưng khi mô phỏng bằng Proteuss thì không như ý muốn,LCD cứ lặng thinh.Đây là mạch mô phỏng
![]() code:#include <16F877A.h> #include <DEFS_16F877A.h> #fuses XT,NOWDT,NOPROTECT,NOLVP #use delay(clock=4000000) #define RS RD0 #define RW RD1 #define E RD2 #define LCD PORTC /*Ham yeu cau goi lenh dieu khien LCD*/ void comnwrt(void) { RS = 0; RW = 0; E = 1; E = 0; delay_ms(1); } /*Ham yeu cau goi du lieu hien thi len LCD*/ void datawrt(void) { RS = 1; RW = 0; E = 1; E = 0; delay_ms(1); } #int_RB void ngat_RB(void) { if(RBIE && RBIF) { if (RB4==0) { while(RB5==1) { LCD = 0x83; comnwrt(); LCD = 'X'; datawrt(); } } if (RB5==0) { while(RB4==1) { LCD = 0xC3; comnwrt(); LCD = 'K'; datawrt(); } } } } void main(void) { set_tris_b(0b00110000); set_tris_c(0); set_tris_d(0); LCD = 0x38; // Hai hang, ma tran dot 5*7, 8 bit interface comnwrt(); LCD = 0x0C; // Bat hien thi, tat con tro comnwrt(); while(true) { } } Mình làm mạch này chủ yếu để hiểu cơ bản và tiếp tục làm phần kết hợp keypadphone và LCD ,mạch nhu cầu như sau ![]() Mình cần :nhấn phím trên keypad thì LCD sẽ hiển thị trên LCD và khi nhấn button thì nó xóa một ký tự hiển thị .Mình có tham khảo source code trong CCS nhưng chả biết dùng như thế nào,đây là code ứng dụng: #include <16F877.h> #fuses HS,NOWDT,NOPROTECT,NOLVP #use delay(clock=20000000) #include <lcd.c> #include <kbd.c> void main() { char k; lcd_init(); kbd_init(); lcd_putc("\fReady...\n"); while (TRUE) { k=kbd_getc(); if(k!=0) if(k=='*') lcd_putc('\f'); else lcd_putc(k); } } thay đổi nội dung bởi: cuopbienquin, 30-08-2007 lúc 07:13 PM. |
![]() |
![]() |
#2 |
Đệ tử 7 túi
|
Bạn Cướp biển chuẩn bị chạy trước đi nhé, mình đã "lắp đạn vào súng" rùi đây này
![]() Do bạn phạm các tội sau : - Chưa khai báo cho phép ngắt RB ở void main : phải thêm vào đó 2 dòng : enable_interrupts(global); enable_interrupts(int_RB); - Ở trên mạch ứng dụng chẳng thấy điện trở treo lên nguồn đâu nữa Tài liệu thì mình không có và rất ít đọc (do lười ![]() Nhưng góp ý thế này : muốn học từ Sample của CCS thì phải : Bạn mở code cái Driver mà CCS hỗ trợ lên, đọc kỹ định nghĩa của các hàm mà Driver hỗ trợ (để khi dùng thì gọi ra trong chương trình), xem Driver đó sử dụng những chân nào của VDK, nối đúng chân mà dùng ![]()
__________________
_____________________________Tri nhân tri tự bất tri tâm_____________________________ _ _ _ _ _ _ _ _ ![]() ![]() . . . . . . . . . . . . . . . . Để post đuợc một câu hỏi rõ ràng xin tham khảo link sau : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . http://www.picvietnam.com/forum/showthread.php?t=1263. . . . . . . . . . . . . . . . |
![]() |
![]() |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
TUT về USART trong PIC16F877A | mafd_47a | MPASM | 16 | 19-02-2025 05:32 AM |
TUT ve I2C ( pic16f877a ) | mafd_47a | MPASM | 28 | 28-01-2025 10:45 PM |
Lập nhóm PIC16F877A | nhh | Cơ bản về vi điều khiển và PIC | 285 | 08-03-2017 11:08 PM |
Bộ so sánh và PWM cho PIC16F877A | anhquangngai | Cơ bản về vi điều khiển và PIC | 24 | 08-09-2012 09:00 AM |
Pic16f877a TỪ DỄ TỚi KhÓ | ntc | Cơ bản về vi điều khiển và PIC | 373 | 23-05-2009 10:24 PM |