下面是我編的讀icl7135的源程序,是串行接法,晶振6M,icl7135是種頻是從單片機ALE端引出后四分之一分頻得到的頻率.
- #include<reg52.h>
- #include<math.h>
- #define uchar unsigned char
- #define unit unsigned int
- sbit p32=P3^2;
- uchar code dispbit[]={0xfe,0xfd,0xfb,0xf7,0xef}; // 定義位選
- uchar code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//定義段碼
- uchar dispbuf[5]={0,0,0,0,0,}; //顯示緩沖
- uchar dispcount,t;
- unit x,y;
- bit flag;
- void main()
- {
- TMOD=0x9;
- TH0=0;
- TL0=0;
- TR0=1;
- ET0=1;
- IT0=1;
- EX0=1;
- EA=1;
- while(1)
- {
- x=y;
- dispbuf[4]=x/10000;
- x=x%10000;
- dispbuf[3]=x/1000;
- x=x%1000;
- dispbuf[2]=x/100;
- x=x%100;
- dispbuf[1]=x/10;
- x=x%10;
- dispbuf[0]=x;
- P0=dispcode[dispbuf[dispcount]];
- P2=dispbit[dispcount];
- dispcount++;
- if(dispcount==4)
- {
- dispcount=0;
- }
- for(t=0;t<50;t++);
- }
- }
- void int0(void) interrupt 0
- {
- if(flag==0)
- {
- flag=1;
- TH0=0;
- TL0=0;
- TR0=1;
- }
- else
- {
- flag=0;
- TR0=0;
- y=TH0*256+TL0;
- y=y-10001;
- TH0=0;
- TL0=0;
- }
- }
復制代碼 |