nguyenquoctrung-hhk
Thành Viên PIF
mấy ngày nay ở nhà bùn quá nên ngùi lập trình mấy kiểu led chạy!! mình lập trình kiểu led chạy xếp theo hàng từ bit cao giảm giần, nhưng mình chỉ làm được dịch theo thứ tự giảm dần thui, mà không giữ được led sang, ví dụ: chương trình chạy dịch 1 điểm từ bít thấp đến bít thứ 7 rồi giữ cho led sáng, sau đó quay lại dịch típ đến bit 6 rồi giữ cho sáng... cứ thế giảm giần tới bit 0. các bạn xem đoạn code của mình sau đây, rồi đóng góp "cao kiến" đề mình hoàn thiện. thanks :p~^o^~
#include<htc.h>
__CONFIG(XT & WDTDIS & PWRTEN & MCLREN & UNPROTECT & SWBOREN & IESODIS & FCMDIS & LVPDIS & DEBUGDIS);
__CONFIG(BORV21);
#define _XTAL_FREQ 4000000
void delay()
{
unsigned char dem;
dem = 0;
T0CS = 0;
PSA = 0;
PS0 = 1; PS1 = 1; PS2 = 1;
TMR0 = 0;
T0IF = 0;
while(dem < 10)
{
while(T0IF == 0);
TMR0 = 0;
T0IF = 0;
dem++;
}
}
void main()
{
char i, j, count = 7;
ANSEL = 0;
ANSELH = 0;
TRISB = 0X00;
PORTB = 0xff;
while(1)
{
for(i = 0; i <= count; i++)
{
PORTB = ~(1 << i);
delay();
}
if(count == 0)
count = 7;
else
count--;
}
}
#include<htc.h>
__CONFIG(XT & WDTDIS & PWRTEN & MCLREN & UNPROTECT & SWBOREN & IESODIS & FCMDIS & LVPDIS & DEBUGDIS);
__CONFIG(BORV21);
#define _XTAL_FREQ 4000000
void delay()
{
unsigned char dem;
dem = 0;
T0CS = 0;
PSA = 0;
PS0 = 1; PS1 = 1; PS2 = 1;
TMR0 = 0;
T0IF = 0;
while(dem < 10)
{
while(T0IF == 0);
TMR0 = 0;
T0IF = 0;
dem++;
}
}
void main()
{
char i, j, count = 7;
ANSEL = 0;
ANSELH = 0;
TRISB = 0X00;
PORTB = 0xff;
while(1)
{
for(i = 0; i <= count; i++)
{
PORTB = ~(1 << i);
delay();
}
if(count == 0)
count = 7;
else
count--;
}
}