You are on page 1of 251

CHƯƠNG 3: LED

DON
BAI_301_8LED_CHOPTAT
#include <tv_pickit2_shift_1.c>
unsigned int8 y;
void main()
{
set_up_port_ic_chot();
y=0;
while(true)
{
xuat_32led_don_4byte(0,0,0,y);
delay_ms(200);
y=~y;
}
}

BAI_302_16LED_CHOPTAT
#include <tv_pickit2_shift_1.c>
unsigned int8 y;
void main()
{
set_up_port_ic_chot();
y=0;
while(true)
{
xuat_32led_don_4byte(0,0,y,y);
delay_ms(200);
y=~y;
}
}

BAI_303_CHOPTAT_32LED
#include <tv_pickit2_shift_1.c>
unsigned int8 y;
void main()
{
set_up_port_ic_chot();
y=0;
while(true)
{
xuat_32led_don_4byte(y,y,y,y);
delay_ms(200);
y=~y;
}
}

BAI_304_STD_PST_8LED
#include <tv_pickit2_shift_1.c>
unsigned int8 y, i;
void main()
{
set_up_port_ic_chot();
y=0;
while(true)
{
for(i=0;i<8;i++)
{
xuat_32led_don_4byte(0,0,0,y);
delay_ms(200);
y=(y<<1)+1;
}
for(i=0;i<8;i++)
{
xuat_32led_don_4byte(0,0,0,y);
delay_ms(200);
y=(y<<1);
}
}

}
BAI_305_STD_PST_16LED
#include <tv_pickit2_shift_1.c>
unsigned int8 i;
unsigned int16 y;
void main()
{
set_up_port_ic_chot();
y=0;
while(true)
{
for(i=0;i<16;i++)
{
xuat_32led_don_2word(0,y);
delay_ms(300);
y=(y<<1)+1;
}
for(i=0;i<16;i++)
{
xuat_32led_don_2word(0,y);
delay_ms(300);
y=(y<<1);
}
}
}

BAI_306_STD_TSP_16LED_2NHOM (SÁNG PST


2NHOM TAT TSP 2NHOM)
#include <tv_pickit2_shift_1.c>
unsigned int8 i;
unsigned int16 y;
void main()
{
set_up_port_ic_chot();
y=0;
while(true)
{
for(i=0;i<16;i++)
{
// xuat_32led_don_2word(0,y); có thể thêm
xuat_32led_don_2word(y,y);
delay_ms(300);
y=(y<<1)+1;
}
for(i=0;i<16;i++)
{
// xuat_32led_don_2word(0,y); CÓ THỂ THÊM
xuat_32led_don_2word(y,y); // thay đổi thêm biến y
delay_ms(300);
y=(y<<1);
}
}
}

BAI_307_STD_PST_32LED
#include <tv_pickit2_shift_1.c>
unsigned int8 i;
unsigned int32 y;
void main()
{
set_up_port_ic_chot();
y=0;
while(true)
{
for(i=0;i<32;i++)
{
xuat_32led_don_1DW(y);
delay_ms(100);
y=(y<<1)+1;
}
for(i=0;i<32;i++)
{
xuat_32led_don_1DW(y);
delay_ms(100);
y=(y<<1);
}
}

}
BAI_308_SDTA_PST_TSP_32LED
#include <tv_pickit2_shift_1.c>
unsigned int8 i;
unsigned int32 y;
void main()
{
set_up_port_ic_chot();
y=0;
while(true)
{
for(i=0;i<32;i++)
{
xuat_32led_don_1DW(y);
delay_ms(30);
y=(y<<1)+1;
}
for(i=0;i<32;i++)
{
xuat_32led_don_1DW(y);
delay_ms(30);
y=(y<<1);
}
for(i=0;i<32;i++)
{
xuat_32led_don_1dw(y);
delay_ms(30);
y=(y>>1)+0x80000000; // KHI DỊCH TỪ PST THÌ CỘNG VỚI 0X01;
NẾU 8BIT THÌ TA CỘNG VỚI 1000_0000 HAY 0X80; 16 BIT THÌ CỘNG
0X8000; 32 BIT THÌ CỘNG 0X80000000
}
{
for(i=0;i<32;i++)
{
xuat_32led_don_1dw(y);
delay_ms(30);
y=(y>>1);
}
}
}
}

BAI_309_TONGHOP_32LED
#include <tv_pickit2_shift_1.c>
unsigned int8 i,j;
unsigned int32 y;
void sang_tat_32led_5lan()
{
for(j=0;j<5;j++)
{
xuat_32led_don_4byte(0,0,0,0);
delay_ms(100);
xuat_32led_don_4byte(0xff,0xff,0xff,0xff);
delay_ms(100);
}
}
void sang_tat_dan_pst_32led_2lan()
{
for (j=0;j<2;j++)
{
for (i=0;i<32;i++)
{
xuat_32led_don_1dw(y);
delay_ms(30);
y=(y<<1)+1;
}
for(i=0;i<32;i++)
{
xuat_32led_don_1DW(y);
delay_ms(30);
y=(y<<1);
}
}
}
void sang_tat_dan_tsp_32led_2lan()
{
for(j=0;j<2;j++)
{
for (i=0;i<32;i++)
{
xuat_32led_don_1dw(y);
delay_ms(30);
y=(y>>1)+0x80000000;
}
for(i=0;i<32;i++)
{
xuat_32led_don_1dw(y);
delay_ms(30);
y=(y>>1);
}
}
}
void main()
{
set_up_port_ic_chot();
y=0x00000000;
while (true)
{
sang_tat_32led_5lan();
sang_tat_dan_pst_32led_2lan();
sang_tat_32led_5lan();
sang_tat_dan_tsp_32led_2lan();
}
}

BAI_310_TONGHOP_32LED
#include <tv_pickit2_shift_1.c>
unsigned int16 zt,zp;
unsigned int8 i,j;
unsigned int32 y;
void sang_tat_32led_5lan()
{
for(j=0;j<5;j++)
{
xuat_32led_don_4byte(0,0,0,0);
delay_ms(100);
xuat_32led_don_4byte(0xff,0xff,0xff,0xff);
delay_ms(100);
}
}
void sang_tat_dan_pst_32led_2lan()
{
for (j=0;j<2;j++)
{
for (i=0;i<32;i++)
{
xuat_32led_don_1dw(y);
delay_ms(30);
y=(y<<1)+1;
}
for(i=0;i<32;i++)
{
xuat_32led_don_1DW(y);
delay_ms(30);
y=(y<<1);
}
}
}
void sang_tat_dan_tsp_32led_2lan()
{
for(j=0;j<2;j++)
{
for (i=0;i<32;i++)
{
xuat_32led_don_1dw(y);
delay_ms(30);
y=(y>>1)+0x80000000;
}
for(i=0;i<32;i++)
{
xuat_32led_don_1dw(y);
delay_ms(30);
y=(y>>1);
}
}
}
void sang_tat_dan_ngoai_vao_32led_2lan()
{
for(j=0;j<2;j++)
{for(i=0;i<16;i++)
{
xuat_32led_don_2word(zp,zt);
delay_ms(30);
zp=(zp<<1)+1;
zt=(zt>>1)+0x8000;
}
for(i=0;i<16;i++)
{
xuat_32led_don_2word(zp,zt);
delay_ms(30);
zp=(zp<<1);
zt=(zt>>1);
}
}
}
void sang_tat_dan_trong_ra_32led_2lan()
{
for (j=0;j<2;j++)
{
for (i=0;i<16;i++)
{
xuat_32led_don_2word(zp,zt);
delay_ms(30);
zp=(zp>>1)+0x8000;
zt=(zt<<1)+1;
}
for(i=0;i<16;i++)
{
xuat_32led_don_2word(zp,zt);
delay_ms(30);
zp= (zp>>1);
zt= (zt<<1);
}
}
}
void main()
{
set_up_port_ic_chot();
y=0x00000000;
while(true)
{
sang_tat_32led_5lan();
sang_tat_dan_pst_32led_2lan();
sang_tat_32led_5lan();
sang_tat_dan_tsp_32led_2lan();
sang_tat_32led_5lan();
sang_tat_dan_ngoai_vao_32led_2lan();
sang_tat_32led_5lan();
sang_tat_dan_trong_ra_32led_2lan();
}
}

BAI_311_STD_PDT_32LED_NO_LOOP
#include <tv_pickit2_shift_1.c>
unsigned int8 dem_led;
unsigned int32 y;
void delay_tuy_y(unsigned int8 dl2)
{
unsigned int8 dl;
for (dl=0;dl<dl2;dl++)
delay_ms(10);
}
void sang_tat_dan_pst_32led(unsigned int8 dl)
{
if (dem_led<32)
{
xuat_32led_don_1dw(y);
y=(y<<1)+1;
delay_tuy_y(dl);
}
else if(dem_led<64)
{
xuat_32led_don_1dw(y);
y=(y<<1);
delay_tuy_y(dl);
}
else
{
dem_led=0;
y=0;
}
dem_led++;
}
void main()
{
set_up_port_ic_chot();
y=0;
while(true)
{
sang_tat_dan_pst_32led(2);
delay_ms(500);
}
}

BAI_312_DÙNG LỆNH IF
// Ý TƯỞNG

BAI_321_ON_OFF_8LED
#include <tv_pickit2_shift_1.c>
void main()
{
set_up_port_ic_chot();
set_tris_b(0x3c);
xuat_32led_don_4byte(0,0,0,0);
while(true)
{
while(input(bt0));
xuat_32led_don_4byte(0,0,0,0xff);
while(input(bt1));
xuat_32led_don_4byte(0,0,0,0);
}
}
BAI_323_ON_OFF_INV_CDOL_8LED
#include <tv_pickit2_shift_1.c>
unsigned int8 y;
void phim_inv()
if(!input(inv))
{
delay_ms(20);
{
if(!input(inv))
{
y=~y;
xuat_32led_don_4byte(0,0,0,y);
while(!input(inv));
}
}
}
}
void main()
set_up_port_ic_chot();
set_tris_b(0x3c);
y=0x00;
xuat_32led_don_4byte(0,0,0,y);
BAI_324_16LED_UP_DW_CLR_1
#include <tv_pickit2_shift_1.c>
unsigned int16 Y;
UNSIGNED INT8 TT_SANG;
VOID PHIM_UP()
{
IF(!INPUT(UP));
{
DELAY_MS(100);
iF(!INPUT(UP))
{
IF(TT_SANG==0)
{
Y=(Y<<1)+1;
}
IF(TT_SANG==1)
{
Y=(Y>>1)+0X8000;
}
XUAT_32LED_DON_1DW(Y);
WHILE(!INPUT(UP));
}
}
}
VOID PHIM_DW()
{
IF(!INPUT(DW))
{
DELAY_MS(100);
IF(!INPUT(DW))
{
IF(TT_SANG==0)
{
Y=Y>>1;
}
iF(TT_SANG==1)
{
Y=Y<<1;
}
XUAT_32LED_DON_1DW(Y);
WHILE(!INPUT(DW));
}
}
}
VOID PHIM_CLR()
{
IF(!INPUT(CLR))
{
DELAY_MS(100);
IF(!INPUT(CLR))
{
Y=0;
TT_SANG++;
IF(TT_SANG==2)
{
TT_SANG=0;
}
XUAT_32LED_DON_1DW(Y);
WHILE(!INPUT(CLR));
}
}
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SET_TRIS_B(0X3C);
Y=0;
XUAT_32LED_DON_4BYTE(0,0,0,Y);
WHILE(TRUE)
{
PHIM_UP();
PHIM_DW();
PHIM_CLR();
}
}

CHƯA SỬA
BAI_326_TONGHOP_UP_DN_CLR
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
UNSIGNED INT32 Y;
UNSIGNED INT8 I,TT_CT=0;
VOID PHIM_UP()
{
IF(!INPUT(UP))
{
DELAY_MS(100);
IF(!INPUT(UP))
{
TT_CT++;
I=0;
Y=0;
IF(TT_CT==4)
TT_CT=3;
WHILE(!INPUT(UP));
}
}
}
VOID PHIM_DW()
{
IF(!INPUT(DW))
{
DELAY_MS(100);
IF(!INPUT(DW))
{
TT_CT--;
I=0;
Y=0;
IF(TT_CT==0)
TT_CT=1;
WHILE(!INPUT(DW));
}
}
}
VOID PHIM_CLR()
{
IF(!INPUT(CLR))
{
DELAY_MS(100);
IF(!INPUT(CLR))
{
TT_CT=1;
WHILE(!INPUT(CLR));
}
}
}
VOID CHOP_TAT()
{
Y=0;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(200);
Y=0XFFFFFFFF;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(200);
}
VOID STD_32LED_PST()
{
IF(I<32)
{
Y= (Y<<1) +1;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(100);
I++;
}
ELSE
{
IF(I<64)
{
Y=Y<<1;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(100);
I++;
}
ELSE
{
I=0;
Y=0;
}
}
}
VOID STD_32LED_TSP()
{
IF(I<32)
{
Y= (Y>>1) + 0X80000000;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(100);
I++;
}
ELSE
{
IF(I<64)
{
Y=Y>>1;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(100);
I++;
}
ELSE
{
Y=0;
I=0;
}
}
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SET_TRIS_B(0X3C);
Y=0;
XUAT_32LED_DON_1DW(Y);
WHILE(TRUE)
{
IF(TT_CT==1) CHOP_TAT();
IF(TT_CT==2) STD_32LED_PST();
IF(TT_CT==3) STD_32LED_TSP();
PHIM_UP();
PHIM_DW();
PHIM_CLR();
}
}
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
UNSIGNED INT32 Y;
UNSIGNED INT16 ZT,ZP;
UNSIGNED INT8 I,J,TT_CT,DEM,CO;
VOID PHIM_UP()
{
IF(!INPUT(UP))
{
DELAY_MS(100);
IF(!INPUT(UP))
{
TT_CT++;
I=0;
Y=0;
IF(TT_CT==7)
TT_CT=6;
WHILE(!INPUT(UP));
}
}
}
VOID PHIM_DW()
{
IF(!INPUT(DW))
{
DELAY_MS(100);
IF(!INPUT(DW))
{
TT_CT--;
I=0;
Y=0;
IF(TT_CT==0)
TT_CT=1;
WHILE(!INPUT(DW));
}
}
}
VOID PHIM_CLR()
{
IF(!INPUT(CLR))
{
DELAY_MS(100);
IF(!INPUT(CLR))
{
TT_CT=1;
WHILE(!INPUT(CLR));
}
}
}
VOID CHOP_TAT()
{
Y=0;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(200);
Y=0XFFFFFFFF;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(200);
}
VOID STD_32LED_PST()
{
IF(I<32)
{
Y= (Y<<1) +1;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(100);
I++;
}
ELSE
{
IF(I<64)
{
Y=Y<<1;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(100);
I++;
}
ELSE
{
I=0;
Y=0;
}
}
}
VOID STD_32LED_TSP()
{
IF(I<32)
{
Y= (Y>>1) + 0X80000000;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(100);
I++;
}
ELSE
{
IF(I<64)
{
Y=Y>>1;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(100);
I++;
}
ELSE
{
Y=0;
I=0;
}
}
}
VOID SD_TD_NGOAIVAO_TRONGRA()
{
IF(CO==0)
{
IF(DEM<2)
{
IF(I<16)
{
ZP=(ZP<<1)+1;
ZT=(ZT>>1)+0X8000;
XUAT_32LED_DON_2WORD(ZT,ZP);
DELAY_MS(100);
I++;
}
ELSE
{
IF(I<32)
{
ZP=(ZP<<1);
ZT=(ZT>>1);
XUAT_32LED_DON_2WORD(ZT,ZP);
DELAY_MS(100);
I++;
}
ELSE
{
DEM++;
I=0;
ZT=0;
ZP=0;
}
}
}
ELSE
{
DEM=0;
TT_CT++;
CO=1;
ZT=0;
ZP=0;
}
}
IF(CO==1)
{
IF(DEM<2)
{
IF(I<16)
{
ZP=(ZP>>1)+0X8000;
ZT=(ZT<<1)+1;
XUAT_32LED_DON_2WORD(ZT,ZP);
DELAY_MS(100);
I++;
}
ELSE
{
IF(I<32)
{
ZP=(ZP>>1);
ZT=(ZT<<1);
XUAT_32LED_DON_2WORD(ZT,ZP);
DELAY_MS(100);
I++;
}
ELSE
{
DEM++;
I=0;
ZT=0;
ZP=0;
}
}
}
ELSE
{
DEM=0;
TT_CT=0;
CO=0;
ZT=0;
ZP=0;
}
}
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SET_TRIS_B(0X3C);
Y=0;
XUAT_32LED_DON_1DW(Y);
XUAT_32LED_DON_2WORD(zt,zp);
WHILE(TRUE)
{
IF(TT_CT==1) CHOP_TAT();
IF(TT_CT==2) STD_32LED_PST();
IF(TT_CT==3) STD_32LED_TSP();
IF(TT_CT==4) SD_TD_NGOAIVAO_TRONGRA();
PHIM_UP();
PHIM_DW();
PHIM_CLR();
}
}

BAI_332_MATRANPHIM_LEDDON
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
#INCLUDE <TV_PICKIT2_SHIFT_KEY4X4_138.C>
SIGNED INT8 MP;
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SET_TRIS_B(0X3C);
WHILE(TRUE)
{
MP = KEY_4X4_UP();
IF(MP != 0XFF)
XUAT_32LED_DON_4BYTE(0,0,0,MP);
}
}

BAI_333_MATRANPHIM_8LED_ON_OFF
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
#INCLUDE <TV_PICKIT2_SHIFT_KEY4X4_138.C>
SIGNED INT8 MP;
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SET_TRIS_B(0X3C);
WHILE(TRUE)
{
DO
{
MP=KEY_NHAN();
}
WHILE(MP!=1);
XUAT_32LED_DON_4BYTE(0,0,0,0XFF);
DO {MP=KEY_NHAN();}
WHILE(MP!=0);
{

XUAT_32LED_DON_4BYTE(0,0,0,0);
}
}
}

BAI_334_MATRANPHIM_8LED_16_BTN_ON_
OFF
#INCLUDE <TV_PICKIT2_SHIFT_1.C>

#INCLUDE <TV_PICKIT2_SHIFT_KEY4X4_138.C>

SIGNED INT8 MP;

UNSIGNED INT8 Y=0;

VOID MAIN()

SET_UP_PORT_IC_CHOT();

SET_TRIS_B(0X3C);

WHILE(TRUE)

MP = KEY_4X4_UP();

IF(MP != 0XFF)

//ON

//Y=(MP<8) ? Y|0B00000001<<MP:Y&~(0X01<<(MP-8));

//HOAC LA

IF(MP<8)

Y=Y|0B00000001<<MP;
}

ELSE

Y=Y&~(0B00000001<<(MP-8));

XUAT_32LED_DON_4BYTE(0,0,0,Y);

BAI_335_7CT_7BTN
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
#INCLUDE <TV_PICKIT2_SHIFT_KEY4X4_138.C>
SIGNED INT8 MP;
UNSIGNED INT8 I=0,TTCT=0;
UNSIGNED INT16 ZT=0,ZP=0,CD=0,CHAY=32;
UNSIGNED INT32 Y=0,Y_CODINH=0,Y_CHAY1=1,Y_CHAY2=0X80000000;
VOID CHOP_TAT()
{
Y=0;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(200);
Y=0XFFFFFFFF;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(200);
}
VOID STD_32LED_PST()
{
IF(I<32)
{
Y= (Y<<1) +1;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(20);
I++;
}
ELSE
{
IF(I<64)
{
Y=Y<<1;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(20);
I++;
}
ELSE
{
I=0;
Y=0;
}
}
}
VOID STD_32LED_TSP()
{
IF(I<32)
{
Y= (Y>>1) + 0X80000000;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(20);
I++;
}
ELSE
{
IF(I<64)
{
Y=Y>>1;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(20);
I++;
}
ELSE
{
Y=0;
I=0;
}
}
}
VOID SANG_TAT_DAN_NGOAI_VAO_32LED()
{
IF(I<16)
{
ZP=(ZP<<1)+1;
ZT=(ZT>>1)+0X8000;
XUAT_32LED_DON_2WORD(ZT,ZP);
DELAY_MS(20);
I++;
}
ELSE
{
IF(I<32)
{
ZP=(ZP<<1);
ZT=(ZT>>1);
XUAT_32LED_DON_2WORD(ZT,ZP);
DELAY_MS(20);
I++;
}
ELSE
{
I=0;
ZT=0;
ZP=0;
}
}
}
VOID SANG_TAT_DAN_TRONG_RA_32LED()
{
IF(I<16)
{
ZP=(ZP>>1)+0X8000;
ZT=(ZT<<1)+1;
XUAT_32LED_DON_2WORD(ZT,ZP);
DELAY_MS(20);
I++;
}
ELSE
{
IF(I<32)
{
ZP=(ZP>>1);
ZT=(ZT<<1);
XUAT_32LED_DON_2WORD(ZT,ZP);
DELAY_MS(20);
I++;
}
ELSE
{
I=0;
ZT=0;
ZP=0;
}
}
}
VOID SANG_DON_PST_32LED()
{
IF(CHAY>0)
{
IF(CD<CHAY)
{
Y = Y_CODINH | Y_CHAY1;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(10);
Y_CHAY1 = Y_CHAY1 <<1;
CD++;
}
IF(CD==CHAY)
{
CHAY--;
CD=0;
Y_CODINH=Y;
Y_CHAY1=1;
}
}
ELSE
{
CHAY=32;
CD=0;
Y_CODINH=0;
Y_CHAY1=1;
Y=0;
XUAT_32LED_DON_1DW(Y);
}
}
VOID SANG_DON_TSP_32LED()
{
IF(CHAY>0)
{
IF(CD<CHAY)
{
Y = Y_CODINH | Y_CHAY2;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(10);
Y_CHAY2 = Y_CHAY2 >>1;
CD++;
}
IF(CD==CHAY)
{
CHAY--;
CD=0;
Y_CODINH=Y;
Y_CHAY2=0X80000000;
}
}
ELSE
{
CHAY=32;
CD=0;
Y_CODINH=0;
Y_CHAY2=0X80000000;
Y=0;
XUAT_32LED_DON_1DW(Y);
}
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SET_TRIS_B(0X3C);
WHILE(TRUE)
{
MP = KEY_4X4_DW();
IF(MP != 0XFF)
{

IF(MP==0) {Y=0; TTCT=1;};


IF(MP==1) {Y=0; I=0; TTCT=2;};
IF(MP==2) {Y=0; I=0; TTCT=3;};
IF(MP==3) {Y=0; I=0; ZT=0; ZP=0; XUAT_32LED_DON_2WORD(ZT,ZP);
TTCT=4;};
IF(MP==4) {Y=0; I=0; ZT=0; ZP=0; XUAT_32LED_DON_2WORD(ZT,ZP);
TTCT=5;};
IF(MP==5) {Y=0; I=0; Y_CODINH=0; Y_CHAY1=1; CD=0; CHAY=0;
TTCT=6;};
IF(MP==6) {Y=0; I=0; Y_CODINH=0; Y_CHAY2=0X80000000; CD=0;
CHAY=0; TTCT=7;};
}

IF(TTCT==1) CHOP_TAT();
IF(TTCT==2) STD_32LED_PST();
IF(TTCT==3) STD_32LED_TSP();
IF(TTCT==4) SANG_TAT_DAN_NGOAI_VAO_32LED(); //BI 2 LED SANG O 2 DAU
LA VI HAM KEY_4X4_UP() -> SUA THANH DW
IF(TTCT==5) SANG_TAT_DAN_TRONG_RA_32LED();
IF(TTCT==6) SANG_DON_PST_32LED();
IF(TTCT==7) SANG_DON_TSP_32LED();
}
}

BAI_401_HIENTHI_4SO
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
XUAT_4LED_7DOAN_4SO(0XB0,0XA4,0XF9,0XC0);
WHILE(TRUE);
}

BAI_402_DEM_0_9
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
UNSIGNED INT8 I;
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
WHILE(TRUE)
{
FOR (I=0;I<10;I++)
{
XUAT_4LED_7DOAN_1SO(MA7DOAN[I]);
DELAY_MS(1200); //THAY DOI TUY Y
}
}
}

BAI_403_DEM_00_99
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
UNSIGNED INT8 I;
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
WHILE(TRUE)
{
FOR (I=0;I<99;I++)
{
XUAT_4LED_7DOAN_2SO(MA7DOAN[I/10],MA7DOAN[I%10]);
DELAY_MS(200); //THAY DOI TUY Y
}
}
}

BÀI 404_DEM_00_59
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
UNSIGNED INT8 I;
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
WHILE(TRUE)
{
FOR (I=0; I<60; I++)
{
XUAT_4LED_7DOAN_4SO(0XFF,0XFF,MA7DOAN[I/10],MA7DOAN[I%10]);
DELAY_MS(1000);
}
}
}
BAI_405_DEM_00_59_00

#INCLUDE <TV_PICKIT2_SHIFT_1.C>
UNSIGNED INT8 I;
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
WHILE(TRUE)
{
FOR (I=0; I<60; I++)
{
XUAT_4LED_7DOAN_4SO(0XFF,0XFF,MA7DOAN[I/10],MA7DOAN[I%10]);
DELAY_MS(1000);

FOR (I=59;I>0; I--)


{
XUAT_4LED_7DOAN_4SO(0XFF,0XFF,MA7DOAN[I/10],MA7DOAN[I%10]);
DELAY_MS(1000);
}
}
}
}

BAI_406_DEM_00_59_3S_00_3S
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
SIGNED INT8 I;
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
WHILE(TRUE)
{
//! FOR (I=0;I<60;I++)
//! {
//! XUAT_4LED_7DOAN_4SO(0XFF,0XFF, MA7DOAN[I/10],MA7DOAN[I%10]);
//! DELAY_MS(200);
//! }
I=0;
DO
{
XUAT_4LED_7DOAN_4SO(0XFF,0XFF, MA7DOAN[I/10],MA7DOAN[I%10]);
DELAY_MS(100);
I++;
}
WHILE(I<60);

DELAY_MS(2800);
//! FOR (I=59;I>=0;I--)
//! {
//! XUAT_4LED_7DOAN_4SO(0XFF,0XFF, MA7DOAN[I/10],MA7DOAN[I%10]);
//! DELAY_MS(200);
//! }
I=59;
DO
{
XUAT_4LED_7DOAN_4SO(0XFF,0XFF, MA7DOAN[I/10],MA7DOAN[I%10]);
DELAY_MS(100);
I--;
}
WHILE(I>=0);
DELAY_MS(2800);

}
}

BAI_407_DEM_000_999

#INCLUDE<TV_PICKITT2_SHIFT_1.C>
SIGNED INT16 I;
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
WHILE(TRUE)
{
FOR (I=0; I<1000; I++)
{
XUAT_4LED_7DOAN_3SO(MA7DOAN[I/100],MA7DOAN[I/10%10],MA7DOAN[I%10]);
DELAY_MS(50);
}
}
}

BAI_408_DEM_0000_9999
#INCLUDE <TV_PICKITT2_SHIFT_1.C>
SIGNED INT16 I;
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
WHILE(TRUE)
{
FOR(I=0;I<10000;I++)
{

XUAT_4LED_7DOAN_4SO(MA7DOAN[I/1000],MA7DOAN[I/100],MA7DOAN[I/10%10],
MA7DOAN[I%10]);
DELAY_MS(50);
}
}
}

BAI_409_DEM_PHUT_GIAY
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
SIGNED INT8 PHUT, GIAY;
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
PHUT=0;
GIAY=0;
WHILE(TRUE)
{

XUAT_4LED_7DOAN_4SO(MA7DOAN[PHUT/10],MA7DOAN[PHUT%10],M
A7DOAN[GIAY/10],MA7DOAN[GIAY%10]);
DELAY_MS(200);
GIAY++;
IF(GIAY==60)
{
GIAY=0;
PHUT++;
IF (PHUT==60)
{
GIAY=0;
PHUT=0;
}
}
}
}

BAI_411_DEM_XUNG_T0
#include <tv_pickit2_shift_1.c>
unsigned int8 t0;
void main()
{
set_up_port_ic_chot();
setup_timer_0 (t0_ext_l_to_h | t0_div_1| t0_8_bit);
set_timer0(0);
while(true)
{
t0 = get_timer0();
xuat_4led_7doan_3so(ma7doan[t0/100], ma7doan[t0/10%10],
ma7doan[t0%10]);
if (t0>=101) set_timer0(1);
}
}

BAI_412_DEM_XUNG_T0_XOA_SO0_VN
#include <tv_pickit2_shift_1.c>
unsigned int8 t0;
unsigned int8 donvi, chuc, tram;
void giai_ma_hien_thi (unsigned int16 tam)
{
donvi = ma7doan[tam%10];
chuc = ma7doan[tam/10%10];
tram = ma7doan[tam/100];
if (tram==0xc0)
{
tram=0xff;
if (chuc==0xc0) chuc=0xff;
}
xuat_4led_7doan_3so(tram,chuc,donvi);
}
void main()
{
set_up_port_ic_chot();
setup_timer_0 (t0_ext_l_to_h | t0_div_1|t0_8_bit);
set_timer0(0);
while(true)
{
t0=get_timer0();
giai_ma_hien_thi(t0);
if(t0>=101) set_timer0(1);
}
}

BAI_415_DEM_XUNG_T0
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
UNSIGNED INT16 T0,T0_TAM;
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_TIMER_0 (T0_EXT_L_TO_H|T0_DIV_1);
SET_TIMER0(250);
T0_TAM = T0 = 0;
XUAT_4LED_7DOAN_GIAIMA_XOA_SO0(T0);
WHILE(TRUE)
{
T0= GET_TIMER0();
{
IF(T0!=T0_TAM)
{
T0_TAM=T0;
XUAT_4LED_7DOAN_GIAIMA_XOA_SO0(T0);
IF (T0==301) SET_TIMER0(250);
}
}
}
}

BAI_416_DEM_XUNG_T0 // TỪ 0 ĐẾN 9999


#INCLUDE <TV_PICKIT2_SHIFT_1.C>
UNSIGNED INT16 T0,T0_TAM;
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_TIMER_0 (T0_EXT_L_TO_H|T0_DIV_1);
SET_TIMER0(0);
T0_TAM = T0 = 0;
XUAT_4LED_7DOAN_GIAIMA_XOA_SO0(T0);
WHILE(TRUE)
{
T0= GET_TIMER0();
{
IF(T0!=T0_TAM)
{
T0_TAM=T0;
XUAT_4LED_7DOAN_GIAIMA_XOA_SO0(T0);
IF (T0==1001) SET_TIMER0(1);
}
}
}
}

BÀ I_417_DEM_XUNG_T0_START_STOP_32LED
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
UNSIGNED INT16 T0,T0_TAM;
UNSIGNED INT1 TTCT=0;
VOID PHIM_ON()
{
IF(!INPUT(UP))
{
DELAY_MS(100);
IF(!INPUT(UP))
{
TTCT=1;

WHILE(!INPUT(UP));
}
}
}
VOID PHIM_OFF()
{
IF(!INPUT(DW))
{
DELAY_MS(100);
IF(!INPUT(DW))
{
TTCT=0;
WHILE(!INPUT(DW));
}
}
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_TIMER_0 (T0_EXT_L_TO_H|T0_DIV_1);
SET_TIMER0(0);
T0_TAM = T0 = 0;
XUAT_4LED_7DOAN_GIAIMA_XOA_SO0(T0);
WHILE (TRUE)
{
PHIM_ON();
PHIM_OFF();
IF(TTCT==1)
{
SETUP_TIMER_0 (T0_EXT_L_TO_H|T0_DIV_1);
XUAT_32LED_DON_1DW(0XFFFFFFFF);
T0 = GET_TIMER0();
IF ( T0!=T0_TAM)
{
T0_TAM = T0;
XUAT_4LED_7DOAN_GIAIMA_XOA_SO0(T0);
IF (T0>=101) SET_TIMER0(1);

}
}
IF(TTCT==0)
{
XUAT_32LED_DON_1DW(0);
SETUP_TIMER_0(T0_OFF);
}
}
}

BAI_421_DEM_XUNG_T0_QUANG_CAO_32LED
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
UNSIGNED INT8 TTCT = 1,T0,T0_TAM;
UNSIGNED INT8 DONVI,CHUC,TRAM;
#INCLUDE <TV_PICKIT2_SHIFT_32LED_DON.C>
//#INCLUDE <TV_PICKIT2_SHIFT_32LED_DON_TUDONG.C>
VOID GIAI_MA_HIEN_THI(T0)
{
DONVI = MA7DOAN[T0%10];
CHUC = MA7DOAN[T0/10%10];
TRAM = MA7DOAN[T0/100];
IF (TRAM==0XC0)
{
TRAM = 0XFF;
IF (CHUC==0XC0) CHUC=0XFF;
}
XUAT_4LED_7DOAN_4SO(0XFF, TRAM,CHUC,DONVI);
}
VOID PHIM_UP()
{
IF (!INPUT(UP) && (TTCT<7))
{
DELAY_MS(10);
IF (!INPUT(UP))
{
TTCT++;
WHILE(!INPUT(UP));

}
}
}

VOID PHIM_DW()
{
IF (!INPUT(DW) && (TTCT>1))
{
DELAY_MS(10);
IF (!INPUT(DW))
{
TTCT--;
WHILE(!INPUT(DW));

}
}
}
VOID PHIM_CLR()
{
IF (!INPUT(CLR) && (TTCT>1)) TTCT=1;
}

VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_TIMER_0 (T0_EXT_L_TO_H|T0_DIV_1|T0_8_BIT);
SET_TIMER0(0);
SET_TRIS_B(0X3C);
T0_TAM = T0 = 0;
GIAI_MA_HIEN_THI(T0);
WHILE(TRUE)
{
T0 = GET_TIMER0();
IF (T0!=T0_TAM)
{
T0_TAM = T0;
XUAT_4LED_7DOAN_GIAIMA_XOA_SO0(T0);
IF (T0>=101) SET_TIMER0(1);
}
IF (TTCT == 1) SANG_TAT_32LED(10,0);
IF (TTCT == 2) SANG_TAT_DAN_PST_32LED(10,0);
IF (TTCT == 3) SANG_TAT_DAN_TSP_32LED(10,0);
IF (TTCT == 4) SANG_TAT_DAN_NGOAI_VAO_32LED(10,0);
IF (TTCT == 5) SANG_TAT_DAN_TRONG_RA_32LED(10,0);
IF (TTCT == 6) SANG_DON_PST_32LED(10,0);
IF (TTCT == 7) SANG_DON_TSP_32LED(10,0);
PHIM_DW();
PHIM_UP();
PHIM_CLR();
}

CHƯƠNG 5: 8 LED 7 DOAN ANODE CHUNG PP QUÉT


̣
THANH GHI DICH MBI5026

BAI_501_HIENTHI_8SO

MỤC ĐÍCH :BIẾT CÁCH VIẾT CHƯƠNG TRÌNH 8 LED 7 ĐỌAN PP QUÉ T:
Các thông số se ̃ thay đổ i tố c đô ̣ delay=1 đế n 1000 hiể n thi tư
̣ ̀ phải sang trái 0 ……7 mỗi
lầ n chỉ có 1 led sáng

#INCLUDE <TV_PICKIT2_SHIFT_1.C>
UNSIGNED INT16 TG_DELAY;
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
TG_DELAY=1;
WHILE(TRUE)
{
XUAT_8LED_7DOAN_QUET_1(0X7F,0XC0);//0
DELAY_MS(TG_DELAY);
XUAT_8LED_7DOAN_QUET_1(0XBF,0XF9);//1
DELAY_MS(TG_DELAY);
XUAT_8LED_7DOAN_QUET_1(0XDF,0XA4); //2
DELAY_MS(TG_DELAY);
XUAT_8LED_7DOAN_QUET_1(0XEF,0XB0); //3
DELAY_MS(TG_DELAY);
XUAT_8LED_7DOAN_QUET_1(0XF7,0X99); //4
DELAY_MS(TG_DELAY);
XUAT_8LED_7DOAN_QUET_1(0XFB,0X92); //5
DELAY_MS(TG_DELAY);
XUAT_8LED_7DOAN_QUET_1(0XFD,0X82); //6
DELAY_MS(TG_DELAY);
XUAT_8LED_7DOAN_QUET_1(0XFE,0XF8); //7
DELAY_MS(TG_DELAY);

}
}

Mở rô ̣ng : nế u TG_DELAY càng giảm thì tố c đô ̣ hiể n thi 8̣ led quét sẽ nhanh hầ u như bi mơ
̣ ̀
mắ t k phân biê ̣t dc

BAI_502_HIENTHI_10

#INCLUDE <TV_PICKIT2_SHIFT_1.C>
UNSIGNED INT16 TG_DELAY;
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
TG_DELAY=1000;
WHILE(TRUE)
{
XUAT_8LED_7DOAN_QUET_1(0X7F,0XC0); //0
DELAY_MS(TG_DELAY);
XUAT_8LED_7DOAN_QUET_1(0XBF,0XF9); //1
DELAY_MS(TG_DELAY);
}
}

BAI_503_HIENTHI_8SO_CACH2
Mu ̣c đích: biế t cách sử du ̣ng 8led 7 đoa ̣n pp quét đơn giản dễ nhớ dễ sử du ̣ng
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
UNSIGNED INT16 TG_DELAY;

VOID MAIN ()
{
SET_UP_PORT_IC_CHOT();
TG_DELAY=1;
WHILE (TRUE)
{
XUAT_8LED_7DOAN_QUET_2(0, 0XC0); //0
DELAY_MS(TG_DELAY);

XUAT_8LED_7DOAN_QUET_2(1, 0XF9); //1


DELAY_MS(TG_DELAY);

XUAT_8LED_7DOAN_QUET_2(2, 0XA4); //2


DELAY_MS(TG_DELAY);

XUAT_8LED_7DOAN_QUET_2(3, 0XB0); //3


DELAY_MS(TG_DELAY);

XUAT_8LED_7DOAN_QUET_2(4, 0X99); //4


DELAY_MS(TG_DELAY);

XUAT_8LED_7DOAN_QUET_2(5, 0X92); //5


DELAY_MS(TG_DELAY);

XUAT_8LED_7DOAN_QUET_2(6, 0X82); //6


DELAY_MS(TG_DELAY);

XUAT_8LED_7DOAN_QUET_2(7, 0XF8); //7


DELAY_MS(TG_DELAY);

}
}

Mu ̣c đích: giải thích dc XUAT_8LED_7DOAN_QUET_2(tra ̣ng thái led, dữ liê ̣u hê ̣


thố ng);

BAI_504_HIENTHI_8SO_CACH3

#INCLUDE <TV_PICKIT2_SHIFT_1.C>
LED7DQ[8]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8};
UNSIGNED INT8 I;
VOID HIEN_THI_8LED()
{
FOR(I=0;I<8;I++)
{
XUAT_8LED_7DOAN_QUET_2(I,LED7DQ[I]);
DELAY_US(200);
XUAT_8LED_7DOAN_QUET_TAT_LED();
}
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
WHILE(TRUE)
{
HIEN_THI_8LED();
}
}
Mu ̣c đích: biế t sử du ̣ng phương pháp quet da ̣ng vòng lă ̣p và sử du ̣ng mảng dữ liê ̣u hiể n thi ̣cho
8led

BAI_511_DEM_GIAY
#INCLUDE <TV_PICKIT2_SHIFT_1.C>

SIGNED INT8 GIAY;

UNSIGNED INT16 I;

VOID HIENTHI_DELAY()
{
FOR(I=0;I<200;I++)
{
XUAT_8LED_7DOAN_QUET_2(0,MA7DOAN [GIAY%10]);
DELAY_US(200);
XUAT_8LED_7DOAN_QUET_TAT_LED();
XUAT_8LED_7DOAN_QUET_2(1,MA7DOAN [GIAY/10]);
DELAY_US(200);
XUAT_8LED_7DOAN_QUET_TAT_LED();
}
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
WHILE(TRUE)
{
FOR(GIAY=0;GIAY<60;GIAY++)
{
HIENTHI_DELAY();
}
}
}
MỞ RỘNG : NẾU BỎ DÒNG LẶP THÌ SẼ LÀM LED QUÉ T NHANH MÀ MẮT K THẤY
ĐƯỢC SỰ THAY ĐỔI

BAI_512_DEM_GIAY_CHINH_XAC
̣ THỜIVÀ NGẮT ĐỂ ĐẾM GIÂY CX
MỤC ĐÍCH: BIẾT CÁCH SD TIMER T1 ĐINH
#INCLUDE <TV_PICKIT2_SHIFT_1.C>

SIGNED INT8 GIAY, BDN;


#INT_TIMER1
VOID INTERRUPT_TIMER1()
{
BDN++;
SET_TIMER1(3036);
}
VOID GIAI_MA_GAN_CHO_8LED_QUET()
{
LED_7DQ[0]=MA7DOAN[GIAY%10];
LED_7DQ[1]=MA7DOAN[GIAY/10];
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_TIMER_1(T1_INTERNAL| T1_DIV_BY_8);
SET_TIMER1(3036);
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_TIMER1);
GIAY=0;
BDN=0;
WHILE(TRUE)
{
GIAI_MA_GAN_CHO_8LED_QUET();
IF (BDN<10) HIEN_THI_8LED_7DOAN_QUET();
ELSE
{
BDN=BDN-10;
GIAY++;
IF (GIAY==60) GIAY=0;
}
}
}

BAI_513_DEM_PHUT_GIAY
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
SIGNED INT8 GIAY,BDN,PHUT;

#INT_TIMER1
VOID INTERRUPT_TIMER1()
{
BDN++;
SET_TIMER1(3036);
}
VOID GIAI_MA_GAN_CHO_8LED_QUET()
{
LED_7DQ[0]=MA7DOAN [GIAY%10];
LED_7DQ[1]=MA7DOAN [GIAY/10];
LED_7DQ[3]=MA7DOAN [PHUT%10];
LED_7DQ[4]=MA7DOAN [PHUT/10];
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_TIMER_1(T1_INTERNAL | T1_DIV_BY_8);
SET_TIMER1(3036);
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_TIMER1);
GIAY=0; BDN=0; PHUT=0;
WHILE(TRUE)
{
GIAI_MA_GAN_CHO_8LED_QUET();
IF (BDN<10) HIEN_THI_8LED_7DOAN_QUET();
ELSE
{
BDN=BDN-10;
GIAY++;
IF (GIAY==60)
{
GIAY=0;
PHUT++;
IF(PHUT==60)
{
GIAY=0;
PHUT=0;
}
}
}
}
}

BAI_514_DEM_GIO_PHUT_GIAY
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
SIGNED INT8 GIO, PHUT, GIAY, BDN;
UNSIGNED CHAR GIA_TRI_MOD;

#INT_TIMER1
VOID INTERRUPT_TIMER1()
{
BDN++;SET_TIMER1(3036);
}
VOID GIAI_MA_GAN_CHO_8LED_QUET()
{
LED_7DQ[0]=MA7DOAN [GIAY%10]; //vi ̣trí thứ 0
LED_7DQ[1]=MA7DOAN [GIAY/10]; ̣ ́ thứ 1
//vi tri
LED_7DQ[3]=MA7DOAN [PHUT%10];//vi ̣trí thứ 3 bỏ vi ̣trí thứ 3 cho dễ nhìn
LED_7DQ[4]=MA7DOAN [PHUT/10]; ̣ ́ thứ 4
//vi tri
̣ ́ thứ 6
LED_7DQ[6]=MA7DOAN [GIO%10]; vi tri
LED_7DQ[7]=MA7DOAN [GIO/10]; ̣ ́ thứ 7
//vi tri

IF (GIA_TRI_MOD==1) LED_7DQ[6]=LED_7DQ[6]&0X7F;
ELSE IF (GIA_TRI_MOD==2) LED_7DQ[3]=LED_7DQ[3]&0X7F;
ELSE IF (GIA_TRI_MOD==3) LED_7DQ[0]=LED_7DQ[0]&0X7F;
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VOID PHIM_MOD()
{
IF(!INPUT(MOD))
{
GIA_TRI_MOD++;
IF(GIA_TRI_MOD>=4) GIA_TRI_MOD=0;
GIAI_MA_GAN_CHO_8LED_QUET();
DO{HIEN_THI_8LED_7DOAN_QUET();}
WHILE(!INPUT(MOD));
}
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VOID PHIM_UP()
{
IF(!INPUT(UP))
{
SWITCH (GIA_TRI_MOD)
{
CASE 1: IF (GIO==23) GIO=0;
ELSE GIO++;
BREAK;
CASE 2: IF (PHUT==59) PHUT=0;
ELSE PHUT++;
BREAK;
CASE 3: IF (GIAY==59) GIAY=0;
ELSE GIAY++;
BREAK;
DEFAULT: BREAK;
}
GIAI_MA_GAN_CHO_8LED_QUET();
DO{ HIEN_THI_8LED_7DOAN_QUET(); }
WHILE(!INPUT(UP));
}
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VOID PHIM_DW()
{
IF(!INPUT(DW))
{
SWITCH (GIA_TRI_MOD)
{
CASE 1: IF (GIO==0) GIO=23;
ELSE GIO--;
BREAK;
CASE 2: IF (PHUT==0) PHUT=59;
ELSE PHUT--;
BREAK;
CASE 3: IF (GIAY==0) GIAY=59;
ELSE GIAY--;
BREAK;
DEFAULT: BREAK;
}
GIAI_MA_GAN_CHO_8LED_QUET();
DO{ HIEN_THI_8LED_7DOAN_QUET(); }
WHILE(!INPUT(DW));
}
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_TIMER_1(T1_INTERNAL | T1_DIV_BY_8);
SET_TIMER1(3036);
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_TIMER1);;
BDN=0; GIAY=0;PHUT=0; GIO=0; GIA_TRI_MOD=0;
WHILE(TRUE)
{
GIAI_MA_GAN_CHO_8LED_QUET();
IF (BDN<10)
{
HIEN_THI_8LED_7DOAN_QUET();
PHIM_MOD(); PHIM_UP(); PHIM_DW();
}
ELSE
{
BDN=BDN-10;
GIAY++;
IF(GIAY==60)
{
GIAY=0;
PHUT++;
IF (PHUT==60)
{
PHUT=0;
GIO++;
IF (GIO==24) GIO=0;
}
}
}
}
}

CÁCH 2 ĐẾM GIỜ PHUT GIÂY


#INCLUDE <TV_PICKIT2_SHIFT_1.C>
SIGNED INT8 GIAY,BDN,PHUT,GIO;

#INT_TIMER1
VOID INTERRUPT_TIMER1()
{
BDN++;
SET_TIMER1(3036);
}
VOID GIAI_MA_GAN_CHO_8LED_QUET()
{
LED_7DQ[0]=MA7DOAN [GIAY%10];
LED_7DQ[1]=MA7DOAN [GIAY/10];
LED_7DQ[3]=MA7DOAN [PHUT%10];
LED_7DQ[4]=MA7DOAN [PHUT/10];
LED_7DQ[6]=MA7DOAN [GIO%10];
LED_7DQ[7]=MA7DOAN [GIO/10];
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_TIMER_1(T1_INTERNAL | T1_DIV_BY_8);
SET_TIMER1(3036);
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_TIMER1);
GIAY=0; BDN=0; PHUT=0; GIO=0;
WHILE(TRUE)
{
GIAI_MA_GAN_CHO_8LED_QUET();
IF (BDN<10) HIEN_THI_8LED_7DOAN_QUET();
ELSE
{
BDN=BDN-10;
GIAY++;
IF (GIAY==60)
{
GIAY=0;
PHUT++;
IF(PHUT==60)
{
GIAY=0;
PHUT=0;
GIO++;
IF(GIO==24)
GIO=0;
}
}
}
}
}

BAI_515_GIO_PHUT_GIAY_KEY

#INCLUDE <TV_PICKIT2_SHIFT_1.C>
SIGNED INT8 GIO, PHUT, GIAY, BDN;
UNSIGNED CHAR GIA_TRI_MOD;

#INT_TIMER1
VOID INTERRUPT_TIMER1()
{
BDN++;SET_TIMER1(3036);
}
VOID GIAI_MA_GAN_CHO_8LED_QUET()
{
LED_7DQ[0]=MA7DOAN [GIAY%10];
LED_7DQ[1]=MA7DOAN [GIAY/10];
LED_7DQ[3]=MA7DOAN [PHUT%10];
LED_7DQ[4]=MA7DOAN [PHUT/10];
LED_7DQ[6]=MA7DOAN [GIO%10];
LED_7DQ[7]=MA7DOAN [GIO/10];

IF (GIA_TRI_MOD==1) LED_7DQ[6]=LED_7DQ[6]&0X7F;
ELSE IF (GIA_TRI_MOD==2) LED_7DQ[3]=LED_7DQ[3]&0X7F;
ELSE IF (GIA_TRI_MOD==3) LED_7DQ[0]=LED_7DQ[0]&0X7F;
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VOID PHIM_MOD()
{
IF(!INPUT(MOD))
{
GIA_TRI_MOD++;
IF(GIA_TRI_MOD>=4) GIA_TRI_MOD=0;
GIAI_MA_GAN_CHO_8LED_QUET();
DO{HIEN_THI_8LED_7DOAN_QUET();}
WHILE(!INPUT(MOD));
}
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VOID PHIM_UP()
{
IF(!INPUT(UP))
{
SWITCH (GIA_TRI_MOD)
{
CASE 1: IF (GIO==23) GIO=0;
ELSE GIO++;
BREAK;
CASE 2: IF (PHUT==59) PHUT=0;
ELSE PHUT++;
BREAK;
CASE 3: IF (GIAY==59) GIAY=0;
ELSE GIAY++;
BREAK;
DEFAULT: BREAK;
}
GIAI_MA_GAN_CHO_8LED_QUET();
DO{ HIEN_THI_8LED_7DOAN_QUET(); }
WHILE(!INPUT(UP));
}
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VOID PHIM_DW()
{
IF(!INPUT(DW))
{
SWITCH (GIA_TRI_MOD)
{
CASE 1: IF (GIO==0) GIO=23;
ELSE GIO--;
BREAK;
CASE 2: IF (PHUT==0) PHUT=59;
ELSE PHUT--;
BREAK;
CASE 3: IF (GIAY==0) GIAY=59;
ELSE GIAY--;
BREAK;
DEFAULT: BREAK;
}
GIAI_MA_GAN_CHO_8LED_QUET();
DO{ HIEN_THI_8LED_7DOAN_QUET(); }
WHILE(!INPUT(DW));
}
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_TIMER_1(T1_INTERNAL | T1_DIV_BY_8);
SET_TIMER1(3036);
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_TIMER1);;
BDN=0; GIAY=0;PHUT=0; GIO=0; GIA_TRI_MOD=0;
WHILE(TRUE)
{
GIAI_MA_GAN_CHO_8LED_QUET();
IF (BDN<10)
{
HIEN_THI_8LED_7DOAN_QUET();
PHIM_MOD(); PHIM_UP(); PHIM_DW();
}
ELSE
{
BDN=BDN-10;
GIAY++;
IF(GIAY==60)
{
GIAY=0;
PHUT++;
IF (PHUT==60)
{
PHUT=0;
GIO++;
IF (GIO==24) GIO=0;
}
}
}
}
}
#

BAI_516_GIO_PHUT_GIAY_KEY_CAITIEN
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
SIGNED INT8 GIO, PHUT, GIAY, BDN,GIA_TRI_MOD;

#INT_TIMER1
VOID INTERRUPT_TIMER1()
{
BDN++;SET_TIMER1(3036);
}
VOID GIAI_MA_GAN_CHO_8LED_QUET()
{
LED_7DQ[0]=MA7DOAN [GIAY%10];
LED_7DQ[1]=MA7DOAN [GIAY/10];
LED_7DQ[3]=MA7DOAN [PHUT%10];
LED_7DQ[4]=MA7DOAN [PHUT/10];
LED_7DQ[6]=MA7DOAN [GIO%10];
LED_7DQ[7]=MA7DOAN [GIO/10];

IF (GIA_TRI_MOD==1) LED_7DQ[6]=LED_7DQ[6]&0X7F;
ELSE IF (GIA_TRI_MOD==2) LED_7DQ[3]=LED_7DQ[3]&0X7F;
ELSE IF (GIA_TRI_MOD==3) LED_7DQ[0]=LED_7DQ[0]&0X7F;
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VOID PHIM_MOD()
{
IF (PHIM_BT1(200))
{
GIA_TRI_MOD++;
IF(GIA_TRI_MOD>=4) GIA_TRI_MOD=0;
}
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VOID PHIM_UP()
{
IF(PHIM_BT0(200))
{
SWITCH (GIA_TRI_MOD)
{
CASE 1: IF (GIO==23) GIO=0;
ELSE GIO++;
BREAK;
CASE 2: IF (PHUT==59) PHUT=0;
ELSE PHUT++;
BREAK;
CASE 3: IF (GIAY==59) GIAY=0;
ELSE GIAY++;
BREAK;
DEFAULT: BREAK;
}

}
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VOID PHIM_DW()
{
IF(PHIM_BT2(200))
{
SWITCH (GIA_TRI_MOD)
{
CASE 1: IF (GIO==0) GIO=23;
ELSE GIO--;
BREAK;
CASE 2: IF (PHUT==0) PHUT=59;
ELSE PHUT--;
BREAK;
CASE 3: IF (GIAY==0) GIAY=59;
ELSE GIAY--;
BREAK;
DEFAULT: BREAK;
}
}
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_TIMER_1(T1_INTERNAL | T1_DIV_BY_8);
SET_TIMER1(3036);
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_TIMER1);;
BDN=0; GIAY=0;PHUT=0; GIO=0; GIA_TRI_MOD=0;
WHILE(TRUE)
{
GIAI_MA_GAN_CHO_8LED_QUET();
IF (BDN<10)
{
HIEN_THI_8LED_7DOAN_QUET();
PHIM_MOD(); PHIM_UP(); PHIM_DW();
}
ELSE
{
BDN=BDN-10;
GIAY++;
IF(GIAY==60)
{
GIAY=0;
PHUT++;
IF (PHUT==60)
{
PHUT=0;
GIO++;
IF (GIO==24) GIO=0;
}
}
}
}
}

BAI_517_GIO_PHUT_GIAY_KEY_CAITIEN
//Muon lam xoa so 0 VN cua so to thi khai bao vi tri thu 10 la khoang trang tu 1 toi 9 la cac con
so.
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
SIGNED INT8 GIO, PHUT, GIAY, BDN, GIA_TRI_MOD, DEM_TG_EXIT=0;

#INT_TIMER1
VOID INTERRUPT_TIMER1()
{
BDN++;SET_TIMER1(3036);
}
VOID GIAI_MA_GAN_CHO_8LED_QUET()
{
LED_7DQ[0]=MA7DOAN [GIAY%10];
LED_7DQ[1]=MA7DOAN [GIAY/10];
LED_7DQ[3]=MA7DOAN [PHUT%10];
LED_7DQ[4]=MA7DOAN [PHUT/10];
LED_7DQ[6]=MA7DOAN [GIO%10];
LED_7DQ[7]=MA7DOAN [GIO/10];
}
VOID TAT_2LED_CHINH()
{
IF (GIA_TRI_MOD==1) {LED_7DQ[7]=0XFF; LED_7DQ[6]=0XFF;}
ELSE IF (GIA_TRI_MOD==2) {LED_7DQ[4]=0XFF; LED_7DQ[3]=0XFF;}
ELSE IF (GIA_TRI_MOD==3) {LED_7DQ[1]=0XFF; LED_7DQ[0]=0XFF;}
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VOID PHIM_MOD()
{
IF(PHIM_BT1(200))
{
GIA_TRI_MOD++;
IF(GIA_TRI_MOD>=4) GIA_TRI_MOD=0;
DEM_TG_EXIT=0;
}
}
//XXXXXXXXXXXXXXXXXXXXXXX
VOID PHIM_UP()
{
IF(PHIM_BT0(200))
{
DEM_TG_EXIT=0;
SWITCH (GIA_TRI_MOD)
{
CASE 1: IF (GIO==23) GIO=0;
ELSE GIO++;
BREAK;
CASE 2: IF (PHUT==59) PHUT=0;
ELSE PHUT++;
BREAK;
CASE 3: IF (GIAY==59) GIAY=0;
ELSE GIAY++;
BREAK;
DEFAULT: BREAK;
}

}
}
//XXXXXXXXXXXXXXXXXXXXXXXXXX
VOID PHIM_DW()
{
IF(PHIM_BT2(200))
{
DEM_TG_EXIT=0;
SWITCH (GIA_TRI_MOD)
{
CASE 1: IF (GIO==0) GIO=23;
ELSE GIO--;
BREAK;
CASE 2: IF (PHUT==0) PHUT=59;
ELSE PHUT--;
BREAK;
CASE 3: IF (GIAY==0) GIAY=59;
ELSE GIAY--;
BREAK;
DEFAULT: BREAK;
}

}
}
//XXXXXXXXXXXXXXXXXXXXX
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_TIMER_1(T1_INTERNAL | T1_DIV_BY_8);
SET_TIMER1(3036);
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_TIMER1);
BDN=0; GIAY=0;PHUT=0; GIO=0; GIA_TRI_MOD=0;
WHILE(TRUE)
{
GIAI_MA_GAN_CHO_8LED_QUET();
IF (BDN<10)
{
IF ((BDN<5)&&(INPUT(BT0))&& (INPUT(BT2))) TAT_2LED_CHINH();
HIEN_THI_8LED_7DOAN_QUET_ALL();
PHIM_MOD(); PHIM_UP(); PHIM_DW();
}
ELSE
{
BDN=BDN-10;
DEM_TG_EXIT++;
IF(DEM_TG_EXIT==20) GIA_TRI_MOD=0;
GIAY++;
IF(GIAY==60)
{
GIAY=0;
PHUT++;
IF (PHUT==60)
{
PHUT=0;
GIO++;
IF (GIO==24) GIO=0;
}
}
}
}
}

BAI_518_
#INCLUDE <TV_PICKIT2_SHIFT_1.c>
UNSIGNED INT8 T0,SP=0;
VOID GIAI_MA_GAN_CHO_8LED_QUET()
{
LED_7DQ[0]=MA7DOAN [SP%10];
LED_7DQ[1]=MA7DOAN [SP/10];
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_TIMER_0 (T0_EXT_L_TO_H|T0_DIV_1);
SET_TIMER0(0);
T0=0;
WHILE(TRUE)
{
T0=GET_TIMER0();
IF(T0==1)
{
SET_TIMER0(0);
SP++;
IF(SP==100) SP=1;
}
GIAI_MA_GAN_CHO_8LED_QUET();
HIEN_THI_8LED_7DOAN_QUET_ALL();
}
}

BAI_519
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
SIGNED INT8 GIO, PHUT, GIAY, BDN,BDN_NN, GIA_TRI_MOD,DEM_TG_EXIT=0;

#INT_TIMER1
VOID INTERRUPT_TIMER1()
{
BDN++;
BDN_NN++;
SET_TIMER1(3036);
}
VOID GIAI_MA_GAN_CHO_8LED_QUET()
{
LED_7DQ[0]=MA7DOAN [GIAY%10];
LED_7DQ[1]=MA7DOAN [GIAY/10];
LED_7DQ[3]=MA7DOAN [PHUT%10];
LED_7DQ[4]=MA7DOAN [PHUT/10];
LED_7DQ[6]=MA7DOAN [GIO%10];
LED_7DQ[7]=MA7DOAN [GIO/10];
}
VOID TAT_2LED_CHINH()
{
IF (GIA_TRI_MOD==1) {LED_7DQ[7]=0XFF; LED_7DQ[6]=0XFF;}
ELSE IF (GIA_TRI_MOD==2) {LED_7DQ[4]=0XFF; LED_7DQ[3]=0XFF;}
ELSE IF (GIA_TRI_MOD==3) {LED_7DQ[1]=0XFF; LED_7DQ[0]=0XFF;}
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VOID PHIM_MOD()
{
IF(PHIM_BT1(200))
{
GIA_TRI_MOD++;
IF(GIA_TRI_MOD>=4) GIA_TRI_MOD=0;
DEM_TG_EXIT=0;
}
}
//XXXXXXXXXXXXXXXXXXXXXXX
VOID PHIM_UP()
{
IF(PHIM_BT0(200))
{
DEM_TG_EXIT=0;
SWITCH (GIA_TRI_MOD)
{
CASE 1: IF (GIO==23) GIO=0;
ELSE GIO++;
BREAK;
CASE 2: IF (PHUT==59) PHUT=0;
ELSE PHUT++;
BREAK;
CASE 3: IF (GIAY==59) GIAY=0;
ELSE GIAY++;
BREAK;
DEFAULT: BREAK;
}

}
}
//XXXXXXXXXXXXXXXXXXXXXXXXXX
VOID PHIM_DW()
{
IF(PHIM_BT2(200))
{
DEM_TG_EXIT=0;
SWITCH (GIA_TRI_MOD)
{
CASE 1: IF (GIO==0) GIO=23;
ELSE GIO--;
BREAK;
CASE 2: IF (PHUT==0) PHUT=59;
ELSE PHUT--;
BREAK;
CASE 3: IF (GIAY==0) GIAY=59;
ELSE GIAY--;
BREAK;
DEFAULT: BREAK;
}

}
}
//XXXXXXXXXXXXXXXXXXXXX
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_TIMER_1(T1_INTERNAL | T1_DIV_BY_8);
SET_TIMER1(3036);
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_TIMER1);;
BDN=0; GIAY=0;PHUT=0; GIO=0; GIA_TRI_MOD=0;
WHILE(TRUE)
{
IF(BDN_NN<30)
{

IF ((BDN_NN<20)&&(INPUT(BT0))&& (INPUT(BT2))) TAT_2LED_CHINH();


ELSE GIAI_MA_GAN_CHO_8LED_QUET();
}
ELSE
{
IF(BDN_NN>=31)
BDN_NN=0;
}
IF (BDN<10)
{

HIEN_THI_8LED_7DOAN_QUET_ALL();
PHIM_MOD(); PHIM_UP(); PHIM_DW();
}
ELSE
{
BDN=BDN-10;
DEM_TG_EXIT++;
IF(DEM_TG_EXIT==20) GIA_TRI_MOD=0;
GIAY++;
IF(GIAY==60)
{
GIAY=0;
PHUT++;
IF (PHUT==60)
{
PHUT=0;
GIO++;
IF (GIO==24) GIO=0;
}
}
GIAI_MA_GAN_CHO_8LED_QUET();
}
}
}

BAI_601_LCD_HIENTHI_4HANG

BAI_602_LCD_HIENTHI_4HANG (CO VI DU)

BAI_603_LCD_HIENTHI_4KYTU_4GOC
BAI_604
B

BAI_611_LCD_DEM_GIAY
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
#INCLUDE <TV_PICKIT2_SHIFT_LCD.C>
SIGNED INT GIAY;

VOID LCD_HIENTHI_DONGHO()
{
LCD_GOTO_XY(0,18);
DELAY_US(20);
LCD_DATA(GIAY/10+0X30);
LCD_DATA(GIAY%10+0X30);
}

VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_LCD();
LCD_GOTO_XY(0,0);
LCD_DATA("DONG HO:");
GIAY=0;
WHILE(TRUE)
{
LCD_HIENTHI_DONGHO();
DELAY_MS(100);
GIAY++;
IF(GIAY==60)
{
GIAY=0;

}
}
}

BAI_612_LCD_DEM_PHUT_GIAY

BAI_613_LCD_DEM_GIO_PHUT_GIAY
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
#INCLUDE <TV_PICKIT2_SHIFT_LCD.C>
SIGNED INT GIO,PHUT,GIAY;

VOID LCD_HIENTHI_DONGHO()
{
LCD_GOTO_XY(0,12);
DELAY_US(20);
LCD_DATA(GIO/10+0X30);
LCD_DATA(GIO%10+0X30);
LCD_DATA(' ');
LCD_DATA(PHUT/10+0X30);
LCD_DATA(PHUT%10+0X30);
LCD_DATA(' ');
LCD_DATA(GIAY/10+0X30);
LCD_DATA(GIAY%10+0X30);
}

VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_LCD();
LCD_GOTO_XY(0,0);
LCD_DATA("DONG HO:");
GIAY=0;
PHUT=0;
GIO=0;
WHILE(TRUE)
{
LCD_HIENTHI_DONGHO();
DELAY_MS(100);
GIAY++;
IF(GIAY==60)
{
GIAY=0;
PHUT++;
IF(PHUT==60)
{
PHUT=0;
GIO++;
IF(GIO==60)
{
GIO=0;
}
}
}
}
}

BAI_614_LCD_GIO_PHUT_GIAY
Có sử du ̣ng timer báo ngắ t để đế m thời gian, 3 nút nhấ n chỉnh thời
gian
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
#INCLUDE <TV_PICKIT2_SHIFT_LCD.C>
SIGNED INT8 GIO,PHUT,GIAY,BDN;
#INT_TIMER1
VOID INTERRUPT_TIMER1()
{
BDN++;SET_TIMER1(3036);
}
VOID LCD_HIENTHI_DONGHO()
{
LCD_GOTO_XY(0,12);
DELAY_US(20);
LCD_DATA(GIO/10+0X30);
LCD_DATA(GIO%10+0X30);
LCD_DATA(' ');
LCD_DATA(PHUT/10+0X30);
LCD_DATA(PHUT%10+0X30);
LCD_DATA(' ');
LCD_DATA(GIAY/10+0X30);
LCD_DATA(GIAY%10+0X30);
}

VOID MAIN()
{
SET_UP_PORT_IC_CHOT();

SETUP_TIMER_1(T1_INTERNAL | T1_DIV_BY_8);
SET_TIMER1(3036);
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_TIMER1);

SETUP_LCD();
LCD_GOTO_XY(0,0);
LCD_DATA("DONG HO:");
GIAY=0; BDN=0; PHUT=0; GIO=0;
WHILE(TRUE)
{
LCD_HIENTHI_DONGHO();
IF (BDN<10) HIEN_THI_8LED_7DOAN_QUET();
ELSE
{
BDN=BDN-10;
GIAY++;
IF (GIAY==60)
{
GIAY=0;
PHUT++;
IF(PHUT==60)
{
GIAY=0;
PHUT=0;
GIO++;
IF(GIO==60)
{
GIAY=0;
PHUT=0;
GIO=0;
}
}
}
}
}
}

BAI_615_LCD_8LED_GIO_PHUT_GIAY
Hiể n thi ̣trên module 8 led quét

#INCLUDE <TV_PICKIT2_SHIFT_1.C>
#INCLUDE <TV_PICKIT2_SHIFT_LCD.C>
SIGNED INT8 GIO,PHUT,GIAY,BDN,GIA_TRI_MOD=0,DEM_TG_EXIT=0,
GIO1,PHUT1,GIAY1,
GIO2,PHUT2,GIAY2;
#INT_TIMER1
VOID INTERRUPT_TIMER1()
{
BDN++;SET_TIMER1(3036);
}
VOID HIENTHI_LCD()
{
LCD_GOTO_XY(0,12);
DELAY_US(20);
LCD_DATA(GIO1);
LCD_DATA(GIO2);
LCD_DATA(':');
LCD_DATA(PHUT1);
LCD_DATA(PHUT2);
LCD_DATA(':');
LCD_DATA(GIAY1);
LCD_DATA(GIAY2);
}
VOID GIAI_MA_GAN_CHO_8LED_QUET()
{
LED_7DQ[0]=MA7DOAN [GIAY%10];
LED_7DQ[1]=MA7DOAN [GIAY/10];
LED_7DQ[3]=MA7DOAN [PHUT%10];
LED_7DQ[4]=MA7DOAN [PHUT/10];
LED_7DQ[6]=MA7DOAN [GIO%10];
LED_7DQ[7]=MA7DOAN [GIO/10];

}
VOID GIAI_MA_LCD()
{
GIO1=GIO/10+0X30;
GIO2=GIO%10+0X30;

PHUT1=PHUT/10+0X30;
PHUT2=PHUT%10+0X30;

GIAY1=GIAY/10+0X30;
GIAY2=GIAY%10+0X30;

}
VOID TAT_2LED_QUET()
{
IF (GIA_TRI_MOD==1)
{
LED_7DQ[7]=0XFF; LED_7DQ[6]=0XFF;
}
IF (GIA_TRI_MOD==2)
{
LED_7DQ[4]=0XFF; LED_7DQ[3]=0XFF;
}
IF (GIA_TRI_MOD==3)
{
LED_7DQ[1]=0XFF; LED_7DQ[0]=0XFF;
}
}
VOID TAT_LCD()
{
IF (GIA_TRI_MOD==1)
{
GIO1=' ';
GIO2=' ';
}
IF (GIA_TRI_MOD==2)
{
PHUT1=' ';
PHUT2=' ';
}
IF (GIA_TRI_MOD==3)
{
GIAY1=' ';
GIAY2=' ';
}
}
VOID PHIM_MOD()
{

IF(PHIM_BT1(200))
{
DEM_TG_EXIT=0;
GIA_TRI_MOD++;
IF(GIA_TRI_MOD>=4) GIA_TRI_MOD=0;
}
}
//XXXXXXXXXXXXXXXXXXXXXXX
VOID PHIM_UP()
{
IF(PHIM_BT0(200))
{
DEM_TG_EXIT=0;
SWITCH (GIA_TRI_MOD)
{
CASE 1: IF (GIO==23) GIO=0;
ELSE GIO++;
BREAK;
CASE 2: IF (PHUT==59) PHUT=0;
ELSE PHUT++;
BREAK;
CASE 3: IF (GIAY==59) GIAY=0;
ELSE GIAY++;
BREAK;
DEFAULT: BREAK;
}

}
}
//XXXXXXXXXXXXXXXXXXXXXXXXXX
VOID PHIM_DW()
{
IF(PHIM_BT2(200))
{
DEM_TG_EXIT=0;
SWITCH (GIA_TRI_MOD)
{
CASE 1: IF (GIO==0) GIO=23;
ELSE GIO--;
BREAK;
CASE 2: IF (PHUT==0) PHUT=59;
ELSE PHUT--;
BREAK;
CASE 3: IF (GIAY==0) GIAY=59;
ELSE GIAY--;
BREAK;
DEFAULT: BREAK;
}

}
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SET_TRIS_B(0X3C);

SETUP_TIMER_1(T1_INTERNAL | T1_DIV_BY_8);
SET_TIMER1(3036);
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_TIMER1);

SETUP_LCD();
LCD_GOTO_XY(0,0);
LCD_DATA("DONG HO:");
GIAY=0; BDN=0; PHUT=0; GIO=0;
WHILE(TRUE)
{

XUAT_4LED_7DOAN_4SO(0XFF,0XFF,MA7DOAN[DEM_TG_EXIT/10],MA7DOAN[DE
M_TG_EXIT%10]);
GIAI_MA_GAN_CHO_8LED_QUET();
GIAI_MA_LCD();
PHIM_MOD(); PHIM_UP(); PHIM_DW();

IF (BDN<10)
{
IF ((BDN<5)&&(INPUT(BT0))&& (INPUT(BT2)))
{
TAT_2LED_QUET();
TAT_LCD();
}
}
ELSE
{
BDN=BDN-10;
DEM_TG_EXIT++;
IF(DEM_TG_EXIT==10) GIA_TRI_MOD=0;
GIAY++;
IF (GIAY==60)
{
GIAY=0;
PHUT++;
IF(PHUT==60)
{
GIAY=0;
PHUT=0;
GIO++;
IF(GIO==60)
{
GIAY=0;
PHUT=0;
GIO=0;
}
}
}
}
HIENTHI_LCD();
HIEN_THI_8LED_7DOAN_QUET();
}
}

BAI_616_LCD_4LED_DEM_SP_T0

#INCLUDE <TV_PICKIT2_SHIFT_1.C>
#INCLUDE <TV_PICKIT2_SHIFT_LCD.C>
UNSIGNED INT16 T0,T0_TAM;

VOID HIENTHI_LCD()
{
LCD_GOTO_XY(0,17);
DELAY_US(20);
LCD_DATA(T0/100+0X30);
LCD_DATA(T0/10%10+0X30);
LCD_DATA(T0%10 +0X30);
}

VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_LCD();
LCD_GOTO_XY(0,0);
LCD_DATA("DEM SAN PHAM:");

SETUP_TIMER_0(T0_EXT_L_TO_H | T0_DIV_1);
SET_TIMER0(0);
T0=T0_TAM=0;

WHILE(TRUE)
{
T0=GET_TIMER0();
HIENTHI_LCD();

XUAT_4LED_7DOAN_4SO(0XFF,MA7DOAN[T0/100],MA7DOAN[T0/10],MA7DOAN[T0
%10]);
IF(T0!=T0_TAM)
{
T0_TAM=T0;

XUAT_4LED_7DOAN_4SO(0XFF,MA7DOAN[T0/100],MA7DOAN[T0/10],MA7DOAN[T0
%10]);
HIENTHI_LCD();
IF(T0>=101) SET_TIMER0(1);
}
}
}
BAI_617_LCD_4LED_DEM_SP_TO_UD

#INCLUDE <TV_PICKIT2_SHIFT_1.C>
#INCLUDE <TV_PICKIT2_SHIFT_LCD.C>
UNSIGNED INT16 T0,SP,GTCD;

VOID HIENTHI_LCD()
{
LCD_GOTO_XY(0,18);
DELAY_US(20);
LCD_DATA(GTCD/10+0X30);
LCD_DATA(GTCD%10 +0X30);

LCD_GOTO_XY(1,18);
DELAY_US(20);
LCD_DATA(SP/10 + 0X30);
LCD_DATA(SP%10 + 0X30);

}
VOID PHIM_UP()
{
IF(PHIM_BT0(200))
{
GTCD++;
IF(GTCD==100) GTCD=99;
}
}
VOID PHIM_DW()
{
IF(PHIM_BT1(200))
{
GTCD--;
IF(GTCD==0) GTCD=0;
}
}
VOID PHIM_CLR()
{
IF(PHIM_BT2(200))
{
GTCD=1;
SP=0;
}
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_LCD();
LCD_GOTO_XY(1,0);
LCD_DATA("DEM SAN PHAM:");
LCD_GOTO_XY(0,0);
LCD_DATA("GIA TRI CAI:");

SETUP_TIMER_0(T0_EXT_L_TO_H | T0_DIV_1);
SET_TIMER0(0);
T0=0;
SP=0;
GTCD=1;
WHILE(TRUE)
{
PHIM_UP();
PHIM_DW();
PHIM_CLR();
T0=GET_TIMER0();
HIENTHI_LCD();

XUAT_4LED_7DOAN_4SO(MA7DOAN[GTCD/10],MA7DOAN[GTCD%10],MA7DOAN[
SP/10],MA7DOAN[SP%10]);
IF(T0==1)
{
SP++;

XUAT_4LED_7DOAN_4SO(MA7DOAN[GTCD/10],MA7DOAN[GTCD%10],MA7DOAN[
SP/10],MA7DOAN[SP%10]);
IF(SP>GTCD) SP=1;
HIENTHI_LCD();
SET_TIMER0(0);
}
}
}

BAI_621_LCD_KEX4X4

#INCLUDE <TV_PICKIT2_SHIFT_1.c>
#INCLUDE <TV_PICKIT2_SHIFT_LCD.c>
#INCLUDE <TV_PICKIT2_SHIFT_KEY4X4_138.c>
SIGNED INT8 MP;
VOID HIENTHI_LCD()
{
LCD_GOTO_XY(0,19); DELAY_US(20);
IF(MP<10) LCD_DATA(MP+0X30);
ELSE LCD_DATA(MP+0X37);
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SET_TRIS_B(0X3C);
SETUP_LCD();
LCD_GOTO_XY(0,0);
LCD_DATA("HAY NHAN PHIM");
WHILE(TRUE)
{
MP=KEY_4X4_UP();
IF(MP!=0XFF)
{
HIENTHI_LCD();
}
}
}

BAI_622_LCD_KEX4X4_DICH

BAI_623_LCD_KEX4X4_DICH_4HANG_1234

#INCLUDE <TV_PICKIT2_SHIFT_1.c>
#INCLUDE <TV_PICKIT2_SHIFT_LCD.c>
#INCLUDE <TV_PICKIT2_SHIFT_KEY4X4_138.c>
SIGNED INT8 MP,I;
UNSIGNED CHAR SO[81]={" "};
VOID DICH_LCD()
{
IF(MP<10) SO[80]= MP+ 0X30;
ELSE SO[80]=MP +0X37;
FOR(I=0; I<80; I++)
{
SO[I]=SO[I+1];
}
}
VOID HIENTHI_LCD()
{
LCD_GOTO_XY(0,0);
DELAY_US(20);
FOR(I=60;I<80;I++)
{
LCD_DATA(SO[I]);
}
///////////////////////
LCD_GOTO_XY(1,0);
DELAY_US(20);
FOR(I=40;I<60;I++)
{
LCD_DATA(SO[I]);
}
///////////////////////
LCD_GOTO_XY(2,0);
DELAY_US(20);
FOR(I=20;I<40;I++)
{
LCD_DATA(SO[I]);
}
///////////////////////
LCD_GOTO_XY(3,0);
DELAY_US(20);
FOR(I=0;I<20;I++)
{
LCD_DATA(SO[I]);
}
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SET_TRIS_B(0X3C);
SETUP_LCD();

WHILE(TRUE)
{
MP=KEY_4X4_DW();
IF(MP!=0XFF)
{
DICH_LCD();
HIENTHI_LCD();
}
}
}

BAI_624_LCD_KEX4X4_DICH
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
#INCLUDE <TV_PICKIT2_SHIFT_LCD.C>
#INCLUDE <TV_PICKIT2_SHIFT_KEY4X4_138.c>
UNSIGNED INT16 T0,SP,GTCD,MP,TG;

VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SET_TRIS_B(0X3C);
SETUP_LCD();
LCD_GOTO_XY(0,0);
LCD_DATA("DIEU KHIEN BUZZER");
LCD_GOTO_XY(1,0);
LCD_DATA("BUZZER:");
//XUONG WHILE VIET ON OFF SAU
LCD_GOTO_XY(1,12);
LCD_DATA("TG:");
TG=1;
LCD_GOTO_XY(1,16);
LCD_DATA(TG+0X30);
WHILE(TRUE)
{
MP=KEY_4X4_UP();
XUAT_4LED_7DOAN_4SO(0XFF, 0XFF,0XFF, MA7DOAN[TG]);
IF(MP!=0XFF)
{
IF(MP<10)
{
TG=MP;
LCD_GOTO_XY(1,16);
LCD_DATA(TG+0X30);
}
IF(MP==10)
{
IF(TG==0)
{

}
ELSE
{
BUZZER_ON();
LCD_GOTO_XY(1,8);
LCD_DATA("ON ");
DELAY_MS(TG*1000);
BUZZER_OFF();
LCD_GOTO_XY(1,8);
LCD_DATA("OFF");
}
}
}
}
}

BAI_631_LCD_TRAI_TIM

#INCLUDE <TV_PICKIT2_SHIFT_1.c>
#INCLUDE <TV_PICKIT2_SHIFT_LCD.c>
CONST UNSIGNED CHAR HANG2[]={0X0A,0X15,0X11,0X11,0X0A,0X04,0,0};
SIGNED INT8 I;

VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_LCD();
LCD_GOTO_XY(0,0);
LCD_DATA("HIEN THI TRAI TIM");
LCD_COMMAND(0X40);
FOR(I=0;I<8;I++) { LCD_DATA(HANG2[I]);}
LCD_GOTO_XY(1,0); DELAY_US(20);
LCD_DATA(0);
WHILE(TRUE)
{
}
}

BYTE 4 3 2 1 0 HEX
0 X X 0X0A
1 X X X 0X15
2 X X 0X11
3 X X 0X11
4 X X 0X0A
5 X 0X04
6 0X00
7 0X00
BAI_632_LCD_20_TRAITIM

#INCLUDE <TV_PICKIT2_SHIFT_1.c>
#INCLUDE <TV_PICKIT2_SHIFT_LCD.c>
CONST UNSIGNED CHAR HANG2[]={0X0A,0X15,0X11,0X11,0X0A,0X04,0,0};
SIGNED INT8 I;

VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_LCD();
LCD_GOTO_XY(0,0);
LCD_DATA("HIEN THI TRAI TIM");
LCD_COMMAND(0X40);
FOR(I=0;I<8;I++) { LCD_DATA(HANG2[I]);}
LCD_GOTO_XY(1,0); DELAY_US(20);
FOR(I=0;I<20;I++)
{
LCD_DATA(0);
}
WHILE(TRUE)
{
}

BAI_633_LCD_3KYTU

#INCLUDE <TV_PICKIT2_SHIFT_1.c>
#INCLUDE <TV_PICKIT2_SHIFT_LCD.c>
CONST UNSIGNED CHAR HANG1[]={0X0A,0X15,0X11,0X11,0X0A,0X04,0,0}; ////
HÌNH TRAI TIM
CONST UNSIGNED CHAR HANG2[]={0X04,0X0A,0X11,0X0A,0X04,0X00,0,0}; //////
HÌNH THOI
CONST UNSIGNED CHAR HANG3[]={0X1F,0X11,0X11,0X11,0X1F,0X00,0,0}; //////
HÌNH VUÔNG
SIGNED INT8 I;

VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_LCD();
LCD_GOTO_XY(0,0);
LCD_DATA("HIEN THI TRAI TIM");
///////////////////
LCD_COMMAND(0X40);
FOR(I=0;I<8;I++) { LCD_DATA(HANG1[I]);}
///////////////////
LCD_COMMAND(0X48);
FOR(I=0;I<8;I++) { LCD_DATA(HANG2[I]);}
///////////////////
// 50 LA TAI VI TU 48 XUAT 8 KI TU LA THEM 7 DON VI NUA, MA TINH THEO HE
SO HEX nen 8 + 7 nua la 15 (F) nen so tiep theo se la 50
LCD_COMMAND(0X50);
FOR(I=0;I<8;I++) { LCD_DATA(HANG3[I]);}
///////////////////
LCD_GOTO_XY(1,0); DELAY_US(20);
LCD_DATA(0);
///////////////////
LCD_GOTO_XY(1,2); DELAY_US(20);
LCD_DATA(1);
//! ///////////////////
LCD_GOTO_XY(1,4); DELAY_US(20);
LCD_DATA(2);
WHILE(TRUE)
{
}
}

BAI_634_LCD_8KYTU
#INCLUDE <TV_PICKIT2_SHIFT_1.c>
#INCLUDE <TV_PICKIT2_SHIFT_LCD.c>
CONST UNSIGNED CHAR HANG1[]={0X0A,0X15,0X11,0X11,0X0A,0X04,0,0};
CONST UNSIGNED CHAR HANG2[]={0X04,0X0A,0X11,0X0A,0X04,0X00,0,0};
CONST UNSIGNED CHAR HANG3[]={0X1F,0X11,0X11,0X11,0X1F,0X00,0,0};
CONST UNSIGNED CHAR HANG4[]={0X04,0X0A,0X11,0X0A,0X04,0X00,0,0};
CONST UNSIGNED CHAR HANG5[]={0X0A,0X15,0X11,0X11,0X0A,0X04,0,0};
CONST UNSIGNED CHAR HANG6[]={0X04,0X0A,0X11,0X0A,0X04,0X00,0,0};
CONST UNSIGNED CHAR HANG7[]={0X1F,0X11,0X11,0X11,0X1F,0X00,0,0};
CONST UNSIGNED CHAR HANG8[]={0X04,0X0A,0X11,0X0A,0X04,0X00,0,0};

SIGNED INT8 I;

VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_LCD();
LCD_GOTO_XY(0,0);
LCD_DATA("HIEN THI TRAI TIM");
///////////////////
LCD_COMMAND(0X40);
FOR(I=0;I<8;I++) { LCD_DATA(HANG1[I]);}
///////////////////
LCD_COMMAND(0X48);
FOR(I=0;I<8;I++) { LCD_DATA(HANG2[I]);}
///////////////////
// 50 LA TAI VI TU 48 XUAT 8 KI TU LA THEM 7 DON VI NUA, MA TINH THEO HE
SO HEX nen 8 + 7 nua la 15 (F) nen so tiep theo se la 50
LCD_COMMAND(0X50);
FOR(I=0;I<8;I++) { LCD_DATA(HANG3[I]);}
///////////////////
LCD_COMMAND(0X58);
FOR(I=0;I<8;I++) { LCD_DATA(HANG4[I]);}
/////////

LCD_COMMAND(0X60);
FOR(I=0;I<8;I++) { LCD_DATA(HANG5[I]);}
///////////////////
LCD_COMMAND(0X68);
FOR(I=0;I<8;I++) { LCD_DATA(HANG6[I]);}
///////////////////
// 50 LA TAI VI TU 48 XUAT 8 KI TU LA THEM 7 DON VI NUA, MA TINH THEO HE
SO HEX nen 8 + 7 nua la 15 (F) nen so tiep theo se la 50
LCD_COMMAND(0X70);
FOR(I=0;I<8;I++) { LCD_DATA(HANG7[I]);}
///////////////////
LCD_COMMAND(0X78);
FOR(I=0;I<8;I++) { LCD_DATA(HANG8[I]);}

LCD_GOTO_XY(1,0); DELAY_US(20);
LCD_DATA(0);
///////////////////
LCD_GOTO_XY(1,2); DELAY_US(20);
LCD_DATA(1);
//! ///////////////////
LCD_GOTO_XY(1,4); DELAY_US(20);
LCD_DATA(2);
///////////////////
LCD_GOTO_XY(1,6); DELAY_US(20);
LCD_DATA(3)
LCD_GOTO_XY(1,8); DELAY_US(20);
LCD_DATA(4);
///////////////////
LCD_GOTO_XY(1,10); DELAY_US(20);
LCD_DATA(5);
//! ///////////////////
LCD_GOTO_XY(1,12); DELAY_US(20);
LCD_DATA(6);
///////////////////
LCD_GOTO_XY(1,14); DELAY_US(20);
LCD_DATA(7);
WHILE(TRUE)
{
}

BAI_635_LCD_APPLE

#INCLUDE <TV_PICKIT2_SHIFT_1.c>
#INCLUDE <TV_PICKIT2_SHIFT_LCD.c>
CONST UNSIGNED CHAR
HALF_TRAI1[9]={0X00,0X00,0X00,0X07,0X0F,0X1F,0X1F,0X1F};
CONST UNSIGNED CHAR
HALF_TRAI2[9]={0X1F,0X1F,0X1F,0X0F,0X07,0X00,0X00,0X00};
CONST UNSIGNED CHAR
HALF_PHAI1[9]={0X08,0X10,0X00,0X1C,0X1E,0X1C,0X18,0X18};
CONST UNSIGNED CHAR
HALF_PHAI2[9]={0X18,0X1C,0X1E,0X1C,0X18,0X00,0X00,0X00};
SIGNED INT8 I;

VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_LCD();
LCD_GOTO_XY(0,0);
LCD_DATA("HIEN THI TRAI TAO");
///////////////////
LCD_COMMAND(0X40);
FOR(I=0;I<8;I++) { LCD_DATA(HALF_TRAI1[I]);}
///////////////////
LCD_COMMAND(0X48);
FOR(I=0;I<8;I++) { LCD_DATA(HALF_TRAI2[I]);}
///////////////////
LCD_COMMAND(0X50);
FOR(I=0;I<8;I++) { LCD_DATA(HALF_PHAI1[I]);}
///////////////////
LCD_COMMAND(0X58);
FOR(I=0;I<8;I++) { LCD_DATA(HALF_PHAI2[I]);}
///////////////////
LCD_GOTO_XY(1,0); DELAY_US(20);
LCD_DATA(0);
///////////////////
LCD_GOTO_XY(2,0); DELAY_US(20);
LCD_DATA(1);
///////////////////
LCD_GOTO_XY(1,1); DELAY_US(20);
LCD_DATA(2);
///////////////////
LCD_GOTO_XY(2,1); DELAY_US(20);
LCD_DATA(3);
WHILE(TRUE)
{
}

BAI_636_LCD_APPLE_DICHCHUYEN

#INCLUDE <TV_PICKIT2_SHIFT_1.c>
#INCLUDE <TV_PICKIT2_SHIFT_LCD.c>
CONST UNSIGNED CHAR
HALF_TRAI1[9]={0X00,0X00,0X00,0X07,0X0F,0X1F,0X1F,0X1F};
CONST UNSIGNED CHAR
HALF_TRAI2[9]={0X1F,0X1F,0X1F,0X0F,0X07,0X00,0X00,0X00};
CONST UNSIGNED CHAR
HALF_PHAI1[9]={0X08,0X10,0X00,0X1C,0X1E,0X1C,0X18,0X18};
CONST UNSIGNED CHAR
HALF_PHAI2[9]={0X18,0X1C,0X1E,0X1C,0X18,0X00,0X00,0X00};
SIGNED INT8 I;

VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_LCD();
LCD_GOTO_XY(0,0);
LCD_DATA("HIEN THI TRAI TAO");
///////////////////
LCD_COMMAND(0X40);
FOR(I=0;I<8;I++) { LCD_DATA(HALF_TRAI1[I]);}
///////////////////
LCD_COMMAND(0X48);
FOR(I=0;I<8;I++) { LCD_DATA(HALF_TRAI2[I]);}
///////////////////
LCD_COMMAND(0X50);
FOR(I=0;I<8;I++) { LCD_DATA(HALF_PHAI1[I]);}
///////////////////
LCD_COMMAND(0X58);
FOR(I=0;I<8;I++) { LCD_DATA(HALF_PHAI2[I]);}
///////////////////
LCD_GOTO_XY(1,0); DELAY_US(20);
LCD_DATA(0);
///////////////////
LCD_GOTO_XY(2,0); DELAY_US(20);
LCD_DATA(1);
///////////////////
LCD_GOTO_XY(1,1); DELAY_US(20);
LCD_DATA(2);
///////////////////
LCD_GOTO_XY(2,1); DELAY_US(20);
LCD_DATA(3);
WHILE(TRUE)
{
}

BAI_641_LCD_HIEN_THI_SO_0

#include <TV_PICKIT2_SHIFT_1.c>
#INCLUDE <TV_PICKIT2_SHIFT_LCD.c>
SIGNED INT8 I;
VOID LCD_HIENTHI_SO_Z_TOADO_XY (SIGNED INT8 LCD_SO, SIGNED INT8 X1,
SIGNED INT8 Y1)
{
LCD_GOTO_XY(X1,Y1);
FOR (I=0;I<6;I++)
{
IF (I==3) LCD_GOTO_XY(X1+1,Y1);
LCD_DATA(LCD_SO_X[LCD_SO][I]);
}
}
VOID MAIN ()
{
SET_UP_PORT_IC_CHOT();
SETUP_LCD();

LCD_GOTO_XY(0,0);
LCD_DATA("HIEN THI SO 0 HANG 3");
LCD_COMMAND(0x40);
DELAY_US(20);
FOR (I=0;I<64;I++)
{ LCD_DATA(LCD_MA_8DOAN[I]); }

LCD_HIENTHI_SO_Z_TOADO_XY(0,2,0);
DELAY_MS(500);

3
LCD_HIENTHI_SO_Z_TOADO_XY( ,2,0); // THAY DOI GIA TRI MUON HIEN THI
WHILE (TRUE);

BAI_642_LCD_HIEN_THI_SO_0123
#include <TV_PICKIT2_SHIFT_1.c>
#INCLUDE <TV_PICKIT2_SHIFT_LCD.c>
SIGNED INT8 I;
VOID LCD_HIENTHI_SO_Z_TOADO_XY (SIGNED INT8 LCD_SO, SIGNED
INT8 X1, SIGNED INT8 Y1)
{
LCD_GOTO_XY(X1,Y1);
FOR (I=0;I<6;I++)
{
IF (I==3) LCD_GOTO_XY(X1+1,Y1);
LCD_DATA(LCD_SO_X[LCD_SO][I]);
}
}
VOID MAIN ()
{
SET_UP_PORT_IC_CHOT();

SETUP_LCD();

LCD_GOTO_XY(0,0);
LCD_DATA("HIEN THI SO 0 HANG 3");
LCD_COMMAND(0x40);
DELAY_US(20);
FOR (I=0;I<64;I++)
{ LCD_DATA(LCD_MA_8DOAN[I]); }

LCD_HIENTHI_SO_Z_TOADO_XY(0,2,0);
LCD_HIENTHI_SO_Z_TOADO_XY(1,2,4);
LCD_HIENTHI_SO_Z_TOADO_XY(2,2,8);
LCD_HIENTHI_SO_Z_TOADO_XY(3,2,12);
WHILE (TRUE);
}

BAI_642_MO RONG CO LED DON PST_ TSP


#include <TV_PICKIT2_SHIFT_1.c>
#INCLUDE <TV_PICKIT2_SHIFT_LCD.c>
SIGNED INT8 I;
unsigned int8 J;
unsigned int32 y;

VOID LCD_HIENTHI_SO_Z_TOADO_XY (SIGNED INT8 LCD_SO, SIGNED INT8 X1,


SIGNED INT8 Y1)
{
LCD_GOTO_XY(X1,Y1);
FOR (I=0;I<6;I++)
{
IF (I==3) LCD_GOTO_XY(X1+1,Y1);
LCD_DATA(LCD_SO_X[LCD_SO][I]);
}
}
VOID MAIN ()
{
SET_UP_PORT_IC_CHOT();
y=0;
SETUP_LCD();

LCD_GOTO_XY(0,0);
LCD_DATA("HIEN THI SO 0 HANG 3");
LCD_COMMAND(0x40);
DELAY_US(20);
FOR (I=0;I<64;I++)
{ LCD_DATA(LCD_MA_8DOAN[I]); }

LCD_HIENTHI_SO_Z_TOADO_XY(0,2,0);
LCD_HIENTHI_SO_Z_TOADO_XY(1,2,4);
LCD_HIENTHI_SO_Z_TOADO_XY(2,2,8);
LCD_HIENTHI_SO_Z_TOADO_XY(3,2,12);
WHILE (TRUE)
{
for(J=0;J<32;J++)
{
xuat_32led_don_1DW(y);
delay_ms(100);
y=(y<<1)+1;
}
for(J=0;J<32;J++)
{
xuat_32led_don_1DW(y);
delay_ms(100);
y=(y<<1);
}
}
}

BAI_643_LCD__DEM_00_99
#include <TV_PICKIT2_SHIFT_1.c>
#INCLUDE <TV_PICKIT2_SHIFT_LCD.c>
SIGNED INT8 I,DEM;

VOID LCD_HIENTHI_SO_Z_TOADO_XY (SIGNED INT8 LCD_SO, SIGNED


INT8 X1, SIGNED INT8 Y1)
{
LCD_GOTO_XY(X1,Y1);
FOR (I=0;I<6;I++)
{
IF (I==3) LCD_GOTO_XY(X1+1,Y1);
LCD_DATA(LCD_SO_X[LCD_SO][I]);
}
}

VOID MAIN ()
{
SET_UP_PORT_IC_CHOT();
SETUP_LCD();

LCD_GOTO_XY(0,0);
LCD_DATA("**DEM TU 00 DEN 99**");
LCD_COMMAND(0x40);
DELAY_US(20);
FOR (I=0;I<64;I++)
{ LCD_DATA(LCD_MA_8DOAN[I]); }

LCD_HIENTHI_SO_Z_TOADO_XY(0,2,0);
WHILE (TRUE)
{
FOR (DEM=0;DEM<100;DEM++)
{
LCD_HIENTHI_SO_Z_TOADO_XY(DEM/10,2,0);
LCD_HIENTHI_SO_Z_TOADO_XY(DEM%10,2,3);
DELAY_MS(100);
}
}
}

BAI_644_LCD_DEM_SP_KTL (BAI-THI)
//Luu y muon xoa so 0 VN cua so to thi khai bao vi tri thu 10, con tu 1 toi 9 la cac
con so
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
#INCLUDE <TV_PICKIT2_SHIFT_LCD.C>
#INCLUDE <TV_PICKIT2_SHIFT_GLCD128X64.C>
UNSIGNED INT16 T0,SP;
UNSIGNED INT8
I,
TRAM,CHUC,DV,
TRAM1,CHUC1,DV1,
TRAM2,CHUC2,DV2,
TRAM3,CHUC3,DV3,
GTCD=10,
BDN;
UNSIGNED INT1 TTCT=0;
#INT_TIMER1
VOID INTERRUPT_TIMER1()
{
BDN++;SET_TIMER1(3036);
}
VOID LCD_HIENTHI_SO_Z_TOADO_XY (SIGNED INT8 LCD_SO, SIGNED
INT8 X1, SIGNED INT8 Y1)
{
LCD_GOTO_XY(X1,Y1);
FOR (I=0;I<6;I++)
{
IF (I==3) LCD_GOTO_XY(X1+1,Y1);
LCD_DATA(LCD_SO_X[LCD_SO][I]);
}
}
VOID GIAI_MA()
{
/////////////// LED 7 DOAN ///////////////
TRAM=MA7DOAN[SP/100];
CHUC=MA7DOAN[SP/10%10];
DV=MA7DOAN[SP%10];
IF(TRAM==0XC0)
{
TRAM=0XFF;
IF (CHUC==0XC0) CHUC=0XFF;
}
////////////// 8 LED 7 DOAN //////////////
//////////////////// GTCD //////////////////
LED_7DQ[7]=TRAM3;
LED_7DQ[6]=CHUC3;
LED_7DQ[5]=DV3;
/////////////////// DEM SP ///////////////////
LED_7DQ[2]=TRAM;
LED_7DQ[1]=CHUC;
LED_7DQ[0]=DV;
////////////// LCD /////////////////////
TRAM1=(SP/100) +0X30;
CHUC1=(SP/10%10) +0X30;
DV1 =(SP%10) +0X30;
LCD_GOTO_XY(0,17);
DELAY_US(20);
IF(TRAM1==0X30)
{
TRAM1=" ";
IF (CHUC1==0X30) CHUC1=" ";
}
///////////////// GTCD LCD///////////////////
TRAM2=(GTCD/100) +0X30;
CHUC2=(GTCD/10%10) +0X30;
DV2 =(GTCD%10) +0X30;
LCD_GOTO_XY(1,17);
DELAY_US(20);
IF(TRAM2==0X30)
{
TRAM2=" ";
IF (CHUC2==0X30) CHUC2=" ";
}
////////////// GLCD LED 7 DOAN ///////////////////////
TRAM3 =MA7DOAN[GTCD/100];
CHUC3 =MA7DOAN[GTCD/10%10];
DV3 =MA7DOAN[GTCD%10];
IF(TRAM3==0XC0)
{
TRAM3=0XFF;
IF (CHUC3==0XC0) CHUC3=0XFF;
}

}
VOID HIENTHI()
{
GIAI_MA();
///////////////////// 4 LED7DOAN///////////////////////
XUAT_4LED_7DOAN_4SO(0XFF,TRAM,CHUC,DV);
//////////////////// LCD ///////////////////////////
LCD_GOTO_XY(0,17);
DELAY_US(20);
LCD_DATA(TRAM1);
LCD_DATA(CHUC1);
LCD_DATA(DV1);
////////////////// LCD ///////////////////////////
LCD_GOTO_XY(1,17);
DELAY_US(20);
LCD_DATA(TRAM2);
LCD_DATA(CHUC2);
LCD_DATA(DV2);
//////////////////// GLCD /////////////////////////
/////////////////// DEM SP ////////////////////////
GLCD_COMMAND(GLCD_ADDR_LINE2);
GLCD_DATA(TRAM1);
GLCD_DATA(CHUC1);
GLCD_DATA(DV1);
/////////////////////// GTCD ////////////////////////
GLCD_COMMAND(GLCD_ADDR_LINE4);
GLCD_DATA(TRAM2);
GLCD_DATA(CHUC2);
GLCD_DATA(DV2);
///////////////////// 8 LED QUET//////////////////
XUAT_8LED_7DOAN_QUET_2(6,LED_7DQ[5]);
DELAY_MS(3);

XUAT_8LED_7DOAN_QUET_2(7,LED_7DQ[6]);
DELAY_MS(3);
XUAT_8LED_7DOAN_QUET_2(1,LED_7DQ[1]);
DELAY_MS(3);

XUAT_8LED_7DOAN_QUET_2(0,LED_7DQ[0]);
DELAY_MS(3);
////////////////// THU NGHIEM /////////////
IF(TTCT==1)
{
XUAT_32LED_DON_1DW(0XFFFFFFFF);
}
}
VOID PHIM_UP()
{
IF(!INPUT(UP))
{
DELAY_MS(100);
IF(!INPUT(UP))
{
IF(TTCT==1)
{
GTCD++;
}
IF(TTCT==0){}

WHILE(!INPUT(UP));
}
}
}
VOID PHIM_DW()
{
IF(!INPUT(DW))
{
DELAY_MS(100);
IF(!INPUT(DW))
{
IF(TTCT==1)
{
GTCD--;
}
IF(TTCT==0){}
WHILE(!INPUT(DW));
}
}
}
VOID PHIM_MOD()
{
IF(!INPUT(CLR))
{
DELAY_MS(100);
IF(!INPUT(CLR))
{
TTCT=~TTCT;
WHILE(!INPUT(CLR));
}
}
}
VOID NHAP_NHAY()
{
IF(TTCT==1)
{

LED_7DQ[7]=0XFF; LED_7DQ[6]=0XFF; LED_7DQ[5]=0XFF;


// Luu y : cho nay phai them ham quet 8 led all de quet cho nhung led kia sang;
//! HIEN_THI_8LED_7DOAN_QUET_ALL();
//! DELAY_MS(3);
XUAT_8LED_7DOAN_QUET_2(0,LED_7DQ[0]);
DELAY_MS(3);
XUAT_8LED_7DOAN_QUET_2(1,LED_7DQ[1]);
DELAY_MS(3);

////////////////////////////
LCD_GOTO_XY(1,17);
DELAY_US(20);
LCD_DATA(" ");
LCD_DATA(" ");
LCD_DATA(" ");

GLCD_COMMAND(GLCD_ADDR_LINE4);
GLCD_DATA(" ");
GLCD_DATA(" ");
GLCD_DATA(" ");
}
IF(TTCT==0){}
}
VOID MAIN()
{
//////////////////// KHAI BAO NGAT ///////////////
SETUP_TIMER_1(T1_INTERNAL | T1_DIV_BY_8);
SET_TIMER1(3036);
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_TIMER1);
////////////////////////////////////////

SET_UP_PORT_IC_CHOT();
SETUP_LCD();
LCD_GOTO_XY(0,0);
LCD_DATA("DEM SAN PHAM:");
LCD_GOTO_XY(1,0);
LCD_DATA("GIA TRI CAI DAT:");
//////////////////// KHAI BAO COUNTER ////////////////
SETUP_TIMER_0(T0_EXT_L_TO_H | T0_DIV_1);
SET_TIMER0(0);
T0=SP=0;
/////////////////// KHAI BAO GLCD ////////////
SETUP_GLCD(GLCD_TEXT_MODE);
GLCD_COMMAND(GLCD_ADDR_LINE1);
GLCD_DATA("DEM SAN PHAM:");
GLCD_COMMAND(GLCD_ADDR_LINE3);
GLCD_DATA("GT CAI DAT:");
///////////////////////////////////////////////
WHILE(TRUE)
{
// Luu y khong nen de ham hien thi ngoai nay vi se bi hien thi lap -> nen de
trong if BDN
///
GIAI_MA();
T0=GET_TIMER0();
IF(T0==1)
{
SP++;
SET_TIMER0(0);
IF(SP>GTCD) SP=1;
}
IF(BDN<10)
{
IF ((BDN<5)&& TTCT==1) NHAP_NHAY();

ELSE
{ GIAI_MA();
HIENTHI();
PHIM_UP();
PHIM_DW();
PHIM_MOD();
}
}
ELSE
{
BDN=BDN-10;
}
}
}

BAI_CUOI_CHUONG4
#INCLUDE <TV_PICKIT2_SHIFT_1.c>
UNSIGNED INT8 T0,SP=0;
UNSIGNED INT1 TTCT=0,CHIEU=1, HT=0;
VOID BEN_HIEN_THI()
{
IF(!INPUT(CLR))
{
DELAY_MS(100);
IF(!INPUT(CLR))
{
HT=~HT;
WHILE(!INPUT(CLR));
}
}
}
VOID START_PAUSE()
{
IF(!INPUT(UP))
{
DELAY_MS(100);
IF(!INPUT(UP))
{
TTCT=~TTCT;
WHILE(!INPUT(UP));
}
}
}
VOID CHIEU_CT()
{
IF(!INPUT(DW))
{
DELAY_MS(100);
IF(!INPUT(DW))
{
CHIEU=~CHIEU;
WHILE(!INPUT(DW));
}
}
}
VOID DEM_TANG_DAN1()
{
XUAT_32LED_DON_1DW(0XFFFFFFFF);
SETUP_TIMER_0 (T0_EXT_L_TO_H|T0_DIV_1|T0_8_BIT);
T0=GET_TIMER0();
IF(T0==1)
{
SET_TIMER0(0);
SP++;
IF(SP==100) SP=1;
}
XUAT_4LED_7DOAN_4SO(MA7DOAN[SP/10],
MA7DOAN[SP%10]&0X7F,0X92,0X8C);
}
VOID DEM_GIAM_DAN1()
{
XUAT_32LED_DON_1DW(0XFFFFFFFF);
SETUP_TIMER_0 (T0_EXT_L_TO_H|T0_DIV_1|T0_8_BIT);
T0=GET_TIMER0();
IF(T0==1)
{
SET_TIMER0(0);
SP--;
IF(SP==0) SP=99;
}
XUAT_4LED_7DOAN_4SO(MA7DOAN[SP/10],
MA7DOAN[SP%10]&0X7F,0X92,0X8C);
}
VOID DUNG_CT1()
{
XUAT_32LED_DON_1DW(0);
SETUP_TIMER_0 (T0_OFF);
XUAT_4LED_7DOAN_4SO(MA7DOAN[SP/10],
MA7DOAN[SP%10]&0X7F,0X92,0X8C);
}
VOID DEM_TANG_DAN2()
{
XUAT_32LED_DON_1DW(0XFFFFFFFF);
SETUP_TIMER_0 (T0_EXT_L_TO_H|T0_DIV_1|T0_8_BIT);
T0=GET_TIMER0();
IF(T0==1)
{
SET_TIMER0(0);
SP++;
IF(SP==100) SP=1;
}
XUAT_4LED_7DOAN_4SO(0X92, 0X8C&0X7F,MA7DOAN[SP/10],
MA7DOAN[SP%10]);
}
VOID DEM_GIAM_DAN2()
{
XUAT_32LED_DON_1DW(0XFFFFFFFF);
SETUP_TIMER_0 (T0_EXT_L_TO_H|T0_DIV_1|T0_8_BIT);
T0=GET_TIMER0();
IF(T0==1)
{
SET_TIMER0(0);
SP--;
IF(SP==0) SP=99;
}
XUAT_4LED_7DOAN_4SO(0X92, 0X8C&0X7F,MA7DOAN[SP/10],
MA7DOAN[SP%10]);
}
VOID DUNG_CT2()
{
XUAT_32LED_DON_1DW(0);
SETUP_TIMER_0 (T0_OFF);
XUAT_4LED_7DOAN_4SO(0X92, 0X8C&0X7F,MA7DOAN[SP/10],
MA7DOAN[SP%10]);
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_TIMER_0 (T0_EXT_L_TO_H|T0_DIV_1|T0_8_BIT);
SET_TIMER0(0);
WHILE(TRUE)
{
BEN_HIEN_THI();
IF(HT==0)
{
CHIEU_CT();
IF(CHIEU==1)
{
START_PAUSE();
IF(TTCT==0)
{
DEM_TANG_DAN1();
}
IF(TTCT==1)
{
DUNG_CT1();
}
}
IF(CHIEU==0)
{
START_PAUSE();
IF(TTCT==0)
{
DEM_GIAM_DAN1();
}
IF(TTCT==1)
{
DUNG_CT1();
}
}
}
IF(HT==1)
{
CHIEU_CT();
IF(CHIEU==1)
{
START_PAUSE();
IF(TTCT==0)
{
DEM_TANG_DAN2();
}
IF(TTCT==1)
{
DUNG_CT2();
}
}
IF(CHIEU==0)
{
START_PAUSE();
IF(TTCT==0)
{
DEM_GIAM_DAN2();
}
IF(TTCT==1)
{
DUNG_CT2();
}
}
}

}
}

BAI_GTCD_DEMSP_LEDQUET_NHAPNHAY
//Luu y muon xoa so 0 VN cua so to thi khai bao vi tri thu 10, con tu 1 toi 9 la cac con so
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
#INCLUDE <TV_PICKIT2_SHIFT_LCD.C>
#INCLUDE <TV_PICKIT2_SHIFT_GLCD128X64.C>
UNSIGNED INT16 T0,SP;
UNSIGNED INT8
I,
TRAM,CHUC,DV,
TRAM1,CHUC1,DV1,
TRAM2,CHUC2,DV2,
TRAM3,CHUC3,DV3,
GTCD=10,
BDN;
UNSIGNED INT1 TTCT=0;
#INT_TIMER1
VOID INTERRUPT_TIMER1()
{
BDN++;SET_TIMER1(3036);
}
VOID LCD_HIENTHI_SO_Z_TOADO_XY (SIGNED INT8 LCD_SO, SIGNED INT8 X1,
SIGNED INT8 Y1)
{
LCD_GOTO_XY(X1,Y1);
FOR (I=0;I<6;I++)
{
IF (I==3) LCD_GOTO_XY(X1+1,Y1);
LCD_DATA(LCD_SO_X[LCD_SO][I]);
}
}

VOID GIAI_MA()
{
/////////////// LED 7 DOAN ///////////////
TRAM=MA7DOAN[SP/100];
CHUC=MA7DOAN[SP/10%10];
DV=MA7DOAN[SP%10];
IF(TRAM==0XC0)
{
TRAM=0XFF;
IF (CHUC==0XC0) CHUC=0XFF;
}
////////////// 8 LED 7 DOAN //////////////
//////////////////// GTCD //////////////////
LED_7DQ[7]=TRAM3;
LED_7DQ[6]=CHUC3;
LED_7DQ[5]=DV3;
/////////////////// DEM SP ///////////////////
LED_7DQ[2]=TRAM;
LED_7DQ[1]=CHUC;
LED_7DQ[0]=DV;
////////////// LCD /////////////////////
TRAM1=(SP/100) +0X30;
CHUC1=(SP/10%10) +0X30;
DV1 =(SP%10) +0X30;
IF(TRAM1==0X30)
{
TRAM1=" ";
IF (CHUC1==0X30) CHUC1=" ";
}
///////////////// GTCD LCD///////////////////
TRAM2=(GTCD/100) +0X30;
CHUC2=(GTCD/10%10) +0X30;
DV2 =(GTCD%10) +0X30;
IF(TRAM2==0X30)
{
TRAM2=" ";
IF (CHUC2==0X30) CHUC2=" ";
}
////////////// GLCD LED 7 DOAN ///////////////////////
TRAM3 =MA7DOAN[GTCD/100];
CHUC3 =MA7DOAN[GTCD/10%10];
DV3 =MA7DOAN[GTCD%10];
IF(TRAM3==0XC0)
{
TRAM3=0XFF;
IF (CHUC3==0XC0) CHUC3=0XFF;
}

}
VOID PHIM_UP()
{
IF(!INPUT(UP))
{
DELAY_MS(100);
IF(!INPUT(UP))
{
IF(TTCT==1)
{
GTCD++;
}
IF(TTCT==0){}
WHILE(!INPUT(UP));
}
}
}
VOID PHIM_DW()
{
IF(!INPUT(DW))
{
DELAY_MS(100);
IF(!INPUT(DW))
{
IF(TTCT==1)
{
GTCD--;
}
IF(TTCT==0){}
WHILE(!INPUT(DW));
}
}
}
VOID PHIM_MOD()
{
IF(!INPUT(CLR))
{
DELAY_MS(100);
IF(!INPUT(CLR))
{
TTCT=~TTCT;

}
WHILE(!INPUT(CLR));
}
}
VOID TAT_LED_QUET()
{
LED_7DQ[7]=0XFF;LED_7DQ[6]=0XFF;LED_7DQ[5]=0XFF;
// Luu y : cho nay phai them ham quet 8 led all de quet cho nhung led kia sang;

}
VOID HIENTHI_LEDQUET()
{
XUAT_8LED_7DOAN_QUET_2(6,LED_7DQ[5]);
DELAY_MS(1);

XUAT_8LED_7DOAN_QUET_2(7,LED_7DQ[6]);
DELAY_MS(1);
XUAT_8LED_7DOAN_QUET_2(1,LED_7DQ[1]);
DELAY_MS(1);
XUAT_8LED_7DOAN_QUET_2(0,LED_7DQ[0]);
DELAY_MS(1);
}
VOID TAT_GLCD()
{
TRAM2=' ';
CHUC2=' ';
DV2=' ';
}
VOID HIENTHI_LCD()
{
LCD_GOTO_XY(0,17);
DELAY_US(20);
LCD_DATA(TRAM1);
LCD_DATA(CHUC1);
LCD_DATA(DV1);

LCD_GOTO_XY(2,17);
DELAY_US(20);
LCD_DATA(TRAM2);
LCD_DATA(CHUC2);
LCD_DATA(DV2);
}
VOID TAT_LCD()
{
TRAM2=' ';
CHUC2=' ';
DV2=' ';

}
VOID HIENTHI_GLCD()
{
GLCD_COMMAND(GLCD_ADDR_LINE2);
GLCD_DATA(TRAM1);
GLCD_DATA(CHUC1);
GLCD_DATA(DV1);

GLCD_COMMAND(GLCD_ADDR_LINE4);
GLCD_DATA(TRAM2);
GLCD_DATA(CHUC2);
GLCD_DATA(DV2);
}
VOID HIENTHI_4LED_7DOAN()
{
XUAT_4LED_7DOAN_4SO(0XFF,TRAM,CHUC,DV);
}
VOID MAIN()
{
//////////////////// KHAI BAO NGAT ///////////////
SETUP_TIMER_1(T1_INTERNAL | T1_DIV_BY_8);
SET_TIMER1(3036);
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_TIMER1);
////////////////////////////////////////

SET_UP_PORT_IC_CHOT();
SETUP_LCD();
LCD_GOTO_XY(0,0);
LCD_DATA("DEM SAN PHAM:");
LCD_GOTO_XY(2,0);
LCD_DATA("GIA TRI CAI DAT:");
//////////////////// KHAI BAO COUNTER ////////////////
SETUP_TIMER_0(T0_EXT_L_TO_H | T0_DIV_1);
SET_TIMER0(0);
T0=SP=0;
/////////////////// KHAI BAO GLCD ////////////
SETUP_GLCD(GLCD_TEXT_MODE);
GLCD_COMMAND(GLCD_ADDR_LINE1);
GLCD_DATA("DEM SAN PHAM:");
GLCD_COMMAND(GLCD_ADDR_LINE3);
GLCD_DATA(" GT CAI DAT:");
///////////////////////////////////////////////
WHILE(TRUE)
{
// Luu y khong nen de ham hien thi ngoai nay vi se bi hien thi lap -> nen de trong if BDN
///
GIAI_MA();
PHIM_UP();
PHIM_DW();
PHIM_MOD();

IF(TTCT!=0)
{
IF (BDN<5)
{
TAT_GLCD();
TAT_LCD();
TAT_LED_QUET();

}
ELSE

IF(BDN>=10)
{
BDN=BDN-10;
}
}
HIENTHI_LEDQUET();
HIENTHI_LCD();
HIENTHI_GLCD();
HIENTHI_4LED_7DOAN();
T0=GET_TIMER0();
IF(T0==1)
{
SP++;
SET_TIMER0(0);
IF(SP>GTCD) SP=1;
}
}
}
BAI_KIEM_TRA
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
UNSIGNED INT32 X=0,Y=0;
UNSIGNED INT8 I=0, TD=0,TTCT=0;

VOID SANG_DAN()
{
IF(I<4)
{
X = (X<<5) + 0X0000001F;
I++;
}
ELSE
{
IF(I==4)
{
X=0;
I++;
}
ELSE
{
IF(I>4)
{
X = (X>>5) + 0X0003E000;
I++;
}
IF(I==10)
{
I=0;
X=0;
}
}
}

}
VOID TAT_DAN()
{
IF(I<6)
{
X = (X<<3) & 0XFFFFFFF8;
I++;
}
ELSE
{
IF(I==6)
{
X=0XFFFFFFFF;
I++;
}
ELSE
{
IF(I>6)
{
X = (X>>3) & 0XFFFC7FFF;
I++;
}
IF(I==14)
{
I=0;
X=0XFFFFFFFF;
}
}
}
}
VOID TOC_DO1()
{
IF(!INPUT(CLR))
{
DELAY_MS(100);
IF(!INPUT(CLR))
{
TD=0;
WHILE(!INPUT(CLR)); //CHO NHA PHIM
}
}
}
VOID TOC_DO2()
{
IF(!INPUT(MOD))
{
DELAY_MS(100);
IF(!INPUT(MOD))
{
TD=1;
WHILE(!INPUT(MOD)); //CHO NHA PHIM
}
}
}
VOID HAM_XUAT()
{
IF(TD==0)
{
Y= 0X0000000F;
XUAT_32LED_DON_1DW(((X<<11)&0X1FFFF800)|Y);
DELAY_MS(500);
}
ELSE
{
IF(TD==1)
{
Y= 0X00000003;
XUAT_32LED_DON_1DW(((X<<11)&0X1FFFF800)|Y);
DELAY_MS(100);
}
}
}
VOID CHE_DO()
{
IF(!INPUT(DW))
{
DELAY_MS(100);
IF(!INPUT(DW))
{
TTCT++;
IF(TTCT==0)
{
X=0;
I=0;
HAM_XUAT();
}
ELSE
{
IF(TTCT==1)
{
X=0XFFFFFFFF;
I=0;
HAM_XUAT();
}
ELSE
{
IF(TTCT==2)
{
TTCT=0;
}
}
}
WHILE(!INPUT(DW)); //CHO NHA PHIM
}
}
}

VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
WHILE(TRUE)
{
CHE_DO();
IF(TTCT==0)
{

TOC_DO1();
TOC_DO2();
SANG_DAN();
HAM_XUAT();
}
ELSE
{
IF(TTCT==1)
{
TOC_DO1();
TOC_DO2();
TAT_DAN();
HAM_XUAT();
}
}
}
}

BAI_601_LCD_HIEN_THI_4HANG

BAI_MO_RONG_32LED_TONG_HOP
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
UNSIGNED INT8 I,J;
UNSIGNED INT32 Y;
VOID SANGTATDAN_12LEDGIUA_5LEDSANG()
{
FOR(J=0;J<2;J++)
{
FOR(I=0;I<12;I++)
{
Y=(Y<<1 | 0X00000400) & 0X003FFC00;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(100);
}
FOR(I=0;I<12;I++)
{
Y=(Y<<1) & 0X003FFC00;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(100);
}
}
FOR(J=0;J<2;J++)
{
FOR(I=0;I<12;I++)
{
Y=(Y>>1 | 0X00200000) & 0X003FFC00;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(100);
}
FOR(I=0;I<12;I++)
{
Y=(Y>>1) & 0X003FFC00;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(100);
}
}

}
VOID CHOPTAT_12LEDGIUA_3LAN()
{
FOR(I=0;I<3;I++)
{
XUAT_32LED_DON_4BYTE(0,0X3F,0XFC,0X00);
DELAY_MS(200);
XUAT_32LED_DON_4BYTE(0,0,0,0);
DELAY_MS(200);
}
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
Y=0;
WHILE(TRUE)
{
SANGTATDAN_12LEDGIUA_5LEDSANG();
CHOPTAT_12LEDGIUA_3LAN();
}
}

BAI_MO_RONG
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
SIGNED INT8 HIENTHI=0,SP, GTCD, BDN, BDN_NN,
GIA_TRI_MOD,T0,DEM_TG_EXIT,I=0;

#INT_TIMER1
VOID INTERRUPT_TIMER1()
{
BDN++;
BDN_NN++;
SET_TIMER1(3036);
}
VOID GIAI_MA_GAN_CHO_8LED_QUET()
{
IF(HIENTHI==1)
{
I=0;
LED_7DQ[5]=0XFF;
LED_7DQ[4]=0XFF;
HIENTHI=0;
}
LED_7DQ[I-1]=0XFF;
LED_7DQ[I]=MA7DOAN [SP%10];
LED_7DQ[I+1]=MA7DOAN [SP/10];
if(I>5) I=0;
IF(LED_7DQ[I+1]==0XC0)
{
LED_7DQ[I+1]=0XFF;
}
LED_7DQ[6]=MA7DOAN [GTCD%10];
LED_7DQ[7]=MA7DOAN [GTCD/10];
}
VOID TAT_2LED_CHINH()
{
IF (GIA_TRI_MOD==1) {LED_7DQ[7]=0XFF; LED_7DQ[6]=0XFF;}
}
//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VOID PHIM_MOD()
{
IF(PHIM_BT1(200))
{
GIA_TRI_MOD++;
DEM_TG_EXIT=0;
IF(GIA_TRI_MOD>=2) GIA_TRI_MOD=0;

}
}
//XXXXXXXXXXXXXXXXXXXXXXX
VOID PHIM_UP()
{
IF(PHIM_BT0(200))
{
DEM_TG_EXIT=0;
IF(GIA_TRI_MOD==1)
{
GTCD++;
IF(GTCD>=26)
{
GTCD=15;
}
}

}
}
//XXXXXXXXXXXXXXXXXXXXXXXXXX
VOID PHIM_DW()
{
IF(PHIM_BT2(200))
{
DEM_TG_EXIT=0;
IF(GIA_TRI_MOD==1)
{
GTCD--;
IF(GTCD<=14)
{
GTCD=25;
}
}

}
}
//XXXXXXXXXXXXXXXXXXXXX
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_TIMER_1(T1_INTERNAL | T1_DIV_BY_8);
SET_TIMER1(3036);
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_TIMER1);;
BDN=0; GIA_TRI_MOD=0; BDN_NN=0;
SP=0; GTCD=15;

SETUP_TIMER_0 (T0_EXT_L_TO_H|T0_DIV_1);
SET_TIMER0(0);
T0=0;
WHILE(TRUE)
{
GIAI_MA_GAN_CHO_8LED_QUET();
XUAT_4LED_7DOAN_GIAIMA_XOA_SO0(GIA_TRI_MOD);
IF(BDN_NN<30)
{
IF ((BDN_NN<20)&&(INPUT(BT0))&& (INPUT(BT2))&&GIA_TRI_MOD==1)
TAT_2LED_CHINH();
ELSE GIAI_MA_GAN_CHO_8LED_QUET();
}
ELSE
{
IF(BDN_NN>=30) BDN_NN=0;
}
IF(BDN<10)
{
PHIM_MOD(); PHIM_UP(); PHIM_DW();
T0=GET_TIMER0();
IF(T0==1)
{

SET_TIMER0(0);
SP++;
I++;
IF(SP>GTCD) SP=1;
IF((LED_7DQ[5]!=0XFF) & (LED_7DQ[4]!=0XFF))
{
HIENTHI=1;
}
}

HIEN_THI_8LED_7DOAN_QUET_ALL();
}
ELSE
{
BDN=BDN-10;
DEM_TG_EXIT++;
IF(DEM_TG_EXIT==20) GIA_TRI_MOD=0;
}
}
}
BAI_MO_RONG_CHAY_THEO_THU_TU
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
UNSIGNED INT8 I,J;
UNSIGNED INT16 ZP,ZT;
UNSIGNED INT32 Y;
VOID CHAY_THEO_THUTU()
{
FOR(I=0;I<16;I++)
{
XUAT_32LED_DON_2WORD(ZP,ZT);
DELAY_MS(100);
ZP= (ZP<<1) + 1;
XUAT_32LED_DON_2WORD(ZP,ZT);
DELAY_MS(100);
ZT= (ZT>>1) + 0X8000;
}
FOR(I=0;I<16;I++)
{
XUAT_32LED_DON_2WORD(ZP,ZT);
DELAY_MS(100);
ZP= (ZP>>1);
XUAT_32LED_DON_2WORD(ZP,ZT);
DELAY_MS(100);
ZT= (ZT<<1);
}
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
ZP=0;
ZT=0;
Y=0X00000000;
WHILE(TRUE)
{
CHAY_THEO_THUTU();
}
}

BAI_KHOI
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
UNSIGNED INT32 Y=0,Y_CD1=0, Y_CD2=0, Y_CHAY1= 0X00000010 ,Y_CHAY2 =
0X00008000;
UNSIGNED INT8 I=0,J=0,CD1=0,CD2=0,CHAY1=12, CHAY2=11;
UNSIGNED INT16 T=0,P=0;
UNSIGNED INT1 CHIEU=0,TT=0;
VOID NHAY5LAN()
{
FOR(I=0;I<5;I++)
{
Y = 0X000000FE;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(100);
Y = 0;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(100);
}
}
VOID CHAY()
{
FOR(J=0;J<2;J++)
{
FOR(I=0;I<9;I++)
{
Y = ((Y>>1)|0X08000000)&0X0FF00000;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(100);
}
Y=0;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(100);
}
FOR(J=0;J<2;J++)
{
FOR(I=0;I<13;I++)
{
Y = ((Y<<1)|0X00000004)&0X000001FFC;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(100);
}
Y=0;
XUAT_32LED_DON_1DW(Y);
DELAY_MS(100);
}
}
VOID TUAN_HOAN1()
{
IF(CHAY1>0)
{
IF(CD1<CHAY1)
{
P = Y_CD1 | Y_CHAY1;
Y_CHAY1 = Y_CHAY1 <<1;
CD1++;
}
IF(CD1==CHAY1)
{
CHAY1--;
CD1=0;
Y_CD1 = P;
Y_CHAY1= 0X00000010;
}
}
ELSE
{
CHAY1=12;
CD1=0;
Y_CD1=0;
Y_CHAY1= 0X00000010;
P=0;
}
}
VOID TUAN_HOAN2()
{
IF(CHAY2>0)
{
IF(CD2<CHAY2)
{
T = Y_CD2 | Y_CHAY2;
Y_CHAY2 = Y_CHAY2 >>1;
CD2++;
}
IF(CD2==CHAY2)
{
CHAY2--;
CD2=0;
Y_CD2 = T;
Y_CHAY2= 0X00008000;
}
}
ELSE
{
CHAY2=11;
CD2=0;
Y_CD2=0;
Y_CHAY2= 0X00008000;
T=0;
}
}
VOID LUU1()
{
XUAT_32LED_DON_2WORD(T,P);
}
VOID LUU2()
{
XUAT_32LED_DON_2WORD(P,T);
}
VOID START_PAUSE()
{
IF(!INPUT(STOP))
{
DELAY_MS(100);
IF(!INPUT(STOP))
{
TT=~TT;
WHILE(!INPUT(STOP)); //CHO NHA PHIM
}
}
}
VOID DAO_CHIEU()
{
IF(!INPUT(CLR))
{
DELAY_MS(100);
IF(!INPUT(CLR))
{
T=0; P=0; CD1=0; CD2=0; CHAY1=12; CHAY2=11;
Y_CD1=0; Y_CD2=0; Y_CHAY1= 0X00000010; Y_CHAY2 = 0X00008000;//Clear tat
ca cac bien de CT tiep theo chay dung
XUAT_32LED_DON_2WORD(T,P);
DELAY_MS(100);
CHIEU=~CHIEU;
WHILE(!INPUT(CLR)); //CHO NHA PHIM
}
}
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
NHAY5LAN();
CHAY();
WHILE(TRUE)
{
DAO_CHIEU();
IF(CHIEU==0)
{
START_PAUSE();
IF(TT==0)
{
TUAN_HOAN1();
TUAN_HOAN2();
XUAT_32LED_DON_2WORD(T,P);
DELAY_MS(100);
}
ELSE
{
IF(TT==1) LUU1();
}
}
ELSE
{
IF(CHIEU==1)
{
START_PAUSE();
IF(TT==0)
{
TUAN_HOAN1();
TUAN_HOAN2();
XUAT_32LED_DON_2WORD(P,T);
DELAY_MS(100);
}
ELSE
{
IF(TT==1) LUU2();
}
}
}
}
}

BAI_THAY_CHO_TRENBANG_TUAN3
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
UNSIGNED INT32 Y;
UNSIGNED INT8 I,J,TT_CT=0;
UNSIGNED INT16 X=0,Z=0,ZT,ZP;
UNSIGNED INT1 CHIEU=0,TT=0;
VOID DON()
{
FOR(I=0;I<8;I++)
{
ZT=(ZT>>1) + 0X8000;
XUAT_32LED_DON_2WORD(ZT,0);
DELAY_MS(100);
}
XUAT_32LED_DON_2WORD(0,0);
FOR(I=0;I<5;I++)
{
ZP=(ZP<<1) + 1;
XUAT_32LED_DON_2WORD(0,ZP);
DELAY_MS(100);
}
XUAT_32LED_DON_2WORD(0,0);
I=0; //DE QUA CT CON LAP1() I chay tu 0 neu khong I se bat dau tu 8
TT_CT++;

}
VOID LAP1()
{
I++;
X = ((X>>1) | 0X8000);
IF(I>=9)
{
I=0;
X=0;
}
J++;
Z= ((Z<<1)|0X0001);
IF(J>=6)
{
J=0;
Z=0;
}
XUAT_32LED_DON_2WORD(X,Z);
DELAY_MS(100);
}
VOID LAP2()
{
I++;
X = ((X>>1) | 0X8000);
IF(I>=6)
{
I=0;
X=0;
}
J++;
Z= ((Z<<1)|0X0001);
IF(J>=9)
{
J=0;
Z=0;
}
XUAT_32LED_DON_2WORD(X,Z);
DELAY_MS(100);
}
VOID LUU()
{
XUAT_32LED_DON_2WORD(X,Z);
}
VOID START_PAUSE()
{
IF(!INPUT(STOP))
{
DELAY_MS(100);
IF(!INPUT(STOP))
{
TT=~TT;
WHILE(!INPUT(STOP)); //CHO NHA PHIM
}
}
}
VOID DAO_CHIEU()
{
IF(!INPUT(CLR))
{
DELAY_MS(100);
IF(!INPUT(CLR))
{
Z=0; X=0; I=0; J=0; //Clear tat ca cac bien de CT tiep theo chay dung
XUAT_32LED_DON_2WORD(X,Z);
DELAY_MS(100);
CHIEU=~CHIEU;
WHILE(!INPUT(CLR)); //CHO NHA PHIM
}
}
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SET_TRIS_B(0X3C);
Y=0;
ZT=0;
ZP=0;
XUAT_32LED_DON_1DW(Y);
WHILE(TRUE)
{
IF(TT_CT==0)
DON();
IF(TT_CT==1)
{
DAO_CHIEU();
IF(CHIEU==0)
{
START_PAUSE();
IF(TT==0) LAP1();
ELSE
{
IF(TT==1) LUU();
}
}
ELSE
{
IF(CHIEU==1)
{
START_PAUSE();
IF(TT==0) LAP2();
ELSE
{
IF(TT==1) LUU();
}
}
}
}
}
}

BAI_THI_8LED_5LED
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
UNSIGNED INT8 ZP,ZT;
UNSIGNED INT8 I,TTCT;
UNSIGNED INT8 Y;
VOID TAM_LED()
{
IF(I<8)
{
Y=(Y>>1) + 0X80;
XUAT_32LED_DON_4BYTE(0,0,Y,0);
DELAY_MS(100);
I++;
}
ELSE
{
Y=0;
I=0;
TTCT++;
}
}
VOID NAM_LED()
{
IF(I<5)
{
Y=(Y<<1) + 1;
XUAT_32LED_DON_4BYTE(0,0,0,Y);
DELAY_MS(100);
I++;
}
ELSE
{
Y=0;
I=0;
TTCT++;
}
}
VOID TONG_HOP()
{
IF(I<8)
{
ZT=(ZT>>1) + 0X80;
ZP=((ZP<<1) + 1) & 0X1F;
XUAT_32LED_DON_4BYTE(0,0,ZT,ZP);
DELAY_MS(100);
I++;
}
ELSE
{
Y=0;
I=0;
ZP=0;
ZT=0;
//! TTCT=0;
}
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
ZP=0;
ZT=0;
I=0;
TTCT=0;
WHILE(TRUE)
{
IF(TTCT==0)
{
TAM_LED();
}
IF(TTCT==1)
{
NAM_LED();
}
IF(TTCT==2)
{
TONG_HOP();
}
}
}

BAI_THI_2
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
#INCLUDE <TV_PICKIT2_SHIFT_LCD.C>
#INCLUDE <TV_PICKIT2_SHIFT_GLCD128X64.C>
#INCLUDE <TV_PICKIT2_SHIFT_KEY4X4_138.C>
UNSIGNED INT16 T0,SP,GTCD;
UNSIGNED INT8 I,X1,X2,X3,X4,
BDN,GIAY,Y1,Y2,Y3,Y4,VITRI;
UNSIGNED INT1 TTCT=0;
SIGNED INT8 MP;
UNSIGNED CHAR TEN[30]={" 095_TUONG "};
#INT_TIMER1
VOID INTERRUPT_TIMER1()
{
BDN++;SET_TIMER1(3036);
}
VOID LCD_HIENTHI_SO_Z_TOADO_XY (SIGNED INT8 LCD_SO, SIGNED INT8 X1,
SIGNED INT8 Y1)
{
LCD_GOTO_XY(X1,Y1);
FOR (I=0;I<6;I++)
{
IF (I==3) LCD_GOTO_XY(X1+1,Y1);
LCD_DATA(LCD_SO_X[LCD_SO][I]);
}
}
VOID LCD_HIENTHI_CHU_Z_TOADO_XY (SIGNED INT8 LCD_SO, SIGNED INT8 X1,
SIGNED INT8 Y1)
{
LCD_GOTO_XY(X1,Y1);
FOR (I=0;I<6;I++)
{
IF (I==3) LCD_GOTO_XY(X1+1,Y1);
LCD_DATA(LCD_CHU[LCD_SO][I]);
}
}
VOID GIAIMA_LCD()
{
X1=SP/10;
X2=SP%10;
IF(X1==0)
{
X1=10;
}
}
VOID GIAIMA_LCD2()
{
X3=GIAY/10;
X4=GIAY%10;
IF(X3==0)
{
X3=10;
}
}
VOID HIENTHI_LCD()
{
LCD_GOTO_XY(1,10);
LCD_DATA("hop");

LCD_HIENTHI_SO_Z_TOADO_XY(X1,0,3);
LCD_HIENTHI_SO_Z_TOADO_XY(X2,0,6);

LCD_HIENTHI_CHU_Z_TOADO_XY (0,0,14);

//! LCD_GOTO_XY(3,10);
//! LCD_DATA("095_TUONG");
LCD_GOTO_XY(3,10);
FOR(I=VITRI;I<(10+VITRI);I++) //CHO 10+VITRI LA SET UP KHOANG CACH HIEN
THI
{

LCD_DATA(TEN[I]);
DELAY_MS(10);
}
VITRI++;
IF(VITRI==19) VITRI=0;

}
VOID GIAIMA_GLCD()
{
Y1=GIAY/10 +0X30;
Y2=GIAY%10 +0X30;
IF(Y1==0X30)
{
Y1=' ';
}
}
VOID GIAIMA_GLCD2()
{
Y3=SP/10 +0X30;
Y4=SP%10 +0X30;
IF(Y3==0X30)
{
Y3=' ';
}
}
VOID HIENTHI_GLCD()
{
GLCD_COMMAND(0X8B);
GLCD_DATA(Y1);
GLCD_DATA(Y2);
}
VOID HIENTHI_LCD2()
{
LCD_HIENTHI_SO_Z_TOADO_XY(X3,0,3);
LCD_HIENTHI_SO_Z_TOADO_XY(X4,0,6);

LCD_GOTO_XY(1,10);
LCD_DATA(" ");
LCD_GOTO_XY(3,0);
LCD_DATA(" ");

LCD_HIENTHI_CHU_Z_TOADO_XY (15,0,14);
}
VOID HIENTHI_GLCD2()
{
GLCD_COMMAND(0X8B);
GLCD_DATA(Y3);
GLCD_DATA(Y4);
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_LCD();
SET_TRIS_B(0X3C);

SET_UP_PORT_IC_CHOT();
SETUP_TIMER_0 (T0_EXT_L_TO_H|T0_DIV_1|T0_8_BIT);
SET_TIMER0(0);

SETUP_TIMER_1(T1_INTERNAL | T1_DIV_BY_8);
SET_TIMER1(3036);
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_TIMER1);

SETUP_GLCD(GLCD_TEXT_MODE);

GIAY=20;
VITRI=11;
LCD_COMMAND(0x40);
DELAY_US(20);
FOR (I=0;I<64;I++)
{ LCD_DATA(LCD_MA_8DOAN[I]); }

////////////////////
T0=0;
SP=15;
GTCD=5;

WHILE(TRUE)
{

/////////////////
T0=GET_TIMER0();
IF(T0==1)
{
SP--;
SET_TIMER0(0);
IF(SP<GTCD) SP=15;
}
////////////////
IF(BDN<10)
{

}
ELSE
{
BDN=BDN-10;
GIAY--;
IF (GIAY==0)
{
GIAY=20;
}
}

MP = KEY_4X4_DW();
DELAY_MS(100);
IF(MP != 0XFF)
{
IF(MP==10)
{
TTCT=~TTCT;
}
}
IF(TTCT==0)
{
GIAIMA_LCD();
GIAIMA_GLCD();
HIENTHI_LCD();
HIENTHI_GLCD();
}
IF(TTCT==1)
{
GIAIMA_LCD2();
GIAIMA_GLCD2();
HIENTHI_LCD2();
HIENTHI_GLCD2();
}

}
}

BAI_VE_HINH_HIENTHI_T0
#INCLUDE <TV_PICKIT2_SHIFT_1.c>
#INCLUDE <TV_PICKIT2_SHIFT_GLCD128X64.C>
#INCLUDE <GRAPHICS.C>
UNSIGNED INT8 T0,T0_TAM,CHUC,DV;
UNSIGNED INT1 TTCT=0;
UNSIGNED INT8 DEM[3]={0X30,0X32}; // PHAI KHAI BAO INT8 INT16 THI NO BI
TRAN` O NHO'
VOID GIAI_MA()
{
DEM[0]= (T0/10) +0X30;
DEM[1]= (T0%10) +0X30;

CHUC = MA7DOAN[T0/10];
DV = MA7DOAN[T0%10];
}
VOID HIEN_THI()
{
IF(TTCT==0)
{
GLCD_COMMAND(GLCD_GRAPHIC_MODE);
GLCD_MAU_NEN(0);
glcd_RECT(30,0,94,60,0,1); // HINH VUONG MAU XANH
GLCD_TEXT57(60,32,DEM,1,1); // SO MAU TRANG
GDRAM_VDK_TO_GDRAM_GLCD_ALL();
}
IF(TTCT==1)
{
GLCD_COMMAND(GLCD_GRAPHIC_MODE);
GLCD_MAU_NEN(0);
glcd_circle(64,32,30,1,1);//HINH TRON MAU TRANG
GLCD_TEXT57(60,32,DEM,1,0); //SO MAU XANH
GDRAM_VDK_TO_GDRAM_GLCD_ALL();
}
}
VOID PHIM_MOD()
{
IF(!INPUT(UP))
{
DELAY_MS(20);
{
IF(!INPUT(UP))
{
TTCT=~TTCT;
HIEN_THI();
DO{}
WHILE(!INPUT(UP));
}
}
}
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_TIMER_0 (T0_EXT_L_TO_H|T0_DIV_1|T0_8_BIT);
SET_TIMER0(0);
T0 = T0_TAM = 0;
SETUP_GLCD(GLCD_GRAPHIC_MODE);
WHILE(TRUE)
{
PHIM_MOD();
GIAI_MA();
T0 = T0_TAM;

//VIET THEO CACH KHAC DE KHONG BI TRE


IF(T0 == T0_TAM)
{
T0=GET_TIMER0();
}
IF(T0 >50) SET_TIMER0(1);

XUAT_4LED_7DOAN_4SO(0XFF, 0XFF,CHUC,DV);
HIEN_THI();
}
}
BAI_THI_BUOI_SANG //////////////////////////////////////////////////////////////////
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
UNSIGNED INT32 X=0,Y = 0;
UNSIGNED INT8 I=0, TTCT=0,J=0;
VOID SANG_DAN1()
{
IF(I<14)
{
X = (X<<1) + 0X0001;
I++;
}
ELSE
{
IF((I>=14)&(I<27))
{
X= (X<<1);
I++;
}
ELSE
{
IF(I==27)
{
I=0;
X=0;
}
}
}

}
VOID LED_GIUA()
{
IF(!INPUT(CLR))
{
DELAY_MS(100);
IF(!INPUT(CLR))
{
J++;
Y = 0X0000000F >> (4-J);
IF(J>4)
{
J=0;
Y = 0X0000000F >>4;
}
WHILE(!INPUT(CLR)); //CHO NHA PHIM
}
}
}
VOID SANG_DAN2()
{
IF(I<11)
{
X = (X<<1) + 0X0001;
Y= (Y<<1) + 0X0004;
I++;
}
ELSE
{
IF((I>=11)&(I<21))
{
X= ((X<<1) &0X07FF);
Y= ((Y<<1) &0X1FFC);
I++;
}
ELSE
{
IF(I==21)
{
I=0;
X=0;
Y=0;
}
}
}
XUAT_32LED_DON_2WORD(Y,X);
DELAY_MS(500);
}
VOID PHIM_14()
{
IF(!INPUT(UP))
{
DELAY_MS(100);
IF(!INPUT(UP))
{
TTCT=0;
I=0;
X=0;
Y=0;
XUAT_32LED_DON_2WORD(Y,X);
DELAY_MS(100);
WHILE(!INPUT(UP)); //CHO NHA PHIM
}
}
}
VOID PHIM_11()
{
IF(!INPUT(DW))
{
DELAY_MS(100);
IF(!INPUT(DW))
{
TTCT=1;
I=0;
X=0;
Y=0;
XUAT_32LED_DON_2WORD(Y,X);
DELAY_MS(100);
WHILE(!INPUT(DW)); //CHO NHA PHIM
}
}
}

VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
WHILE(TRUE)
{
LED_GIUA();
SANG_DAN1();
XUAT_32LED_DON_1DW(((X<<18)&0XFFFC0000)|Y<<14|X&0X00003FFF);
DELAY_MS(100);
//! PHIM_14();
//! PHIM_11();
//!
//! IF(TTCT==0)
//! {
//! SANG_DAN1();
//! }
//! IF(TTCT==1)
//! {
//! SANG_DAN2();
//! }
}
}

BAI_HUY_TEST
#INCLUDE <TV_PICKIT2_SHIFT_1.C> // LED & LCD
#INCLUDE <TV_PICKIT2_SHIFT_STEP_MOTOR.C> // DONG CO
#INCLUDE <TV_PICKIT2_SHIFT_DS18B20.c> // NHIET DO 1 DAY
#INCLUDE <TV_PICKIT2_SHIFT_DS1307_I2C.C> // THOI GIAN THUC
#INCLUDE <TV_PICKIT2_SHIFT_GLCD128X64.C> // GLCD
UNSIGNED INT16
K,BDN,CH_GIAY,DV_GIAY,GIAY,CHUC_DS,DV_DS,TP1_DS,TP2_DS,CH_SOBUOC,D
V_SOBUOC,I;
SIGNED INT16 SOBUOC;
UNSIGNED CHAR GIATRI_MOD;

#INT_TIMER1
VOID INTERRUPT_TIMER1()
{
BDN++;SET_TIMER1(3036);
}

CHAR NHIET[6]={" "};

VOID DS18B20A()
{
IF(TOUCH_PRESENT())
{
DOC_GIATRI_DS18B20();
CHUC_DS=((ds18a>>4)&0xff)/10;
DV_DS=((ds18a>>4)&0xff)%10;
TP1_DS=(((ds18a>>2)&0x03)*25)/10;
TP2_DS=(((ds18a>>2)&0x03)*25)%10;
}
}

VOID GM_DS1307()
{
CH_GIAY=GIAY_DS13/16;
DV_GIAY=GIAY_DS13%16;
GIAY=CH_GIAY*10+DV_GIAY;
}

void HT_DS1307()
{
IF(THU_DS13==1)

XUAT_4LED_7DOAN_4SO(0XC6,0XC8&0x7f,MA7DOAN[CH_GIAY],MA7DOAN[DV_
GIAY]);
ELSE
XUAT_4LED_7DOAN_4SO(0XFF,MA7DOAN[THU_DS13]&0x7f,MA7DOAN[CH_GIAY]
,MA7DOAN[DV_GIAY]);
}

VOID GIAI_MA_GLCD()
{
NHIET[0]=CHUC_DS+0X30;
NHIET[1]=DV_DS+0X30;
NHIET[2]=".";
NHIET[3]=TP1_DS+0X30;
NHIET[4]=TP2_DS+0X30;
}

VOID HIEN_THI_GLCD()
{
glcd_circle(64,32,20,1,1);
glcd_text57(50,28, NHIET, 1, 0);
GDRAM_VDK_TO_GDRAM_GLCD_ALL();
}

VOID LUU_GIAI_MA_HIEN_THI_SAU_KHI_CHINH()
{
NAP_THOI_GIAN_HTAI_VAO_DS13B07();
HIEN_THI_THOI_GIAN_DS13B07();
}
VOID NHAP_NHAY_SO()
{
IF(BDN<5)
{
SWITCH (GIATRI_MOD)
{
CASE 1:
IF(THU_DS13==1)
XUAT_4LED_7DOAN_4SO(0XC6,0XC8&0x7f,0XFF,0XFF);
ELSE

XUAT_4LED_7DOAN_4SO(0XFF,MA7DOAN[THU_DS13]&0x7f,0XFF,0XFF);
BREAK;
CASE 2:
XUAT_4LED_7DOAN_4SO(0XFF,0XFF,MA7DOAN[CH_GIAY],MA7DOAN[DV_GIAY])
;
BREAK;
DEFAULT:BREAK;
}
}
ELSE
{
IF(BDN<11)
{
HT_DS1307();
}
ELSE BDN=0;
}
}

UNSIGNED INT8 HIEU_CHINH_SO_BCD_TANG(UNSIGNED INT8 X)


{
UNSIGNED INT8 Y;
Y = X;
X = X & 0X0F;
IF (X==0X0A) Y = Y + 6;
RETURN (Y);
}

UNSIGNED INT8 HIEU_CHINH_SO_BCD_GIAM(UNSIGNED INT8 X)


{
UNSIGNED INT8 Y;
Y = X;
X = X & 0X0F;
IF (X==0X0F) Y = Y - 6;
RETURN (Y);
}

VOID PHIM_MOD()
{
IF (!INPUT(MOD))
{
DELAY_MS(20);
{
IF(!INPUT(MOD))
{
IF(GIATRI_MOD<2) GIATRI_MOD++;
ELSE GIATRI_MOD=0;

WHILE (!INPUT(MOD));
}
}
}
}

VOID PHIM_UP()
{
IF(!INPUT(UP))
{
DELAY_MS(20);
IF(!INPUT(UP))
{
SWITCH (GIATRI_MOD)
{
CASE 1: IF (GIAY_DS13==0X59) GIAY_DS13=0;
ELSE
{
GIAY_DS13++;
GIAY_DS13 = HIEU_CHINH_SO_BCD_TANG(GIAY_DS13);
}
LUU_GIAI_MA_HIEN_THI_SAU_KHI_CHINH();
BREAK;
CASE 2: IF (THU_DS13==8) THU_DS13=1;
ELSE
{
THU_DS13++;
IF(THU_DS13==8) THU_DS13=1;
}
LUU_GIAI_MA_HIEN_THI_SAU_KHI_CHINH();
BREAK;

DEFAULT:BREAK;
}
WHILE(!INPUT(UP));
}
}
}

VOID PHIM_DW()
{
IF(!INPUT(DW))
{
DELAY_MS(20);
IF(!INPUT(DW))
{
SWITCH (GIATRI_MOD)
{
CASE 1: IF (GIAY_DS13==0) GIAY_DS13=0X59;
ELSE
{
GIAY_DS13--;
GIAY_DS13 = HIEU_CHINH_SO_BCD_GIAM(GIAY_DS13);
}
LUU_GIAI_MA_HIEN_THI_SAU_KHI_CHINH();
BREAK;
CASE 2: IF (THU_DS13==8) THU_DS13=1;
ELSE
{
THU_DS13--;
IF(THU_DS13==0) THU_DS13=1;
}
LUU_GIAI_MA_HIEN_THI_SAU_KHI_CHINH();
BREAK;
DEFAULT:BREAK;
}
WHILE(!INPUT(DW));
}
}
}

//!VOID GM_LCD()
//!{
//! CH_SOBUOC=SOBUOC/10;
//! DV_SOBUOC=SOBUOC%10;
//!}

VOID LCD_HIENTHI_SO_Z_TOADO_XY (SIGNED INT8 LCD_SO, SIGNED INT8 X1,


SIGNED INT8 Y1)
{
LCD_GOTO_XY(X1,Y1);
FOR (I=0;I<6;I++)
{
IF (I==3) LCD_GOTO_XY(X1+1,Y1);
LCD_DATA(LCD_SO_X[LCD_SO][I]);
}
}

VOID HT_LCD()
{
LCD_HIENTHI_SO_Z_TOADO_XY(SOBUOC/10,2,14);
LCD_HIENTHI_SO_Z_TOADO_XY(SOBUOC%10,2,17);
}

VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_LCD();
LCD_GOTO_XY(0,0);
LCD_DATA("SO BUOC:");
LCD_GOTO_XY(0,0);
LCD_COMMAND(0x40);
DELAY_US(20);
FOR (I=0;I<64;I++)
{ LCD_DATA(LCD_MA_8DOAN[I]); }

STEPMOTOR_DELAY=5;
STEPMOTOR_ONOFF=1; //DE KHOI CANH BAO

SETUP_TIMER_1(T1_INTERNAL | T1_DIV_BY_8);
SET_TIMER1(3036);
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_TIMER1);

DOC_THOI_GIAN_TU_REALTIME();
IF (MA_DS13!=MA_DS)
{
THIET_LAP_THOI_GIAN_HIEN_TAI();
NAP_THOI_GIAN_HTAI_VAO_DS13B07();
}

DOC_THOI_GIAN_TU_REALTIME();
GIAYTAM=GIAY_DS13;
GIATRI_MOD=0;

KHOI_TAO_DS18B20();
SET_TRIS_B(0X3C);
SETUP_GLCD(GLCD_GRAPHIC_MODE);
GLCD_MAU_NEN(0);
GLCD_circle(64,32,30,1,1);
while(true)
{
DS18B20A();
GIAI_MA_GLCD();
HIEN_THI_GLCD();

DOC_THOI_GIAN_TU_REALTIME();
IF(GIAYTAM!=GIAY_DS13)
{
GIAYTAM = GIAY_DS13;
}
GM_DS1307();
FOR (K=0; K<10000;K++)
{
PHIM_MOD();
PHIM_UP();
PHIM_DW();
}
IF(GIATRI_MOD!=0) NHAP_NHAY_SO();
ELSE HT_DS1307();

IF(GIAY<20)
{
STEP_MOTOR_QUAY_THUAN_FS();
SOBUOC++;
DELAY_MS(STEPMOTOR_DELAY);
IF(SOBUOC>99) SOBUOC=0;
}
ELSE
{
STEP_MOTOR_QUAY_NGHICH_FS();
SOBUOC--;
DELAY_MS(STEPMOTOR_DELAY);
IF(SOBUOC<0) SOBUOC=99;
}
//GM_LCD();
HT_LCD();
}
}
KHOIBAI_THI_THU_CL2
#INCLUDE <TV_PICKIT2_SHIFT_1.C> // LED & LCD
#INCLUDE <TV_PICKIT2_SHIFT_STEP_MOTOR.C> // DONG CO
#INCLUDE <TV_PICKIT2_SHIFT_DS18B20.C> // NHIET DO 1 DAY
#INCLUDE <TV_PICKIT2_SHIFT_DS13B07_I2C.C> // THOI GIAN THUC
#INCLUDE <TV_PICKIT2_SHIFT_GLCD128X64.C> // GLCD
#INCLUDE <GRAPHICS.C>
UNSIGNED INT16
K,BDN,CH_GIAY,DV_GIAY,GIAY,CHUC_DS,DV_DS,TP1_DS,TP2_DS,CH_SOBUOC,D
V_SOBUOC,I;
SIGNED INT16 SOBUOC;
UNSIGNED CHAR GIATRI_MOD;

#INT_TIMER1
VOID INTERRUPT_TIMER1()
{
BDN++;SET_TIMER1(3036);
}

CHAR NHIET[6]={" "};

VOID DS18B20A()
{
IF(TOUCH_PRESENT())
{
DOC_GIATRI_DS18B20();
CHUC_DS=((ds18a>>4)&0xff)/10;
DV_DS=((ds18a>>4)&0xff)%10;
TP1_DS=(((ds18a>>2)&0x03)*25)/10;
TP2_DS=(((ds18a>>2)&0x03)*25)%10;
}
}

VOID GM_DS1307()
{
CH_GIAY=GIAY_DS13/16;
DV_GIAY=GIAY_DS13%16;
GIAY=CH_GIAY*10+DV_GIAY;
}

void HT_DS1307()
{
IF(THU_DS13==1)

XUAT_4LED_7DOAN_4SO(0XC6,0XC8&0x7f,MA7DOAN[CH_GIAY],MA7DOAN[DV_
GIAY]);
ELSE

XUAT_4LED_7DOAN_4SO(0XFF,MA7DOAN[THU_DS13]&0x7f,MA7DOAN[CH_GIAY]
,MA7DOAN[DV_GIAY]);
}
VOID GIAI_MA_GLCD()
{
NHIET[0]=CHUC_DS+0X30;
NHIET[1]=DV_DS+0X30;
NHIET[2]=".";
NHIET[3]=TP1_DS+0X30;
NHIET[4]=TP2_DS+0X30;
}

VOID HIEN_THI_GLCD()
{
GLCD_CIRCLE(64, 32, 20, 1, 1);
glcd_text57(50,28, NHIET, 1, 0);
GDRAM_VDK_TO_GDRAM_GLCD_ALL();
}

VOID LUU_GIAI_MA_HIEN_THI_SAU_KHI_CHINH()
{
NAP_THOI_GIAN_HTAI_VAO_DS13B07();
HIEN_THI_THOI_GIAN_DS13B07();
}

VOID NHAP_NHAY_SO()
{
IF(BDN<5)
{
SWITCH (GIATRI_MOD)
{
CASE 1:
IF(THU_DS13==1)
XUAT_4LED_7DOAN_4SO(0XC6,0XC8&0x7f,0XFF,0XFF);
ELSE

XUAT_4LED_7DOAN_4SO(0XFF,MA7DOAN[THU_DS13]&0x7f,0XFF,0XFF);
BREAK;
CASE 2:
XUAT_4LED_7DOAN_4SO(0XFF,0XFF,MA7DOAN[CH_GIAY],MA7DOAN[DV_GIAY])
;
BREAK;
DEFAULT:BREAK;
}
}
ELSE
{
IF(BDN<11)
{
HT_DS1307();
}
ELSE BDN=0;
}
}

UNSIGNED INT8 HIEU_CHINH_SO_BCD_TANG(UNSIGNED INT8 X)


{
UNSIGNED INT8 Y;
Y = X;
X = X & 0X0F;
IF (X==0X0A) Y = Y + 6;
RETURN (Y);
}

UNSIGNED INT8 HIEU_CHINH_SO_BCD_GIAM(UNSIGNED INT8 X)


{
UNSIGNED INT8 Y;
Y = X;
X = X & 0X0F;
IF (X==0X0F) Y = Y - 6;
RETURN (Y);
}

VOID PHIM_MOD()
{
IF (!INPUT(MOD))
{
DELAY_MS(20);
{
IF(!INPUT(MOD))
{
IF(GIATRI_MOD<2) GIATRI_MOD++;
ELSE GIATRI_MOD=0;

WHILE (!INPUT(MOD));
}
}
}
}

VOID PHIM_UP()
{
IF(!INPUT(UP))
{
DELAY_MS(20);
IF(!INPUT(UP))
{
SWITCH (GIATRI_MOD)
{
CASE 1: IF (GIAY_DS13==0X59) GIAY_DS13=0;
ELSE
{
GIAY_DS13++;
GIAY_DS13 = HIEU_CHINH_SO_BCD_TANG(GIAY_DS13);
}
LUU_GIAI_MA_HIEN_THI_SAU_KHI_CHINH();
BREAK;
CASE 2: IF (THU_DS13==8) THU_DS13=1;
ELSE
{
THU_DS13++;
IF(THU_DS13==8) THU_DS13=1;
}
LUU_GIAI_MA_HIEN_THI_SAU_KHI_CHINH();
BREAK;

DEFAULT:BREAK;
}
WHILE(!INPUT(UP));
}
}
}

VOID PHIM_DW()
{
IF(!INPUT(DW))
{
DELAY_MS(20);
IF(!INPUT(DW))
{
SWITCH (GIATRI_MOD)
{
CASE 1: IF (GIAY_DS13==0) GIAY_DS13=0X59;
ELSE
{
GIAY_DS13--;
GIAY_DS13 = HIEU_CHINH_SO_BCD_GIAM(GIAY_DS13);
}
LUU_GIAI_MA_HIEN_THI_SAU_KHI_CHINH();
BREAK;
CASE 2: IF (THU_DS13==8) THU_DS13=1;
ELSE
{
THU_DS13--;
IF(THU_DS13==0) THU_DS13=1;
}
LUU_GIAI_MA_HIEN_THI_SAU_KHI_CHINH();
BREAK;
DEFAULT:BREAK;
}
WHILE(!INPUT(DW));
}
}
}

//!VOID GM_LCD()
//!{
//! CH_SOBUOC=SOBUOC/10;
//! DV_SOBUOC=SOBUOC%10;
//!}

VOID LCD_HIENTHI_SO_Z_TOADO_XY (SIGNED INT8 LCD_SO, SIGNED INT8 X1,


SIGNED INT8 Y1)
{
LCD_GOTO_XY(X1,Y1);
FOR (I=0;I<6;I++)
{
IF (I==3) LCD_GOTO_XY(X1+1,Y1);
LCD_DATA(LCD_SO_X[LCD_SO][I]);
}
}

VOID HT_LCD()
{
LCD_HIENTHI_SO_Z_TOADO_XY(SOBUOC/10,2,14);
LCD_HIENTHI_SO_Z_TOADO_XY(SOBUOC%10,2,17);
}

VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SETUP_LCD();
LCD_GOTO_XY(0,0);
LCD_DATA("SO BUOC:");
LCD_GOTO_XY(0,0);
LCD_COMMAND(0x40);
DELAY_US(20);
FOR (I=0;I<64;I++)
{ LCD_DATA(LCD_MA_8DOAN[I]); }

STEPMOTOR_DELAY=5;
STEPMOTOR_ONOFF=1; //DE KHOI CANH BAO

SETUP_TIMER_1(T1_INTERNAL | T1_DIV_BY_8);
SET_TIMER1(3036);
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_TIMER1);

DOC_THOI_GIAN_TU_REALTIME();
IF (MA_DS13!=MA_DS)
{
THIET_LAP_THOI_GIAN_HIEN_TAI();
NAP_THOI_GIAN_HTAI_VAO_DS13B07();
}
DOC_THOI_GIAN_TU_REALTIME();
GIAYTAM=GIAY_DS13;
GIATRI_MOD=0;

KHOI_TAO_DS18B20();
SET_TRIS_B(0X3C);
//SETUP_GLCD(GLCD_GRAPHIC_MODE);
SETUP_GLCD(GLCD_TEXT_MODE);
SETUP_GLCD(GLCD_GRAPHIC_MODE);
GLCD_MAU_NEN(0);
GLCD_CIRCLE(64,32,30,1,1);
GDRAM_VDK_TO_GDRAM_GLCD_ALL();

while(true)
{
DS18B20A();
GIAI_MA_GLCD();
HIEN_THI_GLCD();

DOC_THOI_GIAN_TU_REALTIME();
IF(GIAYTAM!=GIAY_DS13)
{
GIAYTAM = GIAY_DS13;
}
GM_DS1307();
FOR (K=0; K<10000;K++)
{
PHIM_MOD();
PHIM_UP();
PHIM_DW();
}
IF(GIATRI_MOD!=0) NHAP_NHAY_SO();
ELSE HT_DS1307();

IF(GIAY<20)
{
STEP_MOTOR_QUAY_THUAN_FS();
SOBUOC++;
DELAY_MS(STEPMOTOR_DELAY);
IF(SOBUOC>99) SOBUOC=0;
}
ELSE
{
STEP_MOTOR_QUAY_NGHICH_FS();
SOBUOC--;
DELAY_MS(STEPMOTOR_DELAY);
IF(SOBUOC<0) SOBUOC=99;
}
//GM_LCD();
HT_LCD();
}
}
BAI_TEST_NUT_NHAN
#INCLUDE <TV_PICKIT2_SHIFT_1.C>
#INCLUDE <TV_PICKIT2_SHIFT_KEY4X4_138.C>
UNSIGNED INT8 TTCT=0;
UNSIGNED INT16 Y;
SIGNED INT8 MP;
VOID PHIM_BT0()
{
IF(!INPUT(UP))
{
DELAY_MS(100);
IF(!INPUT(UP))
{
TTCT=1;
WHILE(!INPUT(UP));
}
}
}
VOID PHIM_BT1()
{
IF(!INPUT(DW))
{
DELAY_MS(100);
IF(!INPUT(DW))
{
TTCT=2;
WHILE(!INPUT(DW));
}
}
}
VOID PHIM_BT2()
{
IF(!INPUT(CLR))
{
DELAY_MS(100);
IF(!INPUT(CLR))
{
TTCT=3;
WHILE(!INPUT(CLR));
}
}
}
VOID PHIM_BT3()
{
IF(!INPUT(MOD))
{
DELAY_MS(100);
IF(!INPUT(MOD))
{
TTCT=4;
WHILE(!INPUT(MOD));
}
}
}
VOID MAIN()
{
SET_UP_PORT_IC_CHOT();
SET_TRIS_B(0X3C);
WHILE(TRUE)
{
PHIM_BT0();
PHIM_BT1();
PHIM_BT2();
PHIM_BT3();
IF(TTCT==1)
{
Y=0X00000001;
XUAT_32LED_DON_1DW(Y);
}
IF(TTCT==2)
{
Y=0X00000003;
XUAT_32LED_DON_1DW(Y);
}
IF(TTCT==3)
{
Y=0X00000007;
XUAT_32LED_DON_1DW(Y);
}
IF(TTCT==4)
{
Y=0X0000000F;
XUAT_32LED_DON_1DW(Y);
}
/////////////////////////////////////////////

MP = KEY_4X4_DW();
DELAY_MS(100);
IF(MP != 0XFF)
{
IF(MP==10)
{
Y=0XF0000000;
XUAT_32LED_DON_1DW(Y);
}
IF(MP==11)
{
Y=0X0F000000;
XUAT_32LED_DON_1DW(Y);
}
IF(MP==12)
{
Y=0X00F00000;
XUAT_32LED_DON_1DW(Y);
}
IF(MP==13)
{
Y=0X000F0000;
XUAT_32LED_DON_1DW(Y);
}
IF(MP==14)
{
Y=0X0000F000;
XUAT_32LED_DON_1DW(Y);
}
IF(MP==15)
{
Y=0X00000F00;
XUAT_32LED_DON_1DW(Y);
}
XUAT_4LED_7DOAN_4SO(0XFF,0XFF,0XFF,MA7DOAN[MP]);
}
}
}

You might also like