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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機AD電壓采集仿真程序 PCF8591模擬量采集 用8*8點陣翻頁顯示

[復制鏈接]
跳轉到指定樓層
樓主
包含程序及仿真,pcf8951驅動程序,不僅可以檢測電壓,還能檢測光照強度以及溫度,很適合小白


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


單片機源程序如下:
  1.                               
  2. #include <reg52.h>
  3. #include <I2C.H>
  4. #define uchar unsigned char
  5. #define uint unsigned int


  6. #define  PCF8591 0x90    //PCF8591 地址

  7. unsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,
  8. 0xef,0xdf,0xbf,0x7f};
  9. unsigned char code graph[11][8]={
  10. {0x0,0x18,0x24,0x24,0x24,0x24,0x24,0x18},//0
  11. {0x0,0x8,0x18,0x8,0x8,0x8,0x8,0x8},//1
  12. {0x0,0x18,0x24,0x24,0x8,0x10,0x20,0x3C},//2
  13. {0x0,0x18,0x24,0x4,0x8,0x24,0x24,0x18},//3
  14. {0x0,0x8,0x8,0x18,0x28,0x3C,0x8,0x8},//4
  15. {0x0,0x3C,0x20,0x38,0x4,0x4,0x24,0x18},//5
  16. {0x0,0x18,0x24,0x20,0x38,0x24,0x24,0x18},//6
  17. {0x0,0x3C,0x24,0x4,0x8,0x10,0x10,0x10},//7
  18. {0x0,0x18,0x24,0x24,0x18,0x24,0x24,0x18},//8
  19. {0x0,0x18,0x24,0x24,0x1C,0x4,0x24,0x18},//9
  20. {0x4C,0xD2,0x52,0x52,0x52,0x52,0x52,0xEC},//10
  21. };

  22. unsigned char count;
  23. unsigned char cnta;

  24. unsigned char AD_CHANNEL;
  25. unsigned int  D[4];

  26. void delay11(unsigned int cnt)
  27. {
  28. while(--cnt);
  29. }



  30.                  

  31. /*******************************************************************
  32. ADC發送字節[命令]數據函數               
  33. *******************************************************************/
  34. bit ISendByte(unsigned char sla,unsigned char c)
  35. {
  36.    Start_I2c();              //啟動總線
  37.    SendByte(sla);            //發送器件地址
  38.    if(ack==0)return(0);
  39.    SendByte(c);              //發送數據
  40.    if(ack==0)return(0);
  41.    Stop_I2c();               //結束總線
  42.    return(1);
  43. }

  44. /*******************************************************************
  45. ADC讀字節數據函數               
  46. *******************************************************************/
  47. unsigned char IRcvByte(unsigned char sla)
  48. {  unsigned char c;

  49.    Start_I2c();          //啟動總線
  50.    SendByte(sla+1);      //發送器件地址
  51.    if(ack==0)return(0);
  52.    c=RcvByte();          //讀取數據0

  53.    Ack_I2c(1);           //發送非就答位
  54.    Stop_I2c();           //結束總線
  55.    return(c);
  56. }

  57. //******************************************************************/
  58. main()
  59. { unsigned char jj,kk,ll,bb,cc,dd;
  60. double Data; //
  61. double V;         //轉化成的電壓值

  62. while(1)
  63. {  
  64.          ISendByte(PCF8591,0x40);
  65.          Data=IRcvByte(PCF8591);  //ADC0 模數轉換1
  66.                  V=Data*5/256;
  67.                  D[0]=V*100;   

  68.         for(bb=0;bb<10;bb++){
  69.                 for(jj=0;jj<8;jj++)   //共要掃描八行  
  70.                 {
  71.                 P1=graph[D[0]/100][jj];   //送字模數據
  72.                         P2=tab[jj];
  73.                     delay11(200);   //選中第一行
  74.                         P2=0xff;
  75.                         delay11(500);
  76.               }
  77.            delay11(500);}

  78.                     for(bb=0;bb<10;bb++){
  79.                 for(jj=0;jj<8;jj++)   //共要掃描八行  
  80.                 {
  81.                 P1=0x06;
  82.                         P2=0x7f;
  83.                         delay11(500);
  84.                         P2=0xbf;
  85.                         delay11(500);
  86.               }
  87.            delay11(500);}



  88.                  for(cc=0;cc<10;cc++){
  89.                 for(kk=0;kk<8;kk++)   //共要掃描八行  
  90.                 {
  91.                 P1=graph[D[0]%100/10][kk];   //送字模數據
  92.                         P2=tab[kk];
  93.                     delay11(200);   //選中第一行
  94.                         P2=0xff;
  95.                         delay11(500);
  96.               }
  97.            delay11(500);}  

  98.                 for(dd=0;dd<10;dd++)
  99.                 {
  100.                  for(ll=0;ll<8;ll++)   //共要掃描八行  
  101.                 {
  102.                 P1=graph[D[0]%10][ll];   //送字模數據
  103.                         P2=tab[ll];
  104.                     delay11(200);   //選中第一行
  105.                         P2=0xff;
  106.                         delay11(500);
  107.               }
  108.            delay11(500);}
  109.    

  110.    }


  111. }  
復制代碼
注意現在用的8*8一次只能顯示一個字符 所以需要翻頁顯示 不太直觀  大家可以改為數碼管或者 多點陣顯示
Keil代碼與Proteus8.13仿真下載:
仿真程序.7z (79.42 KB, 下載次數: 23)

評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 另类视频区 | 国产成人综合在线 | 亚洲欧美视频 | 免费成人高清在线视频 | 国产小视频在线观看 | 国产精品美女一区二区三区 | 成人在线免费视频 | 日韩一及片 | 在线黄色影院 | 一区二区国产在线观看 | 久久久久九九九九 | 日日操日日舔 | 欧美精品一区在线发布 | 99re| 国产精品久久久久久久久图文区 | 亚洲精品欧美 | 久久久精品一区二区三区四季av | 精品国产免费人成在线观看 | 夜夜爽夜夜操 | 欧美一级在线 | 99国产精品99久久久久久粉嫩 | 亚洲国产精品久久久久秋霞不卡 | 美女视频黄色的 | 欧美国产精品久久久 | 日本精品免费 | 久久激情五月丁香伊人 | 911影院 | 九九热在线免费观看 | 国产成人精品免高潮在线观看 | 中文字幕乱码视频32 | 久久久久久国产精品免费免费男同 | 午夜av电影 | 久草网视频 | 久久久久成人精品亚洲国产 | 亚洲精品自在在线观看 | 中文字幕在线人 | 一级二级三级在线观看 | 色www精品视频在线观看 | 国精产品一区一区三区免费完 | 亚洲视频第一页 | 欧美国产精品一区二区三区 |