/*查询法实现AD转换,接4位7段共阴数码管数码管,单片机P00~P03接位选,P20~P27接段选,ALE接CD4040分频, 频率为500kHz,再接到ICL7135的CLOCKIN上。稳压管为TCL431,通过多圈电位器给ICL7135的参考电压分为1V, ICL7135的负电压端通过ICL7660来供给(接近-5V就行了),ICL7135的电容要用CBB电容,质量好一些。 有一个值得注意的问题,单片机、显示、还有7135的模块要共地。 7135是四位半的A/D,但是我只用了四位显示数码管,省略最低位,程序如下,共参考 */
#include<reg52.h> #define uchar unsigned char #define uint unsigned int sbit BUSY=P3^2; uint tt,temp; uchar code table[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f}; void delay(uchar z) { uchar x,y; for(x=20;x>0;x--) for(y=z;y>0;y--); } void init() { EA=1; TMOD=0x09; TH0=0; TL0=0; ET0=1; // IT0=1; } void main() { uint i; init(); while(1) { while(BUSY); TH0=0; TL0=0; TR0=0; while(!BUSY); TR0=1; while(BUSY); TR0=0; temp=(TH0*256+TL0)/2-10001;
for(i=0;i<3;i++) { P2=table[temp/10%10]; P0=0xf7; delay(10); P2=table[temp/100%10]; P0=0xfb; delay(10); P2=table[temp/1000%10]; P0=0xfd; delay(10); P2=table[temp/10000%10]; P0=0xfe; delay(10); P0=0xff; } } }
/*简单的显示了转换后的前四位整数,忽略小数点,仅供参考*/