Đây là sơ đồ mạch
đây là đoạn code mình đã tesk và cảm thấy khá ổn post lên chia sẻ cùng anh em! ai cao thủ thì chém nhẹ thôi em mới học!
đây là đoạn code mình đã tesk và cảm thấy khá ổn post lên chia sẻ cùng anh em! ai cao thủ thì chém nhẹ thôi em mới học!
Code:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Code C Clock Digital has Time Changer System (Using 6 SEG With 74LS47) // Microcontroller: AT89S52 // Programmer : quanghien_bk // Club : TAREG // Date: 21/04/2009 //************************************************************************************************************************************************************************* //&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& #include<reg51.h> sbit start=P3^3; sbit tang=P3^2; sbit chon=P3^0; sbit ok=P3^1; sbit giay=P3^4; sbit phut=P3^5; sbit gio=P3^6; // delay 1s**************************************************************************************************************************************************************** void delay(float x) { unsigned char i; for (i=0;i<10*x;i++) { TMOD=0x01; TH0=0x0; TL0=0xCE; TF0=0; TR0=1; while(!TF0); TR0=0; } } // Ham chinh****************************************************************************************************************************************************** //**************************************************************************************************************************************************************** void main() { int i,j,k; P3=P2=P1=P0=0; change : // chinh thoi gian while(1) { // an chon de bat dau chinh giay if(chon==1) { giay: // ham chinh giay giay=1; if(giay==1) { while(1) { if(tang==1) // an tang de tang so { if(P0==0x59) P0=0x00; if(( P0&0x0F)==0x09) { P0=P0&0xF0; P0=P0+0x10; } else P0++; delay(0.4); } if(ok==1) {delay(1); break;} // an Ok de thoat khoi while khi ko can chinh giay nua if (start==1) goto start; // an Start de dong ho bat dau chay } gio=0; phut=1; goto phut; // chuyen xang chinh phut } } phut: // ham chinh phut if(phut==1) { while(1) { if(tang==1) // an tang de tang so { if(P1==0x59) P1=0x00; if(( P1&0x0F)==0x09) { P1=P1&0xF0; P1=P1+0x10; } else P1++; delay(0.4); } if(ok==1){delay(1); break;} // an Ok de thoat khoi while khi ko can chinh giay nua if(start==1)goto start; // an Start de dong ho bat dau chay } giay=0;gio=1;goto gio; // chuyen xang chinh gio } gio: // ham chinh gio if(gio==1) { while(1) { if(tang==1) // an tang de tang so { if(P2==0x23) P2=0x00; if(( P2&0x0F)==0x09) { P2=P2&0xF0; P2=P2+0x10; } else P2++; delay(0.5); } if(ok==1){delay(1); break;} // an Ok de thoat khoi while khi ko can chinh gio nua if (start==1)goto start; } // an Start de dong ho bat dau chay phut=0;giay=1;goto giay; // chuyen ve chinh giay } if (start==1) goto start; // an Start de dong ho bat dau chay } // dong ho bat dau chay**************************************************************************************************************************************** //************************************************************************************************************************************************************* start: while(1) { for(k=0;k<24;k++) { for(j=0;j<60;j++) { for(i=0;i<60;i++) { if(P0==0x59){P0=0x00; break;} if(( P0&0x0F)==0x09) { P0=P0&0xF0; P0=P0+0x10; } else P0++; delay(1); if(chon==1) goto change ; // chuyen ve ham chinh thoi gian } P0=0; if(P1==0x59) {P1=0x00;break;} if((P1&0x0F)==0x09) { P1=P1&0xF0; P1=P1+0x10; } else P1++; } P1=0; if(P2==0x24) P2=0x00; if((P2&0x0F)==0x09) { P2=P2&0xF0; P2=P2+0x10; } P2++; if(P2==0x24) P2=0x00; } } } // Ket thuc chuong trinh ************************************************************************************************************************************************** // http://tareg.plus.vn/forum // angel_of_me2406@yahoo.com
Comment