Professional Documents
Culture Documents
1) Các CT Chay T Đ NG: Xuat - 32led - Don - 4byte (A, B, C, D) Xuat - 32led - Don - 2word (A, B) Xuat - 32led - Don - 1dw (A)
1) Các CT Chay T Đ NG: Xuat - 32led - Don - 4byte (A, B, C, D) Xuat - 32led - Don - 2word (A, B) Xuat - 32led - Don - 1dw (A)
#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);
#include<tv_pickit2_shift_key4x4_138.c>
Unsigned int8 mp;
Set_tris_b(0x3c);
Mp = key_4x4_dw();
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
Setup_timer_0(t0_ext_l_to_h|t0_div_1|t0_8_bit);
Set_timer0(đặt trước);
T0=get_timer0();
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];
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;
}
}
}
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);
}
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
Void main()
{
Lcd_command(0x40);
For(i=0; I < số mã lưu vào hang2[]; i++)
{ lcd_data(hang2[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
1) STEP_MOTOR
#include<tv_pickit2_shift_step_motor.c>
fullstep
step_motor_quay_thuan _fs();
step_motor_quay_nghich_fs();
motor_step_run_fs(); // stepmotor_tn=1 thuan , 0 nghich
delay_ms(stepmotor_delay);
halfstep
step_motor_quay_thuan _hs();
step_motor_quay_nghich_hs();
motor_step_run_hs();
// stepmotor_tn=1 thuan , 0 nghich
delay_ms(stepmotor_delay);
Dừng step-motor thì ta không gọi ct chạy ra.
2) DC_MOTOR
#include<tv_pickit2_shift_dc_motor.c>
Void main()
{
dc_motor_enable();
dc_motor_stop();
}
While(true)
{
dc_motor_quay_thuan();
dc_motor_quay_nghich();
dc_motor_stop();
Void main()
{
dc_enable=1;
output_low(pin_c1);
xuat_buzzer_relay();
setup_ccp1(ccp_pwm);
setup_timer_2(t2_div_by_16,249,1);
duty=0;
pwm_capso=0;
xuat_4led_7doan_giaima_xoa_so0(pwm_capso);
set_pwm1_duty(duty);
}
4) ENCODER
unsigned int16 t1,t1_tam;
void main()
{
setup_timer_1(t1_external_sync| t1_div_by_1);
set_timer1(0);
t1=t1_tam=0;
giai_ma_gan_cho_8led_quet_16_xoa(t1);
While(true)
{
t1=get_timer1();
if(t1!=t1_tam)
{
giai_ma_gan_cho_8led_quet_16_xoa(t1);
t1_tam=t1;
}
hien_thi_8led_7doan_quet();
}
}