加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

基于51單片機(jī)的溫度測量【PT100,ADC0804,數(shù)碼管,串口】(仿真)

11小時前
410
服務(wù)支持:
技術(shù)交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗(yàn)、收獲成長和認(rèn)同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當(dāng)前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
放大
實(shí)物圖
相關(guān)方案
  • 方案介紹
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

//只能用一個芯片,否則失效
#include "adc0804.h"
#include "intrins.h"

void adc_delay(uint z)// 延時函數(shù)
{ 
	while(z--);
} 

uchar adc0804()//控制并讀取adc0804轉(zhuǎn)換好的數(shù)據(jù)
{
 uchar a;          //寫入控制命令,啟動轉(zhuǎn)換
 adc_intr=1;
 adc_cs=1;
 adc_wr=1; 
 adc_cs=0;
 adc_wr=0;
 _nop_();
 adc_wr=1;
 adc_cs=1;

 adc_delay(50);

 //adc_intr=0;
 adc_cs=0;
 adc_rd=0;		  //讀取已轉(zhuǎn)換好的數(shù)據(jù)
 adc_intr=1;
 a=P1;
 _nop_();
 adc_rd=1;
 adc_cs=1; 
 
 return a;
}
define uint unsigned int
sbit smg1=P2^0;//數(shù)碼管
sbit smg2=P2^1;
sbit smg3=P2^2;
sbit smg4=P2^3;
sbit led1=P2^5;//綠色
sbit led2=P2^6;//紅色
sbit out=P2^4;//風(fēng)扇
sbit k1=P2^7;//設(shè)置
//數(shù)碼管編碼
uchar code smgduan[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
uchar time=0,mode=0;//系統(tǒng)變量
uint wendu=0,set=100;//溫度
uchar sec=0;
uchar flag=0;//手動控制
uchar shou[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};//接收控制
uchar next=0;
//串口發(fā)送
void send(uchar i)
{
	SBUF=i;
	while(!TI);
	TI=0;
}
void main()	//主函數(shù)
{
	uchar k=0;
	SCON=0X50;			//設(shè)置為工作方式1
	TMOD=0X20;			//設(shè)置計(jì)數(shù)器工作方式2
	TH1=0XFD;			
	TL1=0XFD;
	ES=1;						//打開接收中斷
	EA=1;						//打開總中斷
	TR1=1;					//打開計(jì)數(shù)器
	//設(shè)置INT0
	IT0=1;//跳變沿出發(fā)方式(下降沿)
	EX0=1;//打開INT0的中斷允許。	
	//設(shè)置INT1
	IT1=1;//跳變沿出發(fā)方式(下降沿)
	EX1=1;//打開INT1的中斷允許。	
	TMOD|=0X01;//定時器初始化
	TH0=(65536-50000)/256;//50ms
	TL0=(65536-50000)%256;	
	ET0=1;//打開定時器0中斷允許
	EA=1;//打開總中斷
	TR0=1;//打開定時器
	while(1)
	{
		//顯示
		if(mode<2)
		{
			if(mode==0)
				P0=0xfe;
			else
				P0=0xf7;
			smg1=0;
			adc_delay(100);
			smg1=1;
			P0=smgduan[wendu/100];
			smg2=0;
			adc_delay(100);
			smg2=1;
			P0=smgduan[wendu%100/10];
			smg3=0;
			adc_delay(100);
			smg3=1;
			P0=smgduan[wendu%10];
			smg4=0;
			adc_delay(100);
			smg4=1;
		} 
		else
		{
			P0=0x89;
			smg1=0;
			adc_delay(100);
			smg1=1;
			P0=smgduan[set/100];
			smg2=0;
			adc_delay(100);
			smg2=1;
			P0=smgduan[set%100/10];
			smg3=0;
			adc_delay(100);
			smg3=1;
			P0=smgduan[set%10];
			smg4=0;
			adc_delay(100);
			smg4=1;
		}
		if(!k1 &&(k!=1))//設(shè)置
		{
			k=1;
			if(mode<2)
				mode=2;
			else
				mode=0;
		} 
		if(k1)
			k=0;
	}
}
//定時器中斷
void Timer0() interrupt 1
{
	float i=0;
	if(time<10)//0.5s
		time++;
	else

資料借鑒于此紛傳

  • 有需要資料的可了解一下.docx

相關(guān)推薦

電子產(chǎn)業(yè)圖譜