![]() |
|
Tài trợ cho PIC Vietnam |
Lỗi lập trình ngôn ngữ cấp cao Những lỗi trường gặp trong lập trình. Khóa luồng khi bug được lỗi. |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#1 |
Nhập môn đệ tử
Tham gia ngày: Jul 2009
Bài gửi: 10
: |
Khó hiểu thật!!! Các bác giúp em với
Em viết đoạn code như sau. Theo em nghĩ và cách viết thì chân RA4 phải được xuất ra 5V, chân RẠ cũng xuất ra 5V. Nhưng trong chương trình proteus thì nó xuất RA4=0V còn RA5=5V. Sao lạ vậy?? Hay có lỗi gì khi dịch sang file hex
code: Code:
#include <16f877a.h> #use delay(clock=4000000) #byte portb=0x06 #byte trisb=0x86 #byte porta=0x05 //#use fast_IO(a) #bit RA4=porta.4 #bit RA5=porta.5 main () { set_tris_a(0b11001111); while (1) { RA4=1; RA5=1; portb=0xF9; delay_ms(10); } } thay đổi nội dung bởi: phamminhtuan, 30-07-2009 lúc 07:57 PM. Lý do: vui lòng để code vào thẻ code (#) |
![]() |
![]() |
![]() |
#2 |
...Damned...
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
: |
Đã trả lời ở đây. Diễn đàn đã hoạt động khá lâu, do đó hầu hết các vấn đề thường gặp đều đã được hỏi, các bạn nên tận dụng công cụ search.
http://www.picvietnam.com/forum/show...drain#post3971 |
![]() |
![]() |
![]() |
#3 |
Đệ tử 6 túi
Tham gia ngày: Feb 2009
Bài gửi: 127
: |
chân RA4 là cực máng hở , nên muốn có 5V thì phải mắc thêm điện trở (4.7K)kéo lên
+5V |
![]() |
![]() |
![]() |
#4 |
Nhập môn đệ tử
Tham gia ngày: Jul 2009
Bài gửi: 10
: |
Muốn có 5V thì phải mắc thêm điện trở 4k7 kéo lên là sao ạ?? vì trong mạch dùng chương trình mô phỏng proteus của em đã có điện trở 4k7 rồi ạ mà nó vẫn kô lên đc 5V.
Bác giải thích rõ hơn giúp em vơi. Em cũng đọc mấy cái link bác trên đưa nhưng cũng kô hiểu thế nào là cực máng hở cũng như cái chân RA4. Bên cạnh đây bác xem giúp em cái đoạn chương trình này với. Đề là xuất ra 4leg 7 đoạn với các số từ 1 đến 9999. Theo em nghĩ là đúng rồi mà sao vẫn kô ra được như ý code: Code:
#include <C:\Program Files\PICC\Devices\16f877a.h> #fuses HS,NOWDT #use delay(clock=4000000) #byte trisb=0x86 #byte portb=0x06 #byte trisd=0x88 #byte portd=0x08 #use fast_IO(b) #use fast_IO(d) #bit RD0=portd.0 #bit RD1=portd.1 #bit RD2=portd.2 #bit RD3=portd.3 int A[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; void display (int so) { int i,hngan,htram,hchuc,hdonvi,du1,du2; hngan=so/1000; du1=so%1000; htram=du1/100; du2=du1%100; hchuc=du2/10; hdonvi=du2%10; for (i=0;i<25;i++) { RD0=0; RD1=1; RD2=1; RD3=1; portb=A[hngan]; delay_ms(10); RD0=1; RD1=0; RD2=1; RD3=1; portb=A[hchuc]; delay_ms(10); RD0=1; RD1=1; RD2=0; RD3=1; portb=A[hchuc]; delay_ms(10); RD0=1; RD1=1; RD2=1; RD3=0; portb=A[hdonvi]; delay_ms(10); } } void main () { int i; set_tris_d(0x00); set_tris_b(0x00); while (1) { for (i=0;i<=9999;i++) { display (i); } } } thay đổi nội dung bởi: namqn, 02-08-2009 lúc 10:14 AM. Lý do: định dạng code |
![]() |
![]() |
![]() |
#5 | |
Trưởng lão PIC bang
|
Trích:
Link để tải tài liệu hướng dẫn dưới đây, trong trường hợp bạn chưa biết: http://www.ccsinfo.com/downloads/ccs_c_manual.pdf 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 |
|
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|