![]() |
|
Tài trợ cho PIC Vietnam |
PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#4 |
Đệ tử 1 túi
Tham gia ngày: Mar 2006
Bài gửi: 15
: |
![]() Đây là code chính của trương trình...ko đính kèm đc file nên các bạn xem tạm vì code quá dài...:D
ngoài ra thư viện cho LCD mình để life riêng,các chương trình trong menu mình cũng để riêng.. ========================================= Code:
#include <16F877A.h> #device *=16 adc=10 #use delay(clock=20M) #define lcd_4bit #include <lcd_lib.c> #include <menu_list.c> #include <2416.c> #fuses NOWDT,HS,NOPUT,NOPROTECT,NODEBUG,NOBROWNOUT,NOLVP,NOCPD,NOWRT #priority int_timer2,int_timer0 /*******************************/ #bit OE = 0x08.7 /*----------*/ #bit c0 = 0x07.0 #bit c1 = 0x07.1 #bit c2 = 0x07.2 #bit c3 = 0x07.3 #bit c4 = 0x07.4 #bit c5 = 0x07.5 #bit c6 = 0x07.6 #bit c7 = 0x07.7 /*--------------*/ #byte portB=0x06 #byte portC=0x07 #byte portD=0x08 /*---------Dinh nghia Marco------------*/ #define kiemtra (c4+(c5<<1)+(c6<<2)+(c7<<3)) #define start_quetphim enable_interrupts(int_timer2) #define stop_quetphim disable_interrupts(int_timer2) /*---------------------------------------------*/ unsigned int1 chon_play; unsigned int8 a,b; unsigned int8 phim,chon_ct,chon_page,backup; unsigned int8 data; const unsigned char msg_ask[]={" YES 1 NO 2 "}; /*-----------------------------------------------------------------*/ /*----------------------cac chuong trinh con-----------------------*/ /*-----------------------------------------------------------------*/ void muiten(void){data=0x7e;display();} void eraser(void){data=' ';display();} /*----------------------*/ void contro(unsigned int8 dong,cot){ moveto(dong,cot);muiten(); delay_ms(20); moveto(dong,cot);eraser(); delay_ms(20); } /*-----Loi Chao------*/ void wellcome(void){ const unsigned char msg1[]={"BAN QUYEN SP CUA"}; const unsigned char msg2[]={"Slowlove-(29/06)"}; for(a=0;msg1[a]!='\0';++a){data=msg1[a];display();} moveto(2,1); for(a=0;msg2[a]!='\0';++a){data=msg2[a];display();} delay_ms(800); } /*------------------*/ void cau_hoi_xac_nhan(void){ const unsigned char msg1[]={"Co muon chay CT?"}; clear(); for(a=0;msg1[a]!='\0';++a){data=msg1[a];display();} moveto(2,1); for(a=0;msg_ask[a]!='\0';++a){data=msg_ask[a];display();} } /*------------------*/ void thong_bao_complete(void){ const unsigned char msg[]={"Complete !"}; clear();moveto(1,4); for(a=0;msg[a]!='\0';++a){data=msg[a];display();} //Complete delay_ms(200); } void thong_bao_resetpage(void){ const unsigned char msg1[]={"GO \"BEGIN_PAGE\" ?"}; clear(); for(a=0;msg1[a]!='\0';++a){data=msg1[a];display();} moveto(2,1); for(a=0;msg_ask[a]!='\0';++a){data=msg_ask[a];display();} } /*----------------------------------------------------------------------------*/ /*-----------------------------Chuong trinh chinh-----------------------------*/ /*----------------------------------------------------------------------------*/ #include <program.c> void main(void){ setup_timer_0(rtcc_internal|rtcc_div_256); setup_timer_2(t2_div_by_16,255,8); enable_interrupts(int_timer0); disable_interrupts(int_timer2); enable_interrupts(global); /*---------Cac lenh khoi tao ban dau-------*/ setup_adc_ports(no_analogs); set_tris_a(0); set_tris_c(0xf0); set_tris_d(0x00); portC=portD=0; OE=0; /*--------Cac lenh hien thi ban dau--------*/ khoitao(1,0); cursor(1,0,0); wellcome(); /*****************phan xu li chinh cua chuong trinh*********************/ while(true){ clear(); while(true) { start_quetphim; menu_display(chon_page); while((phim==0)||(phim==1)||(phim==2)); phim=4; while(true) { if((phim==1)||(phim==2))break; switch(phim){ case 0:goto thuc_hien_chuong_trinh; case 4:stop_quetphim,backup=phim,contro(1,1),start_quetphim;break; case 5:stop_quetphim,backup=phim,contro(1,9),start_quetphim;break; case 6:stop_quetphim,backup=phim,contro(2,1),start_quetphim;break; case 8:stop_quetphim,backup=phim,contro(2,9),start_quetphim;break; default:stop_quetphim,phim=backup;} } stop_quetphim; if(phim==2)++chon_page; if((phim==1)&&(chon_page>0))--chon_page; if(chon_page==8)chon_page=0; } /*-----------------------------------------------------------------------------*/ thuc_hien_chuong_trinh: if(chon_page<7&&read_eeprom(1)) { unsigned int8 backup_chon; cau_hoi_xac_nhan(); while(phim==0); stop_quetphim; backup_chon=4; while(true) { if(phim==0)break; switch(phim){ case 4:stop_quetphim,backup_chon=phim,chon_play=0,contro(2,2),start_quetphim;break; case 5:stop_quetphim,backup_chon=phim,chon_play=1,contro(2,9),start_quetphim;break; default:stop_quetphim,phim=backup_chon;} } } stop_quetphim; if(chon_play==0||read_eeprom(1)==0||chon_page==7) { switch(backup) { case 4:chon_ct=(chon_page<<2)+1;break; case 5:chon_ct=(chon_page<<2)+2;break; case 6:chon_ct=(chon_page<<2)+3;break; case 8:chon_ct=(chon_page<<2)+4;break; } chay_chuongtrinh(chon_ct); thong_bao_complete(); //complete if(chon_page>0&&chon_page<7&&read_eeprom(0)) { unsigned int8 backup_chon; unsigned int1 chon_reset; thong_bao_resetpage(); start_quetphim; while(phim==0); backup_chon=4; while(true) { if(phim==0)break; switch(phim){ case 4:stop_quetphim,backup_chon=phim,chon_reset=0,contro(2,2),start_quetphim;break; case 5:stop_quetphim,backup_chon=phim,chon_reset=1,contro(2,9),start_quetphim;break; default:stop_quetphim,phim=backup_chon;} } stop_quetphim; if(chon_reset==0)chon_page=0; } } } } /*-----------------------------------------------------------------*/ /*------------Cac chuong trinh con phuc vu ngat timer--------------*/ /*-----------------------------------------------------------------*/ #int_ext void ext(void){} /*--------------------------*/ #int_timer0 void chose(void){ static unsigned int8 x,value0; ++value0; if(value0==10){ output_a(3<<x++); if(bit_test(x,3))x=0; value0=0; } } /*--------------------------*/ #int_timer1 void timer1(void){} /*--------------------------*/ #int_timer2 void quet(void){ portC=1; switch(kiemtra){ case 1:phim=12;break; case 2:phim=13;break; case 4:phim=14;break; case 8:phim=15;break; default:phim=16;} portC=2; switch(kiemtra){ case 1:phim=8;break; case 2:phim=9;break; case 4:phim=10;break; case 8:phim=11;break;} portC=4; switch(kiemtra){ case 1:phim=4;break; case 2:phim=5;break; case 4:phim=6;break; case 8:phim=7;break;} portC=8; switch(kiemtra){ case 1:phim=0;break; case 2:phim=1;break; case 4:phim=2;break; case 8:phim=3;break;} portC=0; } /*--------------------------*/ thay đổi nội dung bởi: slowlove, 07-01-2010 lúc 10:34 AM. |
![]() |
![]() |
|
|