PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT PIC,...)

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 07-06-2008, 07:26 PM   #1
igbt
Nhập môn đệ tử
 
Tham gia ngày: Apr 2007
Bài gửi: 9
:
Em có một đoạn code muốn nhờ các anh đi trước giúp đỡ mà ko biết cách chèn lên thế nào, đành phải làm thủ công thế này. Đoạn code của em có mục đích là: đầu tiên cho 2 chân RB1 và RB2 ở mức thấp, sau đó kiểm tra trạng thái của RD0 (chân RD0 được nối lên cao qua điện trở 10k), nếu RD0 = 0 thì đưa ra chân RB2 mức 1, trễ 5s, đưa RB2 xuống 0 và RB1 lên 1 trễ 5s và thoát khỏi điều kiện if và tiếp tục kiểm tra RD0. Nhưng khi chạy thử mạch thì RB2 có mức 1 trễ 5s sau đó RB1 có múc 1... mặc dù RD0 vẫn chưa = 0, mà sau đó chương trình cũng chẳng thoát khỏi điều kiện if. Em biết ngày trước đã có bạn hỏi như em và đã được giúp đỡ nhưng em tim lại mãi mà không thấy. Em mới học, mong các anh giúp đỡ! Đoạn code của em như sau:
Code:
#include <16F877a.h>
#include <def_877a.h>
#fuses NOWDT,PUT,XT,NOPROTECT, NOLVP
#use delay(clock=4000000)
#use fast_io(b)
main()
{
set_tris_b(0);
set_tris_d(255);
output_low(PIN_B1);
output_low(PIN_B2);
if(RD0=0)
output_high(PIN_B2);
delay_ms(5000);
output_low(PIN_B2);
output_high(PIN_B1);
delay_ms(5000);
}
File Kèm Theo
File Type: rar Cua.rar (13.2 KB, 76 lần tải)

thay đổi nội dung bởi: namqn, 07-06-2008 lúc 08:26 PM.
igbt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-06-2008, 08:33 PM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Chương trình của bạn nên được sửa lại như sau:
Code:
#include <16F877a.h>
#include <def_877a.h>
#fuses NOWDT,PUT,XT,NOPROTECT, NOLVP
#use delay(clock=4000000)
#use fast_io(b)
main()
{
	set_tris_b(0);
	set_tris_d(255);
	output_low(PIN_B1);
	output_low(PIN_B2);
	if(RD0 == 0) {
		output_high(PIN_B2);
		delay_ms(5000);
		output_low(PIN_B2);
		output_high(PIN_B1);
		delay_ms(5000);
	}
	while (1);
}
Bạn hãy tự so sánh với code cũ của bạn để tìm ra những thay đổi, và suy nghĩ xem tại sao phải thay đổi như vậy.

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
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 02:52 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam