View Single Post
Old 16-05-2011, 06:21 PM   #31
automatic151188
Nhập môn đệ tử
 
Tham gia ngày: Apr 2011
Bài gửi: 2
:
Các A chị giúp E sửa lỗi code với!
E dùng timer1 đếm xung clock đưa vào từ chân T1CKI.Timer0 tạo thời gian1s.
nhưng giá trị hiển thị lên LCD cứ thay đổi mong mọi người giúp đỡ.Dưới đây là code
#include <16F877A.h>
#include <def_877a.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#device *=16 adc=10
#use delay(clock=20000000)
#include <lcd_lib_4bit.c>
#use fast_IO(C)
#use fast_IO(a)
#use fast_IO(B)
#use fast_IO(D)
#byte portC=0x07
int8 nghin,tram,chuc,donvi;

void tinhtoan_hienthi(int16 x);
int16 x;

//------DAT BIEN TOAN CUC----------------//

INT16 SOLANLAP=0;
INT16 BIEN;
INT16 SOXUNGDEM_1PHUT=0;


//.................................................. .....................................


#INT_TIMER0
VOID SOXUNGDEM_1S()
{
solanlap=solanlap+1;
}



void TINHTOAN_HIENTHI(int16 x) // thuc hien tach so va dua ra hien thi
{nghin = x / 1000 + 0x30;
x = x % 1000;
tram = x / 100 + 0x30; // tách s? hàng tram
x = x % 100; // chia l?y ph?n d?
chuc = x / 10 + 0x30; // tách l?y ph?n ch?c
donvi = x % 10 + 0x30; // ph?n don v?
lcd_putchar(nghin);
lcd_putchar(tram);
lcd_putchar(chuc);
lcd_putchar(donvi);
}

void main()
{
SET_TRIS_A(0X0);
set_tris_C(0x01);
lcd_putcmd(0x80);
lcd_init();
delay_ms(10);
BIEN=0;

setup_TIMER_1(T1_EXTERNAL);
set_TIMER1(0);

setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2);
set_timer0(6);
enable_interrupts(INT_RTCC);
enable_interrupts(GLOBAL);
DELAY_MS(10);
while( TRUE )
{
if (solanlap==10000)
{
BIEN=GET_TIMER1();
PORTA=BIEN;
SOXUNGDEM_1PHUT=(60*BIEN);
SOLANLAP=0;
SET_TIMER1(0);
set_timer0(6);
lcd_putcmd(0x88);
TINHTOAN_HIENTHI(SOXUNGDEM_1PHUT);
}
}
}
automatic151188 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn