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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

熱敏&光敏 熱敏電阻測溫數碼管顯示程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:207979 發表于 2017-6-5 12:22 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. /***************************************************************************************************   
  2. 工程名稱: NTC_SMG
  3. 功能描述:  實現NTC熱敏電阻測溫,數碼管低三位顯示結果,其中顯示的最高位為符號位(測溫范圍-10-50)。
  4. 硬件連接:  用8位杜邦線將J8與J12連接,2位杜邦線分別將J11_0與J15_DS1、J11_1與J15_DS2連接,
  5.             1位杜邦線將J19_AIN0與J15_RT連接,2位杜邦線分別將J11_7與J17_SDA、J11_6與J17_SCL連接。
  6. 維護記錄:  8-22
  7. ***************************************************************************************************/
  8. #include "reg51.h"          //包含頭文件
  9. #define uchar unsigned char
  10. #define uint  unsigned int
  11. sbit LE1=P2^0;           //位選573鎖存器使能
  12. sbit LE2=P2^1;           //段選573鎖存器使能
  13. extern uchar Read_AD(uchar chn);
  14. extern show();

  15. uchar flag;        //正負符號位

  16. uchar code dis[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
  17.                    //  0    1    2    3    4    5    6    7   
  18.                      0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};//0~F的段碼
  19.                    //  8    9    A    B    C    D    E    F  
  20. code unsigned int  vt_table[]= //電壓與實際溫度對照表
  21. {
  22.   4132,4098,4063,4026,3988,3949,3908,3866,3823,3779, //-9-0
  23.   3733,3686,3639,3590,3540,3489,3437,3385,3331,3277, //1-10
  24.   3222,3166,3110,3054,2997,2940,2882,2824,2767,2709, //11-20
  25.   2651,2593,2536,2478,2421,2365,2309,2253,2198,2143, //21-30
  26.   2089,2036,1984,1932,1881,1831,1782,1734,1686,1640, //31-40
  27.   1594,1550,1506,1464,1422,1381,1341,1303,1265,1228, //41-50
  28. };
  29. //**************************************************************************************************
  30. //延時函數
  31. //**************************************************************************************************
  32. delay(uint time)         //int型數據為16位,所以最大值為65535            
  33. {
  34.   uint  i,j;             //定義變量i,j,用于循環語句
  35.   for(i=0;i<time;i++)    //for循環,循環50*time次
  36.      for(j=0;j<100;j++); //for循環,循環50次
  37. }
  38. //**************************************************************************************************
  39. //數碼管顯示函數
  40. //**************************************************************************************************
  41. smg_show(uchar n)
  42. {
  43.       //顯示符號位
  44.      P1=0xdf;                 //0xbf=1101 1111,即選通個位
  45.      LE1=1;                   //鎖存位
  46.      LE1=0;                   //斷開鎖存,位選573的Q7~Q0仍保持
  47.      if(flag){P1=0x40;flag=0;}//為負,顯示"-"號
  48.        else  P1=0x00;         //為正,不顯示
  49.      LE2=1;                   //鎖存段碼
  50.      LE2=0;                   //斷開鎖存,段選573的Q7~Q0仍保持
  51.      delay(10);               //延時保持一下,延時過大會閃動,延時過小會有重影   
  52.      P1=0x00;LE2=1;LE2=0;     //清除P1口數據,以免造重影
  53.       //顯示十位
  54.      P1=0xbf;                 //0xbf=1011 1111,即選通個位
  55.      LE1=1;                   //鎖存位
  56.      LE1=0;                   //斷開鎖存,位選573的Q7~Q0仍保持
  57.      P1=dis[n/10];            //dis[n/10]為0~9的編碼
  58.      LE2=1;                   //鎖存段碼
  59.      LE2=0;                   //斷開鎖存,段選573的Q7~Q0仍保持
  60.      delay(10);               //延時保持一下,延時過大會閃動,延時過小會有重影   
  61.      P1=0x00;LE2=1;LE2=0;     //清除P1口數據,以免造重影
  62.      //顯示個位
  63.      P1=0x7f;                 //0xbf=0111 1111,即選通十分位
  64.      LE1=1;                   //鎖存位
  65.      LE1=0;                   //斷開鎖存,位選573的Q7~Q0仍保持
  66.      P1=dis[n%10];            //0~9的編碼
  67.      LE2=1;                   //鎖存段碼
  68.      LE2=0;                   //斷開鎖存,段選573的Q7~Q0仍保持
  69.      delay(10);               //延時保持一下,延時過大會閃動,延時過小會有重影  
  70.      P1=0x00;LE2=1;LE2=0;     //清除P1口數據,以免造重影   
  71.          
  72. }
  73. //**************************************************************************************************
  74. //主函數
  75. //**************************************************************************************************
  76. void main()
  77. {
  78.    uchar i,value;
  79.    uint temp;
  80.    while(1)                         //死循環
  81.     {
  82.        temp=Read_AD(0);             //采集0通道模擬電壓值
  83.        temp=19*temp;                //乘以電阻特性參數
  84.        for(i=0;(vt_table[i]>temp)&&(i<60);i++);//查表得到溫度對應參數
  85.        if(i<10) {value=10-i;flag=1;}//如果是負溫度,符號標志置1,表示為負
  86.             else value=i-10;        //如果為正,去掉10個負數
  87.        smg_show(value);             //顯示溫度值
  88. }
  89. }
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:684248 發表于 2020-2-26 15:57 | 只看該作者
函數不完整啊,ADC采集讀寫函數呢,另外問下樓主這是單片機直接驅動數碼管和熱敏電阻嗎
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜精品一区二区三区免费视频 | 亚洲九九精品 | 成人在线精品视频 | 日韩欧美二区 | 色男人的天堂 | 国产精品一区二区三区久久 | 黄色免费在线观看网址 | 欧美1区2区 | 午夜在线观看视频 | 久色一区 | 日产精品久久久一区二区福利 | 日韩在线电影 | 一区二区精品视频 | 一区二区三区四区五区在线视频 | 日韩精品久久久久 | 岛国av在线免费观看 | 欧美日韩视频在线 | 亚洲日韩中文字幕一区 | 日韩毛片免费视频 | 久久久涩 | 欧美一区二区三区四区在线 | 亚洲影音先锋 | 久久久久久中文字幕 | 久久精品 | 国产伦一区二区三区视频 | 国产精品一区二区精品 | 东京久久| 一区免费视频 | 精品美女视频在免费观看 | 黄色免费网站在线看 | 亚洲国产欧美在线人成 | 玖玖在线精品 | 高清亚洲 | 久久一区二区av | 91传媒在线观看 | 亚洲成人精 | 欧美久久一级特黄毛片 | 亚洲国产精品一区 | 国产福利91精品 | 久久九九99 | 不卡av电影在线播放 |