Ðề tài: Clock CCS 16f877A
View Single Post
Old 06-08-2009, 05:42 PM   #4
sonduy1
Đệ tử 1 túi
 
Tham gia ngày: Jun 2009
Bài gửi: 20
:
mình có làm bài này mà sao ko chạy trên proteus,các bác giúp cho !!!...



#include <16f877a.h>
#fuses HS,NOWDT
#use delay(clock=4000000)
#byte trisb=0x86
#byte portb=0x06
#BYTE TRISD=0X88
#BYTE PORTD=0X08


char bang_ma[10]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x9 0};
char n1,n2,n3,n4;
char sec,min,h;
#int_timer1
void ngat_TMR1()
{ int time,count;
set_timer1(15535);
time++;
if(time=1);//dc 1/2s
//<thuc hien cong viec>
{
count++;
if(count==1)
{ portb=bang_ma[N1];
OUTPUT_LOW(PIN_A0);
DELAY_MS(10);
OUTPUT_HIGH(PIN_A0);
}
if(count==2)
{ portb=bang_ma[N2];
OUTPUT_LOW(PIN_A1);
DELAY_MS(10);

}
if(count==3)
{ portD=bang_ma[N3];

OUTPUT_LOW(PIN_A4);DELAY_MS(10);
OUTPUT_HIGH(PIN_A4);
}
if(count==4)
{ portD=bang_ma[N4];
OUTPUT_LOW(PIN_A5);
DELAY_MS(10);
}
count==0;



}
time==0;
}
//SU DUNG HAM NGAT TIMER0 DE HIEN THI
#INT_TIMER0

void ngat_timer0()
{ int dem;

set_timer0(15536); //mac dinh gia tri ban dau cho TMR0

dem++;
if(dem==20) //20*50000=1s
{ dem=0;
sec++;
}
if(sec==60)
{ sec=0;
min++;
}
if(min==60)
{ min=0;
h++;
}
if(h==24)
{ h=0;
}
}





VOID main(void)
{ trisb=0x00;
portb=0xff;
TRISD=0X00;
PORTD=0XFF;
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
set_timer0(15536);
enable_interrupts(int_timer0);
enable_interrupts(global);


setup_timer_1(T1_INTERNAL|T1_DIV_BY_1);
set_timer1(15535);
enable_interrupts(int_timer1);
enable_interrupts(global);
N1=H/10;
N2=H%10;
N3=SEC/10;
N4=SEC%10;
while(1)
{

NGAT_TIMER0();
N1=H/10;
N2=H%10;
N3=SEC/10;
N4=SEC%10;
ngat_TMR1();

}
}
sonduy1 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn