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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1815|回復: 1
收起左側(cè)

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

[復制鏈接]
ID:1064047 發(fā)表于 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位轉(zhuǎn)換結(jié)果
  12. sfr ADC_LOW2    =   0xBE;           //低2位轉(zhuǎn)換結(jié)果
  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轉(zhuǎn)換通道         通道CHS2=1          ADC_FLAG=1;

  23.   ADC_RES = 0x00;                               //清零轉(zhuǎn)換結(jié)果寄存器
  24.   ADC_CONTR = ADC_CONTR | 0x08;                                         //ADC_CONTR=0XEC;

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

  26.   ADC_CONTR = ADC_CONTR & 0xe0;                 //清標志
  27.   ADC_Result = ADC_RES;                     //提取采集到的數(shù)據(jù)
  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);         //顯示小數(shù)點
  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);         //顯示小數(shù)點
  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, 下載次數(shù): 51)

評分

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

查看全部評分

回復

使用道具 舉報

ID:1064047 發(fā)表于 2023-3-3 15:19 | 顯示全部樓層
大學生入門剛需,歡迎復制粘貼去用
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产日韩欧美在线 | 中文字幕一级毛片 | 狠狠色网 | 毛片网在线观看 | 亚洲国产精品99久久久久久久久 | 成人毛片网站 | 精品国产一区二区三区久久 | 成人综合视频在线观看 | 亚洲欧美中文日韩在线v日本 | 国产成人精品一区二区 | 国产精品久久久久久一区二区三区 | 国产第一区二区 | 黄色精品 | 久久只有精品 | 久草视频网站 | 午夜精品久久久久久久久久久久久 | 日本三级做a全过程在线观看 | 亚洲精品国产第一综合99久久 | 亚洲精品一区二区三区中文字幕 | www4虎| 在线观看亚洲精品 | 一级看片免费视频 | 九九亚洲精品 | 亚洲 一区 | 热久久久 | 成人一区二区三区在线 | 99精品久久 | 狠狠综合网 | 国产一级电影网 | 在线精品观看 | 天天操夜夜拍 | 久久国产精品久久久久久久久久 | 久久精品亚洲欧美日韩久久 | 美国黄色毛片 | 国产日韩欧美二区 | 亚洲精品一区二三区不卡 | 在线一区视频 | 日韩在线国产 | 中文字幕国产视频 | 91精品国产91久久久久久吃药 | 亚洲综合在|