![]() |
|
|
#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 | |
|
|