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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC12C5A60S2單片機系列溫度采集和AD電壓采集程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:1064047 發表于 2023-3-3 15:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
STC系列的單片機,進行自身AD采集和LCD12864顯示

單片機源程序如下:
  1. #include <STC12C5A.h>
  2. #include <LCD12864.h>
  3. #include <DS18B20.h>
  4. #include <intrins.h>

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

  7. uchar code        dis1[]="Vout:  ";
  8. uchar code        dis2[]="Temp:  ";

  9. /*
  10. sfr ADC_CONTR   =   0xBC;           //ADC control register
  11. sfr ADC_RES     =   0xBD;           //高8位轉換結果
  12. sfr ADC_LOW2    =   0xBE;           //低2位轉換結果
  13. sfr P1ASF       =   0x9D;           //P1 功能控制寄存器 1001 1101*/


  14. uint   AD_data1,AD_data2;
  15. int         Temp,Voltage;

  16. unsigned char Get_ADC1(void)
  17. {
  18.           
  19.   unsigned int ADC_Result;

  20.   ADC_CONTR = ADC_CONTR|0x80; //開啟AD電源        ADC_CONTR=1;         0X80= 1000 0000
  21.   P1ASF = P1ASF | 0x10;       //設置ADC通道為模擬模式
  22.   ADC_CONTR = 0xe0;           //設置ADC轉換通道         通道CHS2=1          ADC_FLAG=1;

  23.   ADC_RES = 0x00;                               //清零轉換結果寄存器
  24.   ADC_CONTR = ADC_CONTR | 0x08;                                         //ADC_CONTR=0XEC;

  25.   while(!(ADC_CONTR & 0x10));                                    //等待轉換完成

  26.   ADC_CONTR = ADC_CONTR & 0xe0;                 //清標志
  27.   ADC_Result = ADC_RES;                     //提取采集到的數據
  28.   return ADC_Result;
  29. }


  30. void main()
  31.   {         
  32.        uchar i,j;
  33.                
  34.        LCD12864_init();//初始化液晶顯示器
  35.                    Init_DS18B20(); //初始化溫差傳感器
  36.           
  37.                 while(1){  
  38.                          
  39.         AD_data1 = (int)(((float)Get_ADC1())*500/256);
  40.         Voltage=(int)AD_data1;        //讀取電壓值                                       
  41.                 LCD12864_POS(0,0); //第一行顯示電壓值
  42.                 for(i=0;i<5;i++){
  43.                 LCD12864_write_dat(dis1[i]);       
  44.                                 }  //顯示“Vout :”
  45.                 LCD12864_write_dat(0xA0);  //顯示空格
  46.                 LCD12864_write_dat(0xA0);  //顯示空格
  47.                 LCD12864_write_dat(0xA0);  //顯示空格
  48.                 LCD12864_write_dat(Voltage/1000+0x30);
  49.                 LCD12864_write_dat(Voltage/100%10+0x30);
  50.                 LCD12864_write_dat(0x2e);         //顯示小數點
  51.                 LCD12864_write_dat(Voltage/10%10+0x30);
  52.                 LCD12864_write_dat(Voltage%10+0x30);
  53.                 LCD12864_write_dat(0xA0); //顯示空格
  54.                 LCD12864_write_dat(0x56); //顯示V
  55.                 LCD12864_write_dat(0xA0); //顯示空格
  56.                                                                                
  57.                                                                                 /**************/       

  58. Temp=Read_Tem()*100;   //讀取溫度,并擴大                       
  59. LCD12864_POS(2,0); //第一行顯示電壓值
  60.                 for(j=0;j<5;j++){
  61.                 LCD12864_write_dat(dis2[j]);       
  62.                                 }  //顯示“Temp :”
  63.                 LCD12864_write_dat(0xA0);  //顯示空格
  64.                 LCD12864_write_dat(0xA0);  //顯示空格
  65.                 LCD12864_write_dat(0xA0);  //顯示空格
  66.                 LCD12864_write_dat(Temp/1000+0x30);
  67.                 LCD12864_write_dat(Temp/100%10+0x30);
  68.                 LCD12864_write_dat(0x2e);         //顯示小數點
  69.                 LCD12864_write_dat(Temp/10%10+0x30);
  70.                 LCD12864_write_dat(Temp%10+0x30);
  71.                 LCD12864_write_dat(0xA0); //顯示空格
  72.                                                                                
  73.         LCD12864_POS(2,7);
  74.           LCD12864_write_dat(0xa1);   //寫溫度符"℃"
  75.       LCD12864_write_dat(0xe6);   //寫溫度符"℃"
  76. }       
  77.    
  78.   }
復制代碼

Keil代碼下載: DS18B20測溫 LCD12864顯示 自身8位AD采集.zip (51.33 KB, 下載次數: 51)

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:1064047 發表于 2023-3-3 15:19 | 只看該作者
大學生入門剛需,歡迎復制粘貼去用
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕免费观看 | 中文字幕亚洲视频 | 日韩精品一区二区三区在线播放 | 一区二区三区视频免费看 | 成人免费在线播放视频 | 亚洲视频一区二区三区 | 久久久久一区 | 91国内精品久久 | 成人国产精品免费观看 | 成人国产a| 国产精品一区二区三区久久久 | 国产成人精品午夜 | 久久久久久影院 | 欧美日韩在线一区二区 | 三级国产三级在线 | 一区二区三区欧美在线 | 国产亚洲一区二区三区在线观看 | 二区在线视频 | 狠狠狠干 | 羞羞的视频免费观看 | 精品视频 免费 | 国产欧美一区二区三区久久人妖 | 特级做a爱片免费69 精品国产鲁一鲁一区二区张丽 | 亚洲综合一区二区三区 | 亚洲精品一区二区另类图片 | 午夜日韩 | 亚洲激情专区 | 日韩av免费看 | 自拍视频精品 | 91极品视频| 精区3d动漫一品二品精区 | 国产黄色小视频在线观看 | 精品一区久久 | 91av在线免费 | 久久久久久看片 | 国产jizz女人多喷水99 | 亚洲国产成人av好男人在线观看 | 欧美在线免费 | 免费国产一区 | 欧美色性 | 欧美高清成人 |