You are on page 1of 12

1) Các ct chay tự động

#include<tv_pickit2_shift_32led_don.c>
Unsigned int8 ttct;

Sang_tat_32led(10,0);
Sang_tat_dan_pst_32led(10,0);
Sang_tat_dan_tsp_32led(10,0);
Sang_tat_dan_ngoai_vao_32led(10,0);
Sang_tat_dan_trong_ra_32led(10,0);
Sang_don_pst_32led(10,0);
Diem_sang_dich_trai_mat_dan_32led(10,0);
Sang_don_tsp_32led(10,0);
Diem_sang_dich_phai_mat_dan_32led(10,0);
Sang_tat_dan_trai_sang_phai_2x16led(40,0);
Sang_tat_dan_ phai_sang_trai_2x16led(40,0);
Diem_sang_di_chuyen_pst_32led(40,0);
Diem_sang_di_chuyen_tsp_32led(40,0);
Sang_don_tnt_32led(40,0);
Sang_don_ttr_32led(40,0);
2) Xuất led đơn
Xuat_32led_don_4byte(a, b, c, d);
Xuat_32led_don_2word(a, b);
Xuat_32led_don_1dw (a);

3) 32led sáng tắt dần từ p->t xài If

void sang_tat_dan_pst_32led(unsigned int8 dl)


{
if(dem<32)
{
xuat_32led_don_1dw(y);
y =(y<<1)+1;
dalay_tuy_y(dl);
dem++;
}
else if(dem<64)
{
xuat_32led_don_1dw(y);
y =(y<<1);
dalay_tuy_y(dl);
dem++;
}
else
{
dem=0;
y=0;
}
}

4) Sáng dồn t->p rồi p->t 32led


Sang_don_pst_32led(10,0);
5) Tổng hợp hiệu ứng 32led phím up-dw-clr 7 hiệu ứng
Unsigned int8 ttct;
void phim_up()
{
if(!input(up) && (ttct<7))
{
delay_ms(10);
if(!input(up))
{
ttct++;
while(!input(up));
}
}
}
///xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void phim_dw()
{
if(!input(dw) && (ttct>1))
{
delay_ms(10);
if(!input(dw))
{
ttct--;
while(!input(dw));
}
}
}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
void phim_clr()
{
if(!input(clr) && (ttct>1))
{
ttct=1;
reset_toan_bo_bien();
}
}
//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

6) Bàn phím 4x4

#include<tv_pickit2_shift_key4x4_138.c>
Unsigned int8 mp;
Set_tris_b(0x3c);
Mp = key_4x4_dw();

1) Các hàm xuất 4 led 7 đoạn

Xuat_4led_7doan_4so(a, b, c, d );
Xuat_4led_7doan_3so(a, b, c);
Xuat_4led_7doan_2so(a, b);
Xuat_4led_7doan_1so(a);
Xuat_4led_7doan_giaima_xoa_so0(a);

2) Counter

Unsigned int8 t0;

Setup_timer_0(t0_ext_l_to_h|t0_div_1|t0_8_bit);
Set_timer0(đặt trước);
T0=get_timer0();

3) Timer định thời 1s

Signed int8 giay,bdn;

Setup_timer_1(t1_internal | t1_div_by_8);
Set_timer1(3036);
Enable_interrupts(int_timer1);
Enable_interrupts(global);
Giay=0; bdn=0;

While(true)
{
If(bdn<10) hien_thi_8led_7doan_quet();
Else
{
Bdn = bdn-10;
Giay++;
If(giay==60) giay=0;
}
}

#int_timer1
Void ngat_TM1()
{
Bdn++;
Set_timer1(3036);
}
4) Timer h-m-s tùy chỉnh 3 nút nhấn và hiển thị trên 8
led quét (tối ưu nhất)
signed int8 gio,phut,giay,bdn,gia_tri_mod,dem_tg_exit=0;

void giai_ma_gan_cho_8led_quet()
{
led_7dq[0] = ma7doan[giay%10];
led_7dq[1] = ma7doan[giay/10];
led_7dq[2] = 0xbf;
led_7dq[3] = ma7doan[phut%10];
led_7dq[4] = ma7doan[phut/10];
led_7dq[5] = 0xbf;
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;
}

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;}
}
void phim_mod()
{
if (phim_bt1(200))
{
gia_tri_mod++;
if (gia_tri_mod>=4) gia_tri_mod=0;
dem_tg_exit=0;
}
}

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;
}
}
}

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;
}
}
}

giay=0; phut=0; gio=0;


bdn=0;

while(true)
{
if(bdn<10)
{
if(gia_tri_mod!=0)
{
if((bdn==0) && (input(bt0)) && (input(bt2)))
tat_2led_chinh();
else if(bdn==3) giai_ma_gan_cho_8led_quet();
}
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;
}
}
}
giai_ma_gan_cho_8led_quet();
}
}

#int_timer1
void ngat_TM1()
{
bdn++;
set_timer1(3036);
}

1) Các hàm xuất led quét


xuat_8led_7doan_quet_1(mã quét,ma7doan[so]);

stt 0 1 2 3 4 5 6 7
Mã 0xfe 0xfd 0xfb 0xf7 0xef 0xdf 0xbf 0x7f
quét

Xuat_8led_7doan_quet_2(stt , ma7doan[so]);
Stt : MSB(7)-> LSB(0)

Led_7dq[0->7]=ma7doan[so];
Hien_thi_8led_7doan_quet();
// stt: MSB(7)->LSB(0)

1) LCD
a) Hiển thị bất cứ số liệu lên lcd
#include<tv_pickit2_shift_lcd.c>

Setup_lcd();
Lcd_command();
Lcd_data(); // so+0x30 , chu+0x37

b) Hiển thị kí tự tự tạo


Kẻ bảng 5 cột , 8 hàng để mã hóa kí tự cần tạo
Hang2[]={giá trị mã từ trên xuống, ,..};

Void main()
{
Lcd_command(0x40);
For(i=0; I < số mã lưu vào hang2[]; i++)
{ lcd_data(hang2[i]); }

Lcd_commad(vị trí muốn xuất);


Lcd_data(x); //với 0<=x<=7
}
c) Font số to
void lcd_hienthi_so_z_toado_xy(signed int8 lcd_so, x1 ,
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()
{
Lcd_command(0x40);
For(i=0;i<64;i++)
{
Lcd_data(lcd_ma_8doan[i]);
}
Lcd_hienthi_so_z_toado_xy(so, hàng, cột);
}
2) GLCD
#INCLUDE <tv_pickit2_shift_glcd128x64.c>
Setup_glcd(glcd_text_mode);
hoặc setup_glcd(glcd_graphic_mode);

glcd_mau_nen(0);
// 0 màu xanh và 1 màu trắng

glcd_command();
glcd_data(); // điền giống lcd

glcd_xuat_anh(dai, rong, xht, yht);


glcd_line(x1, y1, x2, y2);
glcd_circle(x, y, r, fill, màu);
gdram_vdk_to_gdram_glcd_all();

You might also like