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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4924|回復: 4
打印 上一主題 下一主題
收起左側

單片機+PCF8591雙通道數字電壓表Proteus仿真程序 帶注釋

[復制鏈接]
跳轉到指定樓層
樓主
用51單片機測電壓值程序和仿真圖都在里面
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


注釋很詳細的單片機源程序如下:
  1. #include "pcf8591.h"
  2. void pcf8591_init(uchar channel)
  3. {
  4.         bit flag;
  5. //        channel%=3;
  6.         I2C_start(); //啟動總線,發送起始條件
  7.         write_byte(pcf8591_addr_w);//發送PCF8591器件地址,寫
  8.         flag=check_ack();//讀應答
  9.         write_byte(channel);//發送控制字節.0代表PCF8591控制寄存器,為0000 0000,單端輸入00,A/D,選擇通道0.
  10.         flag=check_ack();//讀應答
  11.         I2C_stop(); //發送結束條件
  12. }
  13. uchar pcf8591_adconvert(uchar x)//轉換x次,取平均值
  14. {
  15.         uchar j;
  16.         bit flag;
  17.         uint sum=0;
  18.         sum=0;
  19.         I2C_start();//重新啟動總線,發送起始條件
  20.         write_byte(pcf8591_addr_r);//發送PCF8591器件地址,讀,啟動A/D轉換
  21.         flag=check_ack();//讀應答
  22.         for(j=0;j<(x-1);j++)//軟件濾波,平均值濾波
  23.         {
  24.                 sum+=read_byte();//讀轉換結果
  25.                 send_ack(ACK);  //發送應答信號        
  26.                 delayms(10);
  27.         }
  28.         sum+=read_byte();//讀轉換結果
  29.         send_ack(NACK);  //讀完最后一個字節后單片機發送非應答信號        
  30.         I2C_stop();//發送結束條件
  31.         return(sum/x);        
  32. }
復制代碼
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #include "i2c.h"
  4. #include "pcf8591.h"
  5. #include "lcd1602.h"
  6. #define  uchar  unsigned  char
  7. #define  uint  unsigned  int
  8. void  delayms(uint  x);
  9. void main()
  10. {
  11.         uint volt;
  12.     uchar dispbuf[7]={'0','.','0','0','0','V','\0'};

  13.         LCD1602_Init();//液晶顯示模塊1602初始化
  14.         LCD1602_DisplayString(1,1,"Voltage:");
  15.         LCD1602_DisplayString(2,1,"Voltage:");
  16.         while(1)
  17.         {        
  18.                 pcf8591_init(0);//PCF8591初始化,單端輸入,A/D,選擇通道0        
  19.                 volt=pcf8591_adconvert(10)*19.608;//實際電壓(mV)=轉換結果*5000/255=轉換
  20. //結果*19.608。即VS=VREF*5V/255
  21.                 dispbuf[0]=0x30+volt/1000;//整數位
  22.                 dispbuf[2]=0x30+(volt%1000)/100;//小數點后第1位
  23.                 dispbuf[3]=0x30+(volt%100)/10;//小數點后第2位
  24.                 dispbuf[4]=0x30+volt%10;//小數點后第3位
  25.         LCD1602_DisplayString(1,9,dispbuf);

  26.                 pcf8591_init(1);//PCF8591初始化,單端輸入,A/D,選擇通道0        
  27.                 volt=pcf8591_adconvert(10)*19.608;//實際電壓(mV)=轉換結果*5000/255=轉換
  28. //結果*19.608。即VS=VREF*5V/255
  29.                 dispbuf[0]=0x30+volt/1000;//整數位
  30.                 dispbuf[2]=0x30+(volt%1000)/100;//小數點后第1位
  31.                 dispbuf[3]=0x30+(volt%100)/10;//小數點后第2位
  32.                 dispbuf[4]=0x30+volt%10;//小數點后第3位
  33.                 LCD1602_DisplayString(2,9,dispbuf);
  34.                 delayms(500);
  35.         }
  36. }
  37. void  delayms(uint  x)
  38. {
  39.         unsigned  char j;
  40.         while(x--)
  41.         for (j=0;j<122;j++); /*延時約8μs*125=1ms,應根據實驗調整j的上限125*/
  42. }
復制代碼


所有資料51hei提供下載:
雙通道數字電壓表.zip (123.33 KB, 下載次數: 199)

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:335380 發表于 2021-3-12 17:25 | 只看該作者
怎么我這里無法顯示?
回復

使用道具 舉報

板凳
ID:328014 發表于 2021-3-13 17:17 | 只看該作者
WORI 發表于 2021-3-12 17:25
怎么我這里無法顯示?

用Proteus8.8可以打開,顯示效果如下:

51hei.png (30.5 KB, 下載次數: 89)

51hei.png
回復

使用道具 舉報

地板
ID:28992 發表于 2021-3-15 07:58 | 只看該作者
great job, thank you!
回復

使用道具 舉報

5#
ID:285526 發表于 2021-3-26 23:10 | 只看該作者
Great Job
你好
任何人都可以使用單個ic MS83F1602制作伏安表
顯示頂部電壓3位7段和底部Amphere 3位7段
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天爱爱网 | 91成人在线| 亚洲精品国产电影 | 亚洲永久精品国产 | 亚洲精品国产一区 | 久久伊人免费视频 | 亚洲精品欧美 | 麻豆天堂 | 久久国产精品精品国产色婷婷 | 日韩免费在线 | 亚洲国产在 | 久久久久99 | 免费观看av | 日韩欧美一区二区三区免费看 | 国产婷婷色综合av蜜臀av | 国偷自产av一区二区三区 | 国产精品99久久久久久宅男 | 欧美另类日韩 | 午夜一级做a爰片久久毛片 精品综合 | aaaaaaa片毛片免费观看 | 免费在线观看h片 | 91xxx在线观看 | 中文字幕亚洲区一区二 | 女人一区| 精品国产一区一区二区三亚瑟 | 午夜寂寞影院在线观看 | 天天视频一区二区三区 | 日韩欧美一区二区三区免费看 | 亚洲国产成人av好男人在线观看 | 久久国产精品无码网站 | 亚洲xx在线 | www.亚洲免费 | 免费看a | 91天堂网| 视频在线一区二区 | 怡红院成人在线视频 | 国产99久久久国产精品 | 国产一区久久 | 成人国产在线视频 | 成年人在线观看视频 | 欧美一区二区在线播放 |