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

正文內(nèi)容

主從式溫度監(jiān)測報警與控制系統(tǒng)電子課程設(shè)計(完整版)

2025-10-15 17:45上一頁面

下一頁面
  

【正文】 工業(yè)系統(tǒng)、消費類產(chǎn)品、溫度計或任何熱敏系統(tǒng); 11) DS18B20 具有負壓特性:電源極性接反時,芯片不會因發(fā)熱而燒毀,但不能 正常工作。為了使單片機正常工作,被鎖存的 EA 電平與這個引腳當(dāng)前輯電平一致。終止閑散工作模式的方法有兩種,一是任何一條被允許中斷的事件被激活, IDL 被硬件清除,即刻終止閑散工作模式。 主從式溫度監(jiān)測報警與控制系統(tǒng) 圖 內(nèi)部振蕩電路 圖 閑散節(jié)電模式 AT89C52 有兩種可用軟件編程的省電模式,它們是閑散模式和掉電工作模式。對外接電容 C1, C2雖然沒有十分嚴格的要求,但電容容量的大小會輕微影響震蕩頻率的高低、震蕩器工作的穩(wěn)定性、 起振的難易程序及溫度穩(wěn)定性。需要注意的是:如果加密位 LBI 被編程,復(fù)位時內(nèi)部會鎖存 EA端狀態(tài)。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個 ALE 脈沖時,閃爍存儲器編程時,這個引腳還用于輸入編程脈沖。閃爍編程或校驗時, P2 口接收高位地址和其它控制信號。對端口寫 “1” ,通過內(nèi)部的電阻把端口拉到高電平,此時可主從式溫度監(jiān)測報警與控制系統(tǒng) 作為輸入口。 8個中斷源 8K字節(jié)可編程閃爍存儲器 其總體方案流程圖如下所示。 二、組內(nèi)分工初定 :負責(zé)電路的焊接和調(diào)試。 B.俞彬:負責(zé)撰寫“課程設(shè)計報告書”,協(xié)助電路的焊接和調(diào)試。 圖 總體設(shè)計方案流程圖 采用數(shù)字溫度芯片 DS18B20 測量溫度,輸出信號全數(shù)字化。壽命: 1000寫 /擦循環(huán) 可編程串行通道 因為內(nèi)部有電阻,某個引腳被外部信號拉低時輸出一個電流。 P3 口 : P3 口是一組帶有內(nèi)部電阻的 8位雙向 I/O 口, P3口輸出緩沖故可驅(qū)動 4 個 TTL 電路。如果必要,可對特殊寄存器區(qū)中的 8EH 單元的 D0 位置禁止ALE操作。如 EA 端為高電平, CPU 則執(zhí)行內(nèi)部程序存儲器中的指令。如果使用石英晶體,我們推薦電容使用30PF177。這兩種方式是控制專用寄存器 PCON 中的 PD 和 IDL 位來實現(xiàn)的。程序會首先影響中斷,進入中斷服務(wù)程序,執(zhí)行完中斷服務(wù)程序,并緊隨 RETI 指令后,下一條要執(zhí)行的指令就是使單片機進入閑散工作模式,那條指令后面的一條指令。機密位只能通 過整片擦除的方法清除。 ☆測溫原理: DS18B20 的測溫原理如下圖所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計數(shù)器 1。例如 +125℃的數(shù)字輸出為 07D0H, +℃的數(shù)字輸出為 0191H, ℃的數(shù)字輸出為 FF6FH, 55℃的數(shù)字輸出為 FC90H。 ☆基本參數(shù): LCD1602 不僅作為控制器,而且還具有驅(qū)動 40*16 點陣液晶像素的能力, LCD1602 內(nèi)部的自定義字符發(fā)生器 RAM(CGRAM)的部分未用位還可作為一般數(shù)據(jù)存儲器應(yīng)用。其內(nèi)部結(jié)構(gòu)如下圖所示。 系統(tǒng)的硬件設(shè)計 基于 PC 傳輸?shù)臏y溫系統(tǒng)總體設(shè)計框圖如下圖所示。 晶振電路,典型的晶振取 (因為可以準確地得到 9600 波特率和19200 波特率 ,用于有串口通訊的場合 )/12MHz(產(chǎn)生精確的 uS 級時歇 ,方便定時操作 )。 溫度顯示報警電路 利用 LCD1602 對采集到的溫度實時顯示,并可通過兩個按鍵設(shè)定溫度范圍,當(dāng)采集溫度超出溫度范圍時, LED 燈變亮實現(xiàn)報警。 主從式溫度監(jiān)測報警與控制系統(tǒng) 圖 PC 機與單片機通信接口電路設(shè)計框圖 說明: AT89C52 單片機利用其 RXD 和 TXD 與外界進行通信,其內(nèi)部有 2個物理上完全獨立的接收、發(fā)送緩沖器 SBUF,可同時發(fā)送和接收數(shù)據(jù)。 圖 設(shè)計流程圖 DS18B20 模塊程序設(shè)計 1) S18B20 的工作過程 主機控制 DS18B20 完成溫度轉(zhuǎn)換過程中的協(xié)議為:初始化; ROM 操作命令;存儲器操作命令。//18B20 初始化 WriteByte(0xcc)。在顯示溫度值時,還需要進行十進制的轉(zhuǎn)換,字符代碼的轉(zhuǎn)換。 五、設(shè)計方案電路圖 主從式溫度監(jiān)測報警與控制系統(tǒng) 將 T89C52 單片機最小系統(tǒng) 、溫度采集電路、溫度顯示報警電路、 PC 機與單片機通信接口電路等各子模塊電路組合起來,就得到了最終的設(shè)計方案電路圖如下所示: 圖 5 主從式溫度監(jiān)測報警與控制系 統(tǒng)電路圖 六、程序主要內(nèi)容與流程圖 程序主要包括 主程序設(shè)計、 DS18B20 模塊程序設(shè)計、 LCD1602 顯示模塊程序設(shè)計、 RS232 串口通信模塊程序設(shè)計等主要內(nèi)容,具體參見《 系統(tǒng)的軟件設(shè)計》這部分內(nèi)容,程序設(shè)計的總體流程圖如下所示: 主從式溫度監(jiān)測報警與控制系統(tǒng) 圖 6 MCU 設(shè)計流程圖 七、課程設(shè)計開展情況及總結(jié) 本次課程設(shè)計從 4 月中旬一直進行到 6月 20 日。前臺由 DS18B20傳感器將溫度直接轉(zhuǎn) 變成數(shù)字信號送入單片機中進行實時采集,通過 LCD1602液晶顯示模塊將結(jié)果在前臺顯示出來;另外,采集結(jié)果又通過 RS232,接口送入 PC 機后臺中以便進行顯示、存儲或后續(xù)處理。 //上下限報警溫度轉(zhuǎn)化為 ASCII碼 ,并送液晶顯示緩沖區(qū) LCD_Initial()。 //溫度正負號標志位 unsigned char warning_key。}。 //分離出 TH 的百十個位 if(TempBuffer0[4]==0x30) TempBuffer0[4]=0xfe。 t[0]=*pt。 /***********************/ t[0]=x。 //將 t[0]暫存到 X,因為取小數(shù)部分還要 用到它 x=4。 //分離出十位 TempBuffer1[3]=(t[1]%100)%10+0x30。 //分離出十分位 TempBuffer1[6]=y%10+0x30。 else warning_key=0。 while(!TI)。 scan_full()。 default: break。 x=DQ。 DQ = 1。 DQ = datamp。 // //寫入 寫暫存器 命令 ,修改 TH 和 TL 和分辯率配置寄存器 //先寫 TH,再寫 TL,最后寫配置寄存器 WriteOneChar(TH)。 // 溫度轉(zhuǎn)化要一段時間 Init_DS18B20()。 sbit LcdRw = P2^1。//在 EN為下降沿的時候鎖存數(shù)據(jù) while(DBPortamp。 主從式溫度監(jiān)測報警與控制系統(tǒng) } // 向 LCD 寫 入 命 令 或 數(shù) 據(jù)************************************************************ define LCD_COMMAND 0 // Command define LCD_DATA 1 // Data define LCD_CLEAR_SCREEN 0x01 // 清屏 define LCD_HOMING 0x02 // 光標返回原點 void LCD_Write(bit style, unsigned char input) { LcdEn=0。//注意順序 LcdEn=0。 LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR)。 str++。 temp=P1。 //再次粗判是否有鍵按下 key_value=P1。 int NextTime。 ///////////////////////////////////////////////////////////////////////////// // CAboutDlg dialog used for App About class CAboutDlg : public CDialog { public: CAboutDlg()。 m_hIcon = AfxGetApp()LoadIcon(IDR_MAINFRAME)。 //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CCommDlg, CDialog) //{{AFX_MSG_MAP(CCommDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_BUTTON1, OnButton1) ON_BN_CLICKED(IDC_BUTTON2, OnButton2) 主從式溫度監(jiān)測報警與控制系統(tǒng) ON_CBN_SELENDOK(IDC_COMSELECT, OnComselect) ON_CBN_SELENDOK(IDC_COMSEEPED, OnComspeed) ON_BN_CLICKED(IDC_STOPRECV, OnStoprecv) ON_BN_CLICKED(IDC_BUTTON5, OnButton5) ON_BN_CLICKED(IDC_BUTTON4, OnButton4) ON_BN_CLICKED(IDC_BUTTON6, OnButton6) ON_BN_CLICKED(IDC_BUTTON7, OnButton7) ON_BN_CLICKED(IDC_BUTTON8, OnButton8) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CCommDlg message handlers BOOL CCommDlg::OnInitDialog() { CDialog::OnInitDialog()。 pSysMenuAppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu)。s main window is not a dialog SetIcon(m_hIcon, TRUE)。 0xFFF0) == IDM_ABOUTBOX)。 //{{AFX_DATA_MAP(CCommDlg) DDX_Control(pDX, IDC_STOPRECV, m_stop)。 //}}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX)。 int check=39。 return key_value。 else key_ok=0。 Print(str)。 //清屏 LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE)。 LCD_Wait()。 LcdRw=0。 _nop_()。 sfr DBPort = 0x80。 //跳過讀序號列號的操作 WriteOneChar(0xBE)。 //寫入想設(shè)定的溫度報警下限 WriteOneChar(RS)。 delay_18B20(5)。 delay_18B20(4)。 } /***********ds18b20 讀一個字節(jié) **************/ unsigned char ReadOneChar(void) { unsigned char i=0。 //定義 DQ 引腳為 /***********ds18b20 延遲子函數(shù)(晶振 12MHz ) *******/ /************DS18B20 對時間要求很嚴 ,但只能長不能短 *************在 下也行 ,因為時間長些 ********/ void delay_18B20(unsigned int i) { while(i)。 //調(diào)用鍵盤掃描程序 switch(key_value) { case 0xfe: TH++。 for(point=0。 //選擇串口工作方式 1 主從式溫度監(jiān)測報警與控制系統(tǒng) TMOD =0x20。 else if(temper1THamp。0x0c。0x0f。 /*********************/ } else { flag=0。 t[1]=*pt。 //分離出十位 TempBuffer0[6]=(TH%100)%10+0x30。\039。 //存放鍵盤掃描值 unsigned char temper1,temper2。 LCD_Print(0
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1