công sinh
29-09-2013, 11:26 PM
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;
}
}
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;
}
}