Professional Documents
Culture Documents
#INCLUDE<16F877A.h>
#use delay(clock=8M)
signed int8 n;
for(n=0;n<=24;n++)
LED=0xFFFFFF<<n;
output_B(LED);
output_C(LED>>8);
output_D(LED>>16);
delay_ms(200);
void tatdanpst()
for(n=24;n>=0;n--)
output_B(LED);
output_C(LED>>8);
output_D(LED>>16);
delay_ms(200);
void sangdantsp()
for(n=0;n<=24;n++)
output_B(LED);
output_C(LED>>8);
output_D(LED>>16);
delay_ms(200);
void tatdantsp()
for(n=24;n>=0;n--)
output_B(LED);
output_C(LED>>8);
output_D(LED>>16);
delay_ms(200);
void sangdanpstvatatdantsp()
for(n=0;n<=24;n++)
output_B(LED);
output_C(LED>>8);
output_D(LED>>16);
delay_ms(200);
for(n=24;n>=0;n--)
output_B(LED);
output_C(LED>>8);
output_D(LED>>16);
delay_ms(200);
void sangdantspvatatdanpst()
for(n=0;n<=24;n++)
output_B(LED);
output_C(LED>>8);
output_D(LED>>16);
delay_ms(200);
for(n=24;n>=0;n--)
output_B(LED);
output_C(LED>>8);
output_D(LED>>16);
delay_ms(200);
void main()
{
set_tris_B(0x00);
set_tris_C(0x00);
set_tris_D(0x00);
output_B(0xff);
output_C(0xff);
output_D(0xff);
sangdantsp();
tatdantsp();
sangdanpst();
tatdanpst();
sangdantspvatatdanpst();
sangdanpstvatatdantsp();
delay_ms(200);
}
2/Viết Ct dk led 7 đoạn anode chung thực hiện các lệnh sau
a/ Đếm lên 0-9 và đếm xuống 9-0
b/Đếm lên các giá trị lẻ từ 0-9 và từ 9-0
c/Đếm lên các giá trị chẵn 02468 và xuống 86420
d/ Hiển thị từ 0-F và từ F-0
#include<16f877a.h>
#fuses nowdt,hs,put,noprotect
#use delay(clock=20M)
void main()
output_D(0xFF);
while(true)
for(DEM=0;DEM<=9;DEM++)
output_D(L7D[DEM]);
delay_ms(200);
/////////////////////////////////////////
for(DEM=9;DEM>=0;DEM--)
output_D(L7D[DEM]);
delay_ms(200);
//////////////////////////////////////////
for(DEM=1;DEM<=9;DEM=DEM+2)
output_D(L7D[DEM]);
delay_ms(200);
/////////////////////////////////////////
for(DEM=9;DEM>=1;DEM=DEM-2)
output_D(L7D[DEM]);
delay_ms(200);
/////////////////////////////////////////
for(DEM=0;DEM<=8;DEM=DEM+2)
{
output_D(L7D[DEM]);
delay_ms(200);
////////////////////////////////////////
for(DEM=8;DEM>=0;DEM=DEM-2)
output_D(L7D[DEM]);
delay_ms(200);
////////////////////////////////////////
for(DEM=0;DEM<=15;DEM++)
output_D(L7D[DEM]);
delay_ms(200);
////////////////////////////////////////
for(DEM=15;DEM>=0;DEM--)
output_D(L7D[DEM]);
delay_ms(200);