久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4679|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)集成芯片測(cè)試儀設(shè)計(jì) 帶程序PCB原理圖

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
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附件中可下載工程文件)




單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. #include<keys.h>
  3. #include<lcd12864.h>
  4. #include<port.h>

  5. #define port1 P1  //硬件連接引腳
  6. #define port2 P2  //硬件連接引腳
  7. #define led P0^0
  8. //u8 temp1=0;     //port1暫存
  9. //u8 temp2=0;     //port2暫存
  10. u8 chip[3];
  11. u8 chiptest14(u8 *chip);//14引腳芯片檢測(cè)函數(shù)
  12. void zijian();//自動(dòng)檢測(cè)函數(shù)
  13. u8 code tip1[]="您好,歡迎使用此產(chǎn)品,該產(chǎn)品可以對(duì)常見的74系列芯片進(jìn)行檢測(cè)。    ";
  14. u8 code tip2[]="請(qǐng)將芯片放入芯片底座中按開始鍵開始";
  15. u8 code tip3[]="請(qǐng)輸入芯片型號(hào),按回車鍵結(jié)束。";
  16. u8 code tip4[]="請(qǐng)選擇自檢或輸入模式";
  17. u8 code tip5[]="輸入鍵或自檢鍵按下";
  18. u8 code tip6[]="自檢中,請(qǐng)稍等...";
  19. u8 code tip7[]="請(qǐng)輸入芯片型號(hào),按檢測(cè)鍵開始檢測(cè)";
  20. u8 code tip8[]="輸入開始檢測(cè)啦";
  21. u8 code tip9[]="芯片型號(hào):";
  22. u8 code tip11[]="檢測(cè)失敗";
  23. sbit p00=P0^0;
  24. sbit p01=P0^1;
  25. sbit p02=P0^2;
  26. sbit p03=P0^3;
  27. sbit p04=P0^4;
  28. sbit p05=P0^5;
  29. sbit p06=P0^6;
  30. sbit p07=P0^7;
  31. u8 code LS00[4][2]={
  32.                                                               {0x3f,0x3f},        //第一次輸出           p1輸出   p2輸出
  33.                                                                          {0x1b,0x1b},        //第一次輸入                p1輸入   p2輸入
  34.                                                                {0x24,0x24}, //第二次輸出                p1輸出   p2輸出
  35.                                                                          {0x24,0x24}  //第二次輸入    p1輸入   p2輸入
  36.                                                                         };       
  37. u8 code LS04[4][2]={
  38.                                                               {0x2a,0x2a},        //第一次輸出           p1輸出   p2輸出
  39.                                                                          {0x2a,0x2a},        //第一次輸入                p1輸入   p2輸入
  40.                                                                {0x3f,0x3f}, //第二次輸出                p1輸出   p2輸出
  41.                                                                          {0x15,0x15}  //第二次輸入    p1輸入   p2輸入
  42.                                                                         };       
  43. u8 code LS08[4][2]={
  44.                                                               {0x15,0x15},        //第一次輸出           p1輸出   p2輸出
  45.                                                                          {0x11,0x11},        //第一次輸入                p1輸入   p2輸入
  46.                                                                {0x00,0x00}, //第二次輸出                p1輸出   p2輸出
  47.                                                                          {0x00,0x00}  //第二次輸入    p1輸入   p2輸入
  48.                                                                         };       
  49. u8 code LS32[4][2]={
  50.                                                               {0x15,0x15},        //第一次輸出           p1輸出   p2輸出
  51.                                                                          {0x35,0x35},        //第一次輸入                p1輸入   p2輸入
  52.                                                                {0x2a,0x2a}, //第二次輸出                p1輸出   p2輸出
  53.                                                                          {0x2e,0x2e}  //第二次輸入    p1輸入   p2輸入
  54.                                                                         };       

  55. void main()
  56. {
  57.         u8 count;
  58.         unsigned int k,j;
  59.         //lcd12864_init() ;
  60.         display(tip1,64);//顯示歡迎詞   1
  61.         for(k=0;k<20000;k++)
  62.         for(j=0;j<40;j++);
  63.        
  64.         display(tip2,34);//顯示說明       2
  65.         while(1)              //         3
  66.                 {
  67.                                  while(getkeys()==0||keyvalue!=1);//等待開始按鍵按下,未按下時(shí)等待      4
  68.                                                 display(tip4,20);//提示自檢或輸入模式選擇                            5
  69.                                  while(getkeys()!=2&&getkeys()!=3);//等待輸入鍵按下
  70.                                                 display(tip5,18);//輸入鍵或自檢鍵按下
  71.                                  if(keyvalue==2)   //這是自檢程序
  72.                                  {
  73.                                  display(tip6,17); //正在進(jìn)行自檢,請(qǐng)稍等
  74.                                  //自動(dòng)檢測(cè)程序
  75.                                          zijian();
  76.                                  }
  77.                                  if(keyvalue==3) //這是輸入程序
  78.                                  {
  79.                                  display(tip7,32);//請(qǐng)輸入芯片型號(hào),                         
  80.                                  if(getkeys()!=4)//當(dāng)檢測(cè)按鍵沒有按下時(shí)   芯片輸入階段
  81.                                  {
  82.                                                          display_x(tip9,4,10);        //芯片型號(hào)提示         
  83.                                                          for(count=0;count<3;count++)//獲得輸入的芯片型號(hào)
  84.                                                                 {
  85.                                                                
  86.                                                                  while(getkeys()==0||keyvalue==1||keyvalue==2||keyvalue==3||keyvalue==4);//當(dāng)數(shù)字區(qū)沒有按下時(shí)等待
  87.                                                                                 while(keyvalue!=0)//進(jìn)行按鍵轉(zhuǎn)換
  88.                                                                                 {
  89.                                                                                         switch(keyvalue)
  90.                                                                                  {
  91.                                                                                          case 0://沒有按鍵按下
  92.                                                                                                                         break;
  93.                                                                                          case 1://1號(hào)按鍵按下
  94.                                                                                                                         break;
  95.                                                                                          case 2://2號(hào)按鍵按下
  96.                                                                                                                         break;
  97.                                                                                          case 3://3號(hào)按鍵按下
  98.                                                                                                                         break;
  99.                                                                                          case 4://4號(hào)按鍵按下
  100.                                                                                                                         break;
  101.                                                                                          case 5://5號(hào)按鍵按下
  102.                                                                                                                         keyvalue=3;break;
  103.                                                                                          case 6:
  104.                                                                                                                         keyvalue=6;break;
  105.                                                                                          case 7:
  106.                                                                                                                         keyvalue=9;break;
  107.                                                                                          case 8:
  108.                                                                                                                         keyvalue='#'-0x30;break;
  109.                                                                                          case 9:
  110.                                                                                                                         keyvalue=2;break;
  111.                                                                                          case 10:
  112.                                                                                                                         keyvalue=5;break;
  113.                                                                                          case 11:
  114.                                                                                                                         keyvalue=8;break;
  115.                                                                                          case 12:
  116.                                                                                                                         keyvalue=0;break;
  117.                                                                                          case 13:
  118.                                                                                                                         keyvalue=1;break;
  119.                                                                                          case 14:
  120.                                                                                                                         keyvalue=4;break;
  121.                                                                                          case 15:
  122.                                                                                                                         keyvalue=7;break;
  123.                                                                                          case 16:
  124.                                                                                                                         keyvalue='*'-0x30;break;
  125.                                                                                          default:break;
  126.                                                                                        
  127.                                                                                  }
  128.                                                                                  
  129.                                                                                         chip[count]=keyvalue+0x30;
  130.                                                                                         lcd12864_swrite(cmd,0x9d+count);
  131.                                                                                         lcd12864_swrite(dat,chip[count]);
  132.                                                                                          while(getkeys()==0) //如果松開按鍵
  133.                                                                                          {
  134.                                                                                                  for(k=0;k<20000;k++);
  135.                                                                                                  for(k=0;k<20000;k++);
  136.                                                                                                  for(k=0;k<20000;k++);
  137.                                                                                                 keyvalue=0;
  138.                                                                                                  
  139.                                                                                          }
  140.                                                                                           for(k=0;k<20000;k++);
  141.                                                                                          for(k=0;k<20000;k++);
  142.                                                                                          for(k=0;k<20000;k++);
  143.                                                                                          for(k=0;k<20000;k++);
  144.                                                                                          
  145.                                                                                                 keyvalue=0;
  146.                                                                  
  147.                                                                                 }
  148.                                                                        
  149.                                                                  
  150.                                                                  
  151.                                                          }
  152.                                                          while(getkeys()!=4);
  153.                                                          if(chip[0]=='0'&&chip[1]=='0'&&chip[2]=='8')//74ls08檢測(cè)
  154.                                                                 {
  155.                                                                  if(!chiptest14(LS08))
  156.                                                                  { display("檢測(cè)結(jié)果:",10);
  157.                                                                          display_x("型號(hào):74LS08",2,12);
  158.                                                                          display_x("功能:2輸入四與門",3,16);
  159.                                                                          display_x("狀況:良好",4,10);
  160.                                                                  }
  161.                                                                  else
  162.                                                                  {display("檢測(cè)結(jié)果:",10);
  163.                                                                         display_x("狀況:已壞",4,10);
  164.                                                                  }
  165.                                                          }
  166.                                                          else if(chip[0]=='0'&&chip[1]=='0'&&chip[2]=='4')//74ls04檢測(cè)
  167.                                                                 {
  168.                                                                  if(!chiptest14(LS04))
  169.                                                                  { display("檢測(cè)結(jié)果:",10);
  170.                                                                          display_x("型號(hào):74LS04",2,12);
  171.                                                                          display_x("功能:六反相器",3,14);
  172.                                                                          display_x("狀況:良好",4,10);
  173.                                                                  }
  174.                                                                  else
  175.                                                                  {display("檢測(cè)結(jié)果:",10);
  176.                                                                         display_x("狀況:已壞",4,10);
  177.                                                                  }
  178.                                                          }
  179.                                                          else if(chip[0]=='0'&&chip[1]=='0'&&chip[2]=='0')//74ls00檢測(cè)
  180.                                                                 {
  181.                                                                  if(!chiptest14(LS00))
  182.                                                                  { display("檢測(cè)結(jié)果:",10);
  183.                                                                          display_x("型號(hào):74LS00",2,12);
  184.                                                                         display_x("功能:2輸入四與非",3,16);
  185.                                                                          display_x("狀況:良好",4,10);
  186.                                                                  }
  187.                                                                  else
  188.                                                                  {display("檢測(cè)結(jié)果:",10);
  189.                                                                         display_x("狀況:已壞",4,10);
  190.                                                                  }
  191.                                                          }
  192.                                                          else if(chip[0]=='0'&&chip[1]=='3'&&chip[2]=='2')//74ls32檢測(cè)程序
  193.                                                                 {
  194.                                                                         if(!chiptest14(LS32))
  195.                                                                         {
  196.                                                                                 display("檢測(cè)結(jié)果:",10);
  197.                                                                                 display_x("型號(hào):74LS32",2,12);
  198.                                                                                 display_x("功能:2輸入四或門",3,16);
  199.                                                                                 display_x("狀況:良好",4,10);
  200.                                                                         }
  201.                                                                         else
  202.                                                                         {
  203.                                                                                 display("檢測(cè)結(jié)果:",10);
  204.                                                                                 display_x("狀況:已壞",4,10);
  205.                                                                         }
  206.                                                                        
  207.                                                                  
  208.                                                                 }
  209.                                                          else                                       
  210.                                                                 {display("檢測(cè)結(jié)果:",10);//檢測(cè)結(jié)束,不存在芯片庫
  211.                                                                         display_x("不存在芯片庫!",4,14);
  212.                                                                  }
  213.                                                          while(keyvalue==0);
  214.                                  }

  215.                          }
  216.                 }
  217. }       
  218. u8 chiptest14(u8 *chip)//14引腳芯片檢測(cè)程序
  219. {
  220.                 port1=0xff;
  221.                 port2=0xff;
  222.                 port1=*chip;   //端口1輸出
  223.                 port2=*(chip+1); //端口2輸出
  224.                 if((port1==*(chip+2))&&(port2==*(chip+3)))
  225.                 {
  226.                 port1=*(chip+4);
  227.                 port2=*(chip+5);
  228.                 if((port1==*(chip+6))&&(port2==*(chip+7)))
  229.                         //display(tip10,8);
  230.                   return 0;
  231.                 else
  232.                         //display(tip11,8);
  233.             return 1;
  234.                 }
  235.                 else
  236.                         {
  237.                                 //display(tip11,8);       
  238.                                 return 1;
  239.                         }
  240.        
  241. }               

  242. void zijian()//自動(dòng)檢測(cè)函數(shù)
  243. {                                 
  244.                 if(!chiptest14(LS04))//74ls04自動(dòng)檢測(cè)
  245.                 {
  246.                  display("檢測(cè)結(jié)果:",10);
  247.                  display_x("型號(hào):74LS04",2,12);
  248.                  display_x("功能:六反相器",3,14);
  249.                         display_x("狀況:好",4,8);                        
  250.                 }
  251. ……………………

  252. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
51單片機(jī)集成芯片測(cè)試儀.rar (7.45 MB, 下載次數(shù): 86)




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2017-6-30 02:53 | 只看該作者
好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報(bào)

板凳
ID:667165 發(fā)表于 2019-12-18 14:29 | 只看該作者
好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報(bào)

地板
ID:61207 發(fā)表于 2020-9-20 17:18 | 只看該作者
好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報(bào)

5#
ID:138956 發(fā)表于 2020-10-15 19:27 | 只看該作者

好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報(bào)

6#
ID:701252 發(fā)表于 2020-10-16 16:34 | 只看該作者
好資料,51黑有你更精彩!!!只想下來學(xué)習(xí)一下!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产免费 | 国产精品a一区二区三区网址 | 超碰人人艹 | 亚洲经典一区 | 亚洲劲爆av| www.国产一区| 久久99精品久久久久久青青日本 | 超碰97免费在线 | 日韩免费在线视频 | 亚洲国产91 | 在线观看视频一区 | 激情五月婷婷综合 | 91av在线免费播放 | 久久国产精品无码网站 | 二区视频 | 麻豆久久久久久久 | 日本一区二区影视 | 欧美一级毛片久久99精品蜜桃 | 久久爱黑人激情av摘花 | 日韩一区中文字幕 | 龙珠z在线观看 | 久久精品一 | 一级日批片 | 日韩在线三级 | 黑人巨大精品欧美一区二区免费 | 国产精品国产a级 | 久久av一区 | 日韩成人高清在线 | 成人国产免费观看 | 久久亚洲春色中文字幕久久久 | 九九热久久免费视频 | 午夜影院在线观看视频 | 中文字幕影院 | 一区二区三区欧美 | 青青久在线视频 | 午夜欧美 | 啪啪免费网 | 午夜在线观看免费 | 国产精品高清在线 | 久热精品在线观看视频 | 成人免费观看网站 |