View Single Post
Old 28-07-2010, 10:37 AM   #5
manhdktd
Đệ tử 3 túi
 
manhdktd's Avatar
 
Tham gia ngày: Jun 2010
Bài gửi: 57
:
Trích:
Nguyên văn bởi pic_13 View Post
các pác thử xem cái code dưới của em sai cái gì mà chạy sai vậy ta.
bài này đơn giản chỉ là em dùng ngắt time2 để các led nháy đồng thời trên cả
2 cổng b và c


================================================== =====
#include <16f877a.h>
#include <def_877a.h>
#device *=16 ADC=8
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=4000000)
int x=0,y=0,count=0;
// chuong trinh ngat
#int_timer2
void interrupts_timer2(x)
{x++;if(x==5)x=1;set_timer2(0);
switch(x)
{case 1: portb=0xaa;break;
case 2: portb=0x55;break;
case 3: portb=0xe7;break;
case 4: portb=0x18;break;
}
}
void main()
{
trisb=0x00;
trisc=0x00;
portb=0x00;
portc=0x00;
x=0;
PORT_b_PULLUPS(1);
SETUP_TIMER_2(T2_DIV_BY_16,256,16);//CHO PHEP NGAT SAU 65536US
ENABLE_INTERRUPTS(INT_TIMER2);
ENABLE_INTERRUPTS(global);
delay_us(65536);
while(true)
{portc=0xaa;delay_us(65536);
portc=0x55;delay_us(65536);
portc=0xe7;delay_us(65536);
portc=0x18;delay_us(65536);
}
}
mô phỏng có hện tượng gì?
bạn thử set_timer2(0) trong hàm main xem sao?
manhdktd vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn