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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

PCF8591 AD采集電位器電壓并顯示代碼值的單片機源碼與電路圖

[復制鏈接]
跳轉到指定樓層
樓主
51單片的1 AD采集電位器電壓并顯示代碼值
電路原理圖如下:


單片機源程序如下:
  1. //摘要:
  2. //四位數碼管顯示采集的電位器AD(代碼值)
  3. //Designed by Cache.Lee

  4. #include "STC12C5A60S2.h"

  5. #include <I2C.H>

  6. #define uchar unsigned char
  7. #define uint unsigned int

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

  9. #define THCO   0xf8  //11.0592MHZ晶振
  10. #define TLCO   0xcb         //定時2ms時間常數值

  11. unsigned char Data_Buffer[4]={1,2,3,4};
  12. uchar code Duan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x76};

  13. sbit P24=P2^4;                //四個數碼管的位碼口定義
  14. sbit P25=P2^5;
  15. sbit P26=P2^6;
  16. sbit P27=P2^7;


  17. bit flag=0;


  18. bit DACconversion(unsigned char sla,unsigned char c,  unsigned char Val);
  19. bit ISendByte(unsigned char sla,unsigned char c);
  20. unsigned char IRcvByte(unsigned char sla);
  21. /******************************/
  22. void main(void) //主程序
  23. {
  24. unsigned int v;
  25. unsigned char AD_CHANNEL=1;
  26. unsigned int  D[5]={0,0,0,0,255};

  27. TMOD=0x11;                          //設置定時器0工作模式,16位計數模式
  28. TH0=THCO;                  
  29. TL0=TLCO;
  30. TR0=1;                                  //啟動定時器
  31. ET0=1;                                //使能定時器中斷                  
  32. EA=1;                                //開總中斷
  33.                
  34.         while(1)
  35.         {
  36.           if(flag==1)
  37.           {flag=0;
  38.                
  39.             ISendByte(PCF8591,0x41);
  40.                 v=IRcvByte(PCF8591);   

  41.             Data_Buffer[0]=0;
  42.             Data_Buffer[1]=v/100%10;
  43.             Data_Buffer[2]=v/10%10;
  44.                 Data_Buffer[3]=v%10;
  45.                 }
  46.    }
  47. }


  48. void timer0() interrupt 1         //定時器中斷服務子程序
  49. {
  50. static unsigned int count=0;//軟計時變量定義
  51. static unsigned char Bit=0;        //靜態變量,退出程序后,值保留

  52. TH0=THCO;
  53. TL0=TLCO;

  54. Bit++;        
  55. if(Bit>=4)Bit=0;
  56. P2|=0xf0;                                        //先關位碼
  57. P0=Duan[Data_Buffer[Bit]];        //開段碼
  58. switch(Bit)                                //送位碼
  59. {
  60.   case 0: P24=0;break;
  61.   case 1: P25=0;break;
  62.   case 2: P26=0;break;
  63.   case 3: P27=0;break;
  64. }

  65. count++;
  66. if(count>=250)                                //半S時間到
  67. {
  68.     count=0;   
  69.     flag=1;        
  70. }            
  71. }


  72. /*******************************************************************
  73. DAC 變換, 轉化函數               
  74. *******************************************************************/
  75. bit DACconversion(unsigned char sla,unsigned char c,  unsigned char Val)
  76. {
  77.    Start_I2c();              //啟動總線
  78.    SendByte(sla);            //發送器件地址
  79.    if(ack==0)return(0);
  80.    SendByte(c);              //發送控制字節
  81.    if(ack==0)return(0);
  82.    SendByte(Val);            //發送DAC的數值  
  83.    if(ack==0)return(0);
  84.    Stop_I2c();               //結束總線
  85.    return(1);
  86. }

  87. /*******************************************************************
  88. ADC發送字節[命令]數據函數               
  89. *******************************************************************/
  90. bit ISendByte(unsigned char sla,unsigned char c)
  91. {
  92.    Start_I2c();              //啟動總線
  93.    SendByte(sla);            //發送器件地址
  94.    if(ack==0)return(0);
  95.    SendByte(c);              //發送數據
  96.    if(ack==0)return(0);
  97.    Stop_I2c();               //結束總線
  98.    return(1);
  99. }
  100. ……………………

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

所有資料51hei提供下載:
1 AD采集電位器電壓并顯示代碼值.rar (204.52 KB, 下載次數: 101)


評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:399179 發表于 2020-2-25 11:23 來自觸屏版 | 只看該作者
正在學習,謝謝!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩国产精品一区二区三区 | 亚洲日韩中文字幕一区 | 一级毛片播放 | 久久99精品久久久久久国产越南 | 午夜影院黄 | 日本色综合 | 久日精品 | 成人高清视频在线观看 | 丝袜美腿一区二区三区动态图 | 欧美一区二区三区在线观看 | 青青久草 | 日韩精品一区中文字幕 | 日韩第一页 | 欧美亚洲高清 | 黄色av网站免费看 | 午夜激情影院 | av第一页 | 羞羞的视频在线观看 | 综合久久综合久久 | 亚洲一区在线免费观看 | 亚洲一区二区视频 | 国产清纯白嫩初高生视频在线观看 | 亚洲91精品| 亚洲国产成人精品在线 | 狠狠草视频 | www.中文字幕.com | 亚洲高清视频在线 | 国产操操操 | 亚洲精品电影在线观看 | 超碰激情 | 国产一级片 | 国产激情片在线观看 | 亚洲成人日韩 | 国产成人精品999在线观看 | 亚洲女人天堂成人av在线 | 蜜桃视频在线观看免费视频网站www | 国产免费拔擦拔擦8x高清 | 欧美一区二区三区视频 | 中文字幕日韩欧美 | 国产精品一区视频 | 国产91在线 | 亚洲 |