freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

單片機課程設計報告-基于at89c51單片機的數顯溫度傳感器設計(完整版)

2025-07-12 21:00上一頁面

下一頁面
  

【正文】 度轉換;復位部分,即復位電路,按鍵部分用來設置上下限報警溫度??傮w電路結構框圖所示:共陽數碼管顯示模塊AT89C51單片機單片機時鐘電路及復位電路DS18BB20溫度傳感器模塊蜂鳴器報警及LED顯示模塊按鍵控制模塊電源系統(tǒng)設計(詳細介紹各單元電路的選擇、設計及工作原理分析,并介紹有關參數的計算及元器件參數的選擇等,要求有原理圖。DS18BB20溫度傳感器模塊DS18B20溫度傳感器是美國DALLAS半導體公司最新推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據實際要求通過簡單的編程實現9~12位的數字值讀數方式。系統(tǒng)的調試及性能分析:硬件調試,首先檢查電感的焊接是否正確,然后可用萬用表測試或通電檢測。五、附錄附錄一:元件清單元件名稱型號數量單片機最小開發(fā)板STC89C521溫度傳感器DS18B201三極管88501蜂鳴器1LED 紅1電阻10k、3k、2k、1k、5330各5各2位一體數碼管共陽2AC/DC(5V/1A)電源1單排插針 402雙排插針 4029X15cm萬用板(3連孔)1杜邦線15附錄二:實物焊接圖附錄三:程序/********************************************************************* 程序名。 //s1標志位用于上下限查看時的顯示void display1(uint z)。 alarm()。 //定義全局變量a用于不同模式下數碼管顯示的選擇bit k4=0。j0。} } if(f!=0) //若溫度為負 { count++。 count。 if(key1==0) //K1按按鍵時消抖 { beer=1。 //在正常模式下選擇K4的消按鍵音功能 v=0。 //a=2選擇顯示下限溫度 default:break。amp。else f_max=~f_max。 a=1。 a=2。} //a=0顯示實測溫度,v1清零,關定時器1 if(k4==0) //k4=0時K4按鍵選擇消按鍵音的功能 { if(key4==0) { if(v2==0)beer=0。 *********************************************************************/ifndef __ds18b20_h__ //定義頭文件define __ds18b20_h__define uint unsigned int define uchar unsigned char sbit DQ= P2^3。 //下限溫度的標志位‘0’表示“正溫度” ‘1’表示“負溫度”)bit w=0。j)。 //延時,等待上拉電阻拉高總線 DQ=1。 _nop_()。i0。 uint i。 ds18b20_write(0xcc)。max=(max0x80)。 if (i==0) { f=0。 temp=((a4)|(b4))。 ds18b20_write(0x4e)。TR1=1。} if(tempmax )//當測量值小于最大值時不報警 {w=0。(tempmax)) {w=0。 //uchar num=0。j0。 // 局部變量t為1啟動定時器1,為0關閉定時器1}/******************************************************//* 定時器1中斷函數 //*****************************************************/void timer1() interrupt 3{ TH0=0x3c。}} else //進入4次中斷,定時200ms時若報警標志位w為‘1’則啟動報警,不為‘1’不啟動 //實現間歇性報警功能 {s=0。 //定時1s時間到時自動關閉報警上下限查看功能 } }/******************************************************//* 調整報警上下限選擇函數 //*****************************************************/void selsct_1(uchar f,uchar k) //消除百位的0顯示,及正負溫度的顯示選擇{ if(f==0) //若為正溫度,百位為0則不顯示百位,不為0則顯示 { if(k/100==0) P0=temperature3[0]。 } if(f==1) //若為負溫度,若十位為0,十位不顯示,否則十位顯示‘’ { if(k%100/10==0) P0=temperature3[2]。 //關第四個數碼管 wei1=1。 wei2=1。 } break。 if(s1==1) selsct_2(f_max,max)。 wei4=1。 } break。j++) //依次從左至右顯示‘’ { switch(j) { case 0: wei2=0。 wei4=0。break。//第四個數碼管顯示 } display_delay(400)。李群芳//第三個數碼管顯示 case 3: wei1=0。break。 wei4=0。 //每個數碼管顯示3ms左右 } }/******************************************************//* 開機顯示函數 //*****************************************************/void display1(uint z) //用于開機動畫的顯示{ uchar i,j。}//若a=0則在第四個數碼管上顯示測量溫度的小數位 if(a==1) //若a=1則在第四個數碼管上顯示上限報警溫度的個位 { if(s==0) P0=temperature1[max%10]。 else P0=temperature3[0]。 wei2=0。} //若a=0則在第二個數碼管上顯示測量溫度的十位或‘’ if(a==1) //若a=1則在第二個數碼管上顯示上限報警溫度的百位或‘’ { if(s==0) selsct_1(f_max,max)。} //若a=0則在第一個數碼管上顯示測量溫度的百位或‘’ if(a==1) { P0=temperature3[3]。 } }/******************************************************//* 主函數顯示 //*****************************************************/void display(uchar t,uchar t_d) //用于實測溫度、上限溫度的顯示{ uchar i。 } if(f==1) //若為負溫度,若十位為0,百位不顯示,否則百位顯示‘’ { if(k%100/10==0) P0=temperature3[0]。led=0。 num++。}/******************************************************//* 定時器1初始化函數 //*****************************************************/void timer1_init(bit t){ TMOD=0x10。 //定義顯示碼表0~9uchar code temperature2[]={ 0x40,0x79,0x24,0x30,0x19, 0x12,0x02,0x78,0x00,0x10}。TR1=1。TR1=1。amp。 //向暫存器TH(上限溫度暫存器)寫溫度 ds18b20_write(min)。0x0f)。 //整數部分 a=(aamp。 if((minamp。 a=ds18b20_read()。 ds18b20_write(0xcc)。 DQ=damp。 DQ = 1。 uchar d=0。 DQ=1。/******************************************************//* 延時子函數 //**************************************
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1