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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1915|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天干女人 | 啊v在线观看 | 国产精品免费在线 | www久久| 欧美精品99久久久 | 成人xxx | 中文字幕+乱码+中文乱码91 | 国产精品99久久久久久久久久久久 | 久久精品欧美一区二区 | 亚洲精品无| 国产寡妇亲子伦一区二区三区四区 | 亚洲综合在线视频 | 午夜免费视频 | 国产原创精品 | 欧美日韩亚洲天堂 | 久久综合久色欧美综合狠狠 | 在线视频h| 天天爽夜夜爽夜夜爽精品视频 | 国产免费网址 | 国产一区不卡 | 一区二区色 | 中文字幕在线视频观看 | 日韩一区二区三 | 五月婷婷视频 | 国产精品一区二区在线免费观看 | 伊人一区| www.国产在线 | 成人做爰69片免费 | 日本性网站 | 亚洲视频免费在线观看 | 精品一区av | 欧美8888 | 麻豆av在线免费观看 | 91日韩欧美 | 国产精品1区2区 | 亚洲色网址 | 久久久蜜桃 | 伊人中文字幕 | 久久在线 | 在线观看一区 | 欧美国产日韩精品 |