Code:
/*==================Bo tien xu li===================*/ #include<AT89x51.h> // Dinh kem file thu vien /*=================Khai bao bien toan cuc=============*/ sfr dataP = 0x90; // du lieu la P1 // ma 7 thanh tu 0 den 9 la // 0x81h,0xcfh,0x92h,0x86h,0xcch,0xa4,0xa0h,0x8fh,0x80h,0x84h. sbit ctac = P3^4; unsigned char dem=0; unsigned int i=0; /*====================Khai bao ham==================*/ /*----------------------------ham delay========================*/ void delay(char time) { while(time--) { TH0=0x3C; TL0=0xAF; TR0=1; while(TF0==0); TF0=0; TR0=0; } } /*----------------------chuong trinh con kiem tra co phim nhan-------------*/ void phim_an(void) { if(ctac==0) //co phim nhan { delay(1); //chong rung phim while(ctac==0); //Cho nha phim delay(1); // chong rung phim dem++; //tang bien dem if(dem==10) dem=0; } } /*----------------hien thi so lan an phim------------------------------------------*/ void solan_an(void) { switch(dem) { case 0: {dataP=0x81;break;} case 1: {dataP=0xcf;break;} case 2: {dataP=0x92;break;} case 3: {dataP=0x86;break;} case 4: {dataP=0xcc;break;} case 5: {dataP=0xa4;break;} case 6: {dataP=0xa0;break;} case 7: {dataP=0x8f;break;} case 8: {dataP=0x80;break;} case 9: {dataP=0x84;break;} }; } void auto_time(void) { if(dem==10)dem=0; dem++; } /*-------------------------chuong trinh chinh-------------------------------------------*/ // ngat void ngat(void) interrupt 1 using 2 { TR0=0; TH0=0x3C; TL0=0xAF; dataP=0x84; TR0=1; } void main(void) { dataP = 0x81; // ban dau la so 0 TMOD=0x01; while(1){ // phim_an(); IE=0x82; auto_time(); solan_an(); delay(50); } }
- và với việc làm đơn giản thế, em đã code ra đoạn trên, nhưng mà không chạy được, nó cứ hiện số 9 hoài không nhảy ra ngoài tiếp được.
mong a e giúp đỡ. (vì chưa hiểu rõ về các khai báo sử dụng ngắt nên sai xót gì a e bỏ qua ). thank all!
Comment