![]() |
![]() |
#136 |
Trưởng lão PIC bang
|
Bạn sửa lại code trong vòng while (1) của bạn thành như sau xem:
Code:
while (1) { PORTB = PORTB | 0x0C; //Bat cac bit RB2 va RB3 delay_ms(1000); PORTB = PORTB & 0xF3; //Tat cac bit RB2 va RB3 delay_ms(1000); } http://www.picvietnam.com/forum/showthread.php?p=4613 Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
![]() |
![]() |
![]() |
#137 |
Đệ tử 2 túi
Tham gia ngày: Jun 2007
Bài gửi: 30
: |
Cảm ơn bác Namqn nhiều em thử được rồi ! Mấy hôm trước em cũng viết vậy nhưng vẫn chạy bình thường, cứ tưởng là máy bị Virut cơ chứ .
|
![]() |
![]() |
![]() |
#138 | |
Trưởng lão PIC bang
|
Trích:
Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
![]() |
#139 |
Nhập môn đệ tử
Tham gia ngày: Dec 2008
Bài gửi: 7
: |
Code:
#include <16F877A.h> #fuses NOWDT,PUT,XT,NOPROTECT #use delay(clock=4000000) #use fast_io(b) #byte portb=0x06 #define led pin_B0 int16 count; int8 a; //Chuong trinh ngat TMR0 #int_timer0 void interrupt_timer0() { set_timer0(6); ++count; if(count==2000) { count=0; a=a<<1; // dich trai a 1bit } if(a==256) { a=1; count=0; } } //Chuong trinh chinh main() { set_tris_b(0); enable_interrupts(global); enable_interrupts(int_timer0); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2); set_timer0(6); count=0; a=1; while(true) { portb=a; } } thay đổi nội dung bởi: namqn, 14-01-2009 lúc 07:00 AM. |
![]() |
![]() |
![]() |
#140 |
Nhập môn đệ tử
Tham gia ngày: Dec 2008
Bài gửi: 7
: |
Việc tính toán thời gian định thời của Timer em đã hiểu, chỉ còn vấn đề tại sao lại set_timer0 (6). Mong sớm nhận được câu trả lời .
|
![]() |
![]() |
![]() |
#141 |
Đệ tử 5 túi
|
set_timer0 (6) là để cho chương trình đếm từ bắt đầu từ số 6 chứ không phải là số 0. Tức là mỗi lần tràn là 256-6=250.
__________________
Bảng ledsigns chất lượng cao... http://www.ledviet.info - manhha2700@yahoo.com Đt:0949299699 thay đổi nội dung bởi: manhha2799, 19-01-2009 lúc 09:28 AM. |
![]() |
![]() |
![]() |
#142 | |
Trưởng lão PIC bang
|
Trích:
Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
![]() |
#143 |
Nhập môn đệ tử
Tham gia ngày: Dec 2008
Bài gửi: 7
: |
Một số chương trình hiến thị LCD có viết là LCD = 0xC3 // vị trí hàng 2,cột 4//,em chưa hiểu mấy cách xác định vị trí này.
|
![]() |
![]() |
![]() |
#144 | |
Trưởng lão PIC bang
|
Trích:
http://www.winpicprog.co.uk/pic_tutorial3.htm Để đặt con trỏ màn hình LCD ở một vị trí nào đó, bạn sẽ dùng lệnh "Set Display Address", có bit 7 mang giá trị '1' (ứng với giá trị 0x80). 7 bit thấp hơn của lệnh sẽ xác định địa chỉ cần di chuyển con trỏ đến. Thông thường, hàng 1 của LCD có địa chỉ bắt đầu là 0x00, hàng 2 của LCD có địa chỉ bắt đầu là 0x40. Do đó, cột 4 của hàng 2 sẽ có địa chỉ là 0x43. Như vậy cần xuất lệnh 0x80 + 0x43 = 0xC3 để di chuyển đến hàng 2, cột 4. Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
![]() |
#145 |
Đệ tử 7 túi
Tham gia ngày: Aug 2007
Bài gửi: 213
: |
Em lục nhưng chưa thấy link download CCS.Ai biết chỉ dùm.Cám ơn
|
![]() |
![]() |
![]() |
#146 |
Trưởng lão PIC bang
|
Bạn tìm nhầm luồng rồi, luồng dưới đây mới là chỗ để tìm link download:
http://www.picvietnam.com/forum/showthread.php?t=958 Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
![]() |
![]() |
![]() |
#147 |
Đệ tử 1 túi
Tham gia ngày: Dec 2005
Bài gửi: 20
: |
đây này bản bản 4.084 http://rapidshare.com/files/176228329/CCS_4.084.RAR
con đây la bùa chú // http://rapidshare.com/files/176409172/Key_pcwhd.exe |
![]() |
![]() |
![]() |
#148 |
Nhập môn đệ tử
Tham gia ngày: Oct 2007
Bài gửi: 5
: |
![]() Em đang viết chương trình sử dụng ADC 10 bit. Dùng khai báo #device *=16 ADC=10 nhưng bị báo lỗi. Đã thử ở CCS 4.057 và 4.084 nhưng đều báo lỗi (=> ko phải do phần mềm)
Đây là code của em nó: Code:
#include <16F877A.h> #include <stdlib.h> #device *=16 ADC=10 #fuses XT,NOWDT,NOPROTECT,NOLVP void main() { } |
![]() |
![]() |
![]() |
#149 |
Đệ tử 1 túi
Tham gia ngày: Dec 2005
Bài gửi: 20
: |
kiêm tra lại cai ##include <stdlib.h> cua bạn co trong thư viện không . không co thi xoa dong đó di dich ok
nếu không ban phai viết nhu thế nay thi moi đúng không bao sai #include <16F877A.h> #device *=16 ADC=10 #fuses XT,NOWDT,NOPROTECT,NOLVP #include <stdlib.h> void main() { } |
![]() |
![]() |
![]() |
#150 |
Nhập môn đệ tử
Tham gia ngày: Oct 2007
Bài gửi: 5
: |
Cám ơn bạn. Mình đã sửa lại được rồi. Khai báo #device ngay dưới dòng #include <16F877A.h> thì không bị báo lỗi nữa. Có lẽ CCS bắt phải theo thứ tự vậy :-/
Code:
#include <16F877A.h> #device *=16 ADC=10 #include <stdlib.h> #fuses XT,NOWDT,NOPROTECT,NOLVP void main() { } thay đổi nội dung bởi: notbadday, 08-03-2009 lúc 11:15 PM. Lý do: chèn code |
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|