View Single Post
Old 12-10-2013, 01:24 PM   #2
qloi
Đệ tử 3 túi
 
Tham gia ngày: Sep 2010
Bài gửi: 55
:
Trích:
Nguyên văn bởi công sinh View Post
em có bài này:
Viết chương trình và mô phỏng Proteus mạch điều khiển 8 Led đơn hoạt động 3 mode và thời gian đáp ứng nhanh.
code e viết thế này,mọi người xem giúp e thủ nó bị lỗi gì mà nó vần ko chạy được:
#include <16F877A.h>
#use delay(clock= 20M)
int8 mode,i;
byte temp;
#byte portB=0x06
#byte portD=0x08
/////////////////
#int_RB
void RB_isr(void)
{
mode++;
if(mode==4)
mode=1;

}
/////////////////
void program1();
void program2();
void program3();
/////////////////

void main()
{
set_tris_b(0x01);
set_tris_d(0x00);
enable_interrupts(INT_RB);
enable_interrupts(GLOBAL);

mode=0;
while(1)
{
switch(mode)
{
case 1 : program1(); break;
case 2 : program2(); break;
case 3 : program3(); break;

}
}
}
/////////////////
void program1() {
output_D(0xFF);
delay_ms(50);
output_D(0x00);
delay_ms(50);
}
void program2()
{
temp=0xFF;
for(i=0;i<=8;i++)
{
output_D(temp);
delay_ms(50);
temp>>=1;
}
}

void program3()
{
temp=0xFF;
for(i=0;i<=8;i++)
{
output_D(temp);
delay_ms(50);
temp<<=1;
}
}
Bác phải mô tả koi lúc chạy nó có biểu hiện j mới được. về cơ bản chương trình như zị là dduoscj rồi chỉ thiếu vài cái quan trọng thôi ví dụ như bác thiếu "#fuses hs" trong hàm ngắt bác phải thêm chống nảy phím nữa cho mạch hoạt động ổn định.nhưng mà bác sài ngắt chi cho nó khó có thể dùng hàm input_bit(pinx) để nhận biết nhấn phím và cho hẳn nó vào vòng lặp chính vừa tiết kiệm tài nguyên lại vừa dể.
__________________
heart.touching.2010@gmail.com!
qloi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn