TYX-ADC0804是中山市添翼興電子科技有限公司推出的一款ADC芯片,與美國國家半導體公司(national semiconductor)的ADC0804芯片功能相似,多數情況下可以平替,無需更改程序,一次AD轉換時間不超過1mS。TYX-ADC0804提供SOP16封裝,可通過PCB轉換成與ADC0804引腳對應的DIP20封裝。TYX-ADC0804的功能引腳圖如下: file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.png
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png 轉為ADC0804引腳對應的DIP20封裝的原理圖如下:file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image006.png 參考程序如下(主控STC89C52RC,晶振11.0592M。如用高速單片機,可在操作時序加延時) #include #include #define AD_DATA P0 sbit DIG1= P3^4;//數碼管第1位 sbit DIG2= P3^5;//數碼管第2位 sbit DIG3= P3^6;//數碼管第3位 sbit DIG4= P3^7;//數碼管第4位 sbit ADC_CS= P2^0; sbit ADC_RD= P2^1; sbit ADC_WR= P2^2; sbit INTR= P2^3; unsigned charLED_data[4]={0xff,0xff,0xff,0xff}; unsigned char consttable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //0 1 2 3 4 5 6 7 8 9 void tm0_isr()interrupt 1 { static unsigned char i=0; TH0 = (65536 - 2000) / 256; TL0 = (65536 - 2000) % 256; switch(i) { case 0x01 : { DIG4 = 1; LED_DATA = LED_data[0]; DIG1 = 0; break; } case 0x02 : { DIG1 = 1; LED_DATA = LED_data[1]; DIG2 = 0; break; } case 0x03 : { DIG2 = 1; LED_DATA = LED_data[2]; DIG3 = 0; break; } case 0x04 : { DIG3 = 1; LED_DATA = LED_data[3]; DIG4 = 0; break; } } i++; if(i>4)i=1; } void main() { unsigned char temp; //定時器0初始化 TMOD = TMOD & 0xf0; TMOD = TMOD | 0x01; TH0 = (65536 - 2000) / 256; TL0 = (65536 - 2000) % 256; TR0 = 1; ET0 = 1; EA=1; while(1) { ADC_CS = 0; _nop_(); ADC_WR = 0; //啟動AD轉換 _nop_(); ADC_WR = 1; AD_DATA=0xff; //讀取P1口之前先給其寫全1 while(INTR);//等待轉換完成 ADC_RD = 0; //AD讀使能 temp = AD_DATA; //AD數據讀取賦給P1口 ADC_RD = 1; ADC_CS = 1; //關閉ADCS ADC_WR = 0; LED_data[0] = table[temp/100]; LED_data[1] = table[temp%100/10]; LED_data[2] = table[temp%10]; LED_data[3] = 0xff; } }
|