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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1752|回復: 0
收起左側

單片機+ADC0808多點電壓巡檢系統(程序+仿真)

[復制鏈接]
ID:1061648 發表于 2023-9-1 18:27 | 顯示全部樓層 |閱讀模式
1、名稱:多點電壓巡檢系統。
2、功能要求:巡回檢測8路輸入電壓值并顯示結果。
3、硬件要求:單片機芯片采用AT89C51,A/D轉換器采用ADC0808,顯示器使用LCD1602。
4、實訓提交:在Keil uVision中完成程序設計并提交工程文件電子檔;在Proteus中完成電路設計并提交工程文件電子檔。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif

仿真圖

仿真圖


單片機源程序如下:
  1. #include "reg52.h"
  2. #define TIME0H 0x3C
  3. #define TIME0L 0xB0
  4. #define vdInitialize()        vWriteCMD(0x01);vWriteCMD(0x38);vWriteCMD(0x0C);
  5. #define OUTPORT P2
  6. #define LCDPORT P0               
  7. #define TIME0H 0x3C
  8. #define TIME0L 0xB0
  9. unsigned char uc_Clock=0;       
  10. unsigned char keyvalue=0;
  11. bit b_DATransform=0;
  12. sbit LCDRS =P3^0;                                                          
  13. sbit LCDRW =P3^1;                                                                 
  14. sbit LCDE =P3^2;                                               
  15. sbit START =P3^4;       
  16. sbit EOC =P3^3;

  17. void vDelay()
  18. {
  19.         unsigned int uiCount;
  20.         for(uiCount=0;uiCount<250;uiCount++);
  21. }
  22. void vWriteCMD(unsigned char ucCommand)                                          
  23. {
  24.         vDelay();
  25.         LCDE=1;       
  26.         LCDRS=0;
  27.         LCDRW=0;
  28.         LCDPORT=ucCommand;       
  29.         LCDE=0;               
  30. }
  31. void vWriteData(unsigned char ucData)                                          
  32. {
  33.         vDelay();
  34.         LCDE=1;       
  35.         LCDRS=1;
  36.         LCDRW=0;
  37.         LCDPORT=ucData;       
  38.         LCDE=0;       
  39. }
  40. void vShowOneChar(unsigned char ucChar)
  41. {
  42.                  vWriteData(ucChar);
  43. }
  44. void vShowChar(unsigned char ucaChar[])
  45. {
  46.         unsigned char ucCount;
  47.         for(ucCount=0;;ucCount++)
  48.                 {
  49.                 vShowOneChar(ucaChar[ucCount]);
  50.                 if(ucaChar[ucCount+1]=='\0')
  51.                         break;
  52.                 }
  53. }

  54. unsigned int uiADTransform()
  55. {
  56.         unsigned int uiResult;
  57.         START=1;       
  58.         START=0;
  59.         while(EOC==0);
  60.         uiResult=OUTPORT;
  61.         uiResult=(100*uiResult)/51;       
  62.         return uiResult;
  63. }

  64. void vShowData(unsigned int uiNumber)
  65. {
  66.         unsigned char ucaNumber[3],ucCount;
  67.         ucaNumber[0]=uiNumber/100;                                                       
  68.         ucaNumber[1]=(uiNumber-100*(int)ucaNumber[0])/10;                                                       
  69.         ucaNumber[2]=uiNumber-100*(int)ucaNumber[0]-10*ucaNumber[1];
  70.         for(ucCount=0;ucCount<3;ucCount++)
  71.         {
  72.                 vShowOneChar(ucaNumber[ucCount]+48);               
  73.                 if(ucCount==0)
  74.                         vShowOneChar('.');
  75.         }
  76. }

  77. void main()
  78. {        unsigned char i;

  79.         TMOD=0x01;       
  80.         TH0=TIME0H;
  81.         TL0=TIME0L;
  82.         TR0=1;       
  83.         ET0=1;       
  84.         EA=1;
  85.         vdInitialize();
  86.         vWriteCMD(0x84);
  87.            vShowChar("CHANNEL:");
  88.         vWriteCMD(0xC9);
  89.         vShowChar("(V)");
  90.         while(1)
  91.                 {
  92.                         for(i=0;i<8;)
  93.                         {       
  94.                                 P1=i;
  95.                                
  96.                                 if(b_DATransform==1)
  97.                                 {        vWriteCMD(0x8c);
  98.                                            vShowOneChar(i+1+0x30);
  99.                                         i++;
  100.                                         b_DATransform=0;
  101.                                         vWriteCMD(0xC4);
  102.                                         vShowData(uiADTransform());
  103.                                 }
  104.                         }       
  105. ……………………

  106. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

程序仿真51hei附件下載:
多點電壓巡檢系統.7z (58.52 KB, 下載次數: 34)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产成人在线免费 | 中文字幕在线视频一区二区三区 | 超碰在线免费av | 成人免费黄色 | 日韩成人精品 | 日韩毛片视频 | 久久久高清 | 91精品久久 | 91国产视频在线观看 | 视频一二三区 | 狠狠操狠狠色 | 欧美精品久久 | 超碰综合 | 成人在线免费视频 | 亚洲视频中文 | 欧美一级免费看 | 成人做爰www免费看视频网站 | 91中文视频 | 欧美影院| 国产高清视频一区 | 韩日三级| 国产伦精品一区二区三区照片91 | 亚洲不卡视频 | 91社区在线观看 | 欧美日韩亚洲一区 | 欧美精品一区二区三区在线播放 | 91视频在线 | 国产一区 日韩 | 国产高清在线 | 日本综合在线观看 | 成人久久18免费网站麻豆 | 国产精品一区二区三区久久 | 99re视频这里只有精品 | 我要看黄色录像一级片 | 亚洲深夜福利 | 91精品欧美久久久久久久 | 亚洲最大看片网站 | 韩国精品在线观看 | 欧美二区在线 | a视频在线观看 | 精品av|