標(biāo)題:
STC12C5A60S2單片機系列溫度采集和AD電壓采集程序
[打印本頁]
作者:
lixiongkuku
時間:
2023-3-3 15:15
標(biāo)題:
STC12C5A60S2單片機系列溫度采集和AD電壓采集程序
STC系列的單片機,進行自身AD采集和LCD12864顯示
單片機源程序如下:
#include <STC12C5A.h>
#include <LCD12864.h>
#include <DS18B20.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code dis1[]="Vout: ";
uchar code dis2[]="Temp: ";
/*
sfr ADC_CONTR = 0xBC; //ADC control register
sfr ADC_RES = 0xBD; //高8位轉(zhuǎn)換結(jié)果
sfr ADC_LOW2 = 0xBE; //低2位轉(zhuǎn)換結(jié)果
sfr P1ASF = 0x9D; //P1 功能控制寄存器 1001 1101*/
uint AD_data1,AD_data2;
int Temp,Voltage;
unsigned char Get_ADC1(void)
{
unsigned int ADC_Result;
ADC_CONTR = ADC_CONTR|0x80; //開啟AD電源 ADC_CONTR=1; 0X80= 1000 0000
P1ASF = P1ASF | 0x10; //設(shè)置ADC通道為模擬模式
ADC_CONTR = 0xe0; //設(shè)置ADC轉(zhuǎn)換通道 通道CHS2=1 ADC_FLAG=1;
ADC_RES = 0x00; //清零轉(zhuǎn)換結(jié)果寄存器
ADC_CONTR = ADC_CONTR | 0x08; //ADC_CONTR=0XEC;
while(!(ADC_CONTR & 0x10)); //等待轉(zhuǎn)換完成
ADC_CONTR = ADC_CONTR & 0xe0; //清標(biāo)志
ADC_Result = ADC_RES; //提取采集到的數(shù)據(jù)
return ADC_Result;
}
void main()
{
uchar i,j;
LCD12864_init();//初始化液晶顯示器
Init_DS18B20(); //初始化溫差傳感器
while(1){
AD_data1 = (int)(((float)Get_ADC1())*500/256);
Voltage=(int)AD_data1; //讀取電壓值
LCD12864_POS(0,0); //第一行顯示電壓值
for(i=0;i<5;i++){
LCD12864_write_dat(dis1[i]);
} //顯示“Vout :”
LCD12864_write_dat(0xA0); //顯示空格
LCD12864_write_dat(0xA0); //顯示空格
LCD12864_write_dat(0xA0); //顯示空格
LCD12864_write_dat(Voltage/1000+0x30);
LCD12864_write_dat(Voltage/100%10+0x30);
LCD12864_write_dat(0x2e); //顯示小數(shù)點
LCD12864_write_dat(Voltage/10%10+0x30);
LCD12864_write_dat(Voltage%10+0x30);
LCD12864_write_dat(0xA0); //顯示空格
LCD12864_write_dat(0x56); //顯示V
LCD12864_write_dat(0xA0); //顯示空格
/**************/
Temp=Read_Tem()*100; //讀取溫度,并擴大
LCD12864_POS(2,0); //第一行顯示電壓值
for(j=0;j<5;j++){
LCD12864_write_dat(dis2[j]);
} //顯示“Temp :”
LCD12864_write_dat(0xA0); //顯示空格
LCD12864_write_dat(0xA0); //顯示空格
LCD12864_write_dat(0xA0); //顯示空格
LCD12864_write_dat(Temp/1000+0x30);
LCD12864_write_dat(Temp/100%10+0x30);
LCD12864_write_dat(0x2e); //顯示小數(shù)點
LCD12864_write_dat(Temp/10%10+0x30);
LCD12864_write_dat(Temp%10+0x30);
LCD12864_write_dat(0xA0); //顯示空格
LCD12864_POS(2,7);
LCD12864_write_dat(0xa1); //寫溫度符"℃"
LCD12864_write_dat(0xe6); //寫溫度符"℃"
}
}
復(fù)制代碼
Keil代碼下載:
DS18B20測溫 LCD12864顯示 自身8位AD采集.zip
(51.33 KB, 下載次數(shù): 51)
2023-3-3 15:14 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
lixiongkuku
時間:
2023-3-3 15:19
大學(xué)生入門剛需,歡迎復(fù)制粘貼去用
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1