|
51單片機(jī)芯片測(cè)試儀,能對(duì)常用的14引腳以內(nèi)的74系列芯片進(jìn)行檢測(cè)
自動(dòng)檢測(cè): 按下鍵盤上的自動(dòng)檢測(cè)鍵并按確定鍵確認(rèn)開始自動(dòng)檢測(cè),并將測(cè)試結(jié)果顯示在OLED
手動(dòng)檢測(cè): 以知芯片信號(hào)的情況下,輸入要測(cè)試的芯片型號(hào),并按確認(rèn)鍵確認(rèn),開始檢測(cè)并將測(cè)試結(jié)果顯示在OLED顯示器上
OLED顯示器顯示內(nèi)容
芯片型號(hào)
芯片名稱
表達(dá)式
測(cè)試結(jié)果
Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
0.png (76.14 KB, 下載次數(shù): 80)
下載附件
2017-6-30 02:48 上傳
0.png (54.62 KB, 下載次數(shù): 74)
下載附件
2017-6-30 02:50 上傳
0.png (51.71 KB, 下載次數(shù): 75)
下載附件
2017-6-30 02:47 上傳
單片機(jī)源程序如下:
- #include<reg52.h>
- #include<keys.h>
- #include<lcd12864.h>
- #include<port.h>
- #define port1 P1 //硬件連接引腳
- #define port2 P2 //硬件連接引腳
- #define led P0^0
- //u8 temp1=0; //port1暫存
- //u8 temp2=0; //port2暫存
- u8 chip[3];
- u8 chiptest14(u8 *chip);//14引腳芯片檢測(cè)函數(shù)
- void zijian();//自動(dòng)檢測(cè)函數(shù)
- u8 code tip1[]="您好,歡迎使用此產(chǎn)品,該產(chǎn)品可以對(duì)常見的74系列芯片進(jìn)行檢測(cè)。 ";
- u8 code tip2[]="請(qǐng)將芯片放入芯片底座中按開始鍵開始";
- u8 code tip3[]="請(qǐng)輸入芯片型號(hào),按回車鍵結(jié)束。";
- u8 code tip4[]="請(qǐng)選擇自檢或輸入模式";
- u8 code tip5[]="輸入鍵或自檢鍵按下";
- u8 code tip6[]="自檢中,請(qǐng)稍等...";
- u8 code tip7[]="請(qǐng)輸入芯片型號(hào),按檢測(cè)鍵開始檢測(cè)";
- u8 code tip8[]="輸入開始檢測(cè)啦";
- u8 code tip9[]="芯片型號(hào):";
- u8 code tip11[]="檢測(cè)失敗";
- sbit p00=P0^0;
- sbit p01=P0^1;
- sbit p02=P0^2;
- sbit p03=P0^3;
- sbit p04=P0^4;
- sbit p05=P0^5;
- sbit p06=P0^6;
- sbit p07=P0^7;
- u8 code LS00[4][2]={
- {0x3f,0x3f}, //第一次輸出 p1輸出 p2輸出
- {0x1b,0x1b}, //第一次輸入 p1輸入 p2輸入
- {0x24,0x24}, //第二次輸出 p1輸出 p2輸出
- {0x24,0x24} //第二次輸入 p1輸入 p2輸入
- };
- u8 code LS04[4][2]={
- {0x2a,0x2a}, //第一次輸出 p1輸出 p2輸出
- {0x2a,0x2a}, //第一次輸入 p1輸入 p2輸入
- {0x3f,0x3f}, //第二次輸出 p1輸出 p2輸出
- {0x15,0x15} //第二次輸入 p1輸入 p2輸入
- };
- u8 code LS08[4][2]={
- {0x15,0x15}, //第一次輸出 p1輸出 p2輸出
- {0x11,0x11}, //第一次輸入 p1輸入 p2輸入
- {0x00,0x00}, //第二次輸出 p1輸出 p2輸出
- {0x00,0x00} //第二次輸入 p1輸入 p2輸入
- };
- u8 code LS32[4][2]={
- {0x15,0x15}, //第一次輸出 p1輸出 p2輸出
- {0x35,0x35}, //第一次輸入 p1輸入 p2輸入
- {0x2a,0x2a}, //第二次輸出 p1輸出 p2輸出
- {0x2e,0x2e} //第二次輸入 p1輸入 p2輸入
- };
- void main()
- {
- u8 count;
- unsigned int k,j;
- //lcd12864_init() ;
- display(tip1,64);//顯示歡迎詞 1
- for(k=0;k<20000;k++)
- for(j=0;j<40;j++);
-
- display(tip2,34);//顯示說明 2
- while(1) // 3
- {
- while(getkeys()==0||keyvalue!=1);//等待開始按鍵按下,未按下時(shí)等待 4
- display(tip4,20);//提示自檢或輸入模式選擇 5
- while(getkeys()!=2&&getkeys()!=3);//等待輸入鍵按下
- display(tip5,18);//輸入鍵或自檢鍵按下
- if(keyvalue==2) //這是自檢程序
- {
- display(tip6,17); //正在進(jìn)行自檢,請(qǐng)稍等
- //自動(dòng)檢測(cè)程序
- zijian();
- }
- if(keyvalue==3) //這是輸入程序
- {
- display(tip7,32);//請(qǐng)輸入芯片型號(hào),
- if(getkeys()!=4)//當(dāng)檢測(cè)按鍵沒有按下時(shí) 芯片輸入階段
- {
- display_x(tip9,4,10); //芯片型號(hào)提示
- for(count=0;count<3;count++)//獲得輸入的芯片型號(hào)
- {
-
- while(getkeys()==0||keyvalue==1||keyvalue==2||keyvalue==3||keyvalue==4);//當(dāng)數(shù)字區(qū)沒有按下時(shí)等待
- while(keyvalue!=0)//進(jìn)行按鍵轉(zhuǎn)換
- {
- switch(keyvalue)
- {
- case 0://沒有按鍵按下
- break;
- case 1://1號(hào)按鍵按下
- break;
- case 2://2號(hào)按鍵按下
- break;
- case 3://3號(hào)按鍵按下
- break;
- case 4://4號(hào)按鍵按下
- break;
- case 5://5號(hào)按鍵按下
- keyvalue=3;break;
- case 6:
- keyvalue=6;break;
- case 7:
- keyvalue=9;break;
- case 8:
- keyvalue='#'-0x30;break;
- case 9:
- keyvalue=2;break;
- case 10:
- keyvalue=5;break;
- case 11:
- keyvalue=8;break;
- case 12:
- keyvalue=0;break;
- case 13:
- keyvalue=1;break;
- case 14:
- keyvalue=4;break;
- case 15:
- keyvalue=7;break;
- case 16:
- keyvalue='*'-0x30;break;
- default:break;
-
- }
-
- chip[count]=keyvalue+0x30;
- lcd12864_swrite(cmd,0x9d+count);
- lcd12864_swrite(dat,chip[count]);
- while(getkeys()==0) //如果松開按鍵
- {
- for(k=0;k<20000;k++);
- for(k=0;k<20000;k++);
- for(k=0;k<20000;k++);
- keyvalue=0;
-
- }
- for(k=0;k<20000;k++);
- for(k=0;k<20000;k++);
- for(k=0;k<20000;k++);
- for(k=0;k<20000;k++);
-
- keyvalue=0;
-
- }
-
-
-
- }
- while(getkeys()!=4);
- if(chip[0]=='0'&&chip[1]=='0'&&chip[2]=='8')//74ls08檢測(cè)
- {
- if(!chiptest14(LS08))
- { display("檢測(cè)結(jié)果:",10);
- display_x("型號(hào):74LS08",2,12);
- display_x("功能:2輸入四與門",3,16);
- display_x("狀況:良好",4,10);
- }
- else
- {display("檢測(cè)結(jié)果:",10);
- display_x("狀況:已壞",4,10);
- }
- }
- else if(chip[0]=='0'&&chip[1]=='0'&&chip[2]=='4')//74ls04檢測(cè)
- {
- if(!chiptest14(LS04))
- { display("檢測(cè)結(jié)果:",10);
- display_x("型號(hào):74LS04",2,12);
- display_x("功能:六反相器",3,14);
- display_x("狀況:良好",4,10);
- }
- else
- {display("檢測(cè)結(jié)果:",10);
- display_x("狀況:已壞",4,10);
- }
- }
- else if(chip[0]=='0'&&chip[1]=='0'&&chip[2]=='0')//74ls00檢測(cè)
- {
- if(!chiptest14(LS00))
- { display("檢測(cè)結(jié)果:",10);
- display_x("型號(hào):74LS00",2,12);
- display_x("功能:2輸入四與非",3,16);
- display_x("狀況:良好",4,10);
- }
- else
- {display("檢測(cè)結(jié)果:",10);
- display_x("狀況:已壞",4,10);
- }
- }
- else if(chip[0]=='0'&&chip[1]=='3'&&chip[2]=='2')//74ls32檢測(cè)程序
- {
- if(!chiptest14(LS32))
- {
- display("檢測(cè)結(jié)果:",10);
- display_x("型號(hào):74LS32",2,12);
- display_x("功能:2輸入四或門",3,16);
- display_x("狀況:良好",4,10);
- }
- else
- {
- display("檢測(cè)結(jié)果:",10);
- display_x("狀況:已壞",4,10);
- }
-
-
- }
- else
- {display("檢測(cè)結(jié)果:",10);//檢測(cè)結(jié)束,不存在芯片庫
- display_x("不存在芯片庫!",4,14);
- }
- while(keyvalue==0);
- }
- }
- }
- }
- u8 chiptest14(u8 *chip)//14引腳芯片檢測(cè)程序
- {
- port1=0xff;
- port2=0xff;
- port1=*chip; //端口1輸出
- port2=*(chip+1); //端口2輸出
- if((port1==*(chip+2))&&(port2==*(chip+3)))
- {
- port1=*(chip+4);
- port2=*(chip+5);
- if((port1==*(chip+6))&&(port2==*(chip+7)))
- //display(tip10,8);
- return 0;
- else
- //display(tip11,8);
- return 1;
- }
- else
- {
- //display(tip11,8);
- return 1;
- }
-
- }
- void zijian()//自動(dòng)檢測(cè)函數(shù)
- {
- if(!chiptest14(LS04))//74ls04自動(dòng)檢測(cè)
- {
- display("檢測(cè)結(jié)果:",10);
- display_x("型號(hào):74LS04",2,12);
- display_x("功能:六反相器",3,14);
- display_x("狀況:好",4,8);
- }
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
51單片機(jī)集成芯片測(cè)試儀.rar
(7.45 MB, 下載次數(shù): 86)
2017-6-29 13:19 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|