找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1022|回复: 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, 下载次数: 50)

评分

参与人数 1黑币 +20 收起 理由
admin + 20 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:1064047 发表于 2023-3-3 15:19 | 显示全部楼层
大学生入门刚需,欢迎复制粘贴去用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表