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

正文內(nèi)容

基于yeelink的溫度遠(yuǎn)程采集系統(tǒng)實訓(xùn)報告(編輯修改稿)

2024-08-15 08:02 本頁面
 

【文章內(nèi)容簡介】 LG7290 能夠直接驅(qū)動 8 位共陰式數(shù)碼管(或 64 只獨立的 LED),同時還可以掃描管理多達(dá) 64 只按鍵。其中有 8 只按鍵還可以作為功能鍵使用,就像電腦鍵盤上的 Ctrl、Shift、 Alt 鍵一樣。另外 ZLG7290B 內(nèi)部還設(shè)置有連擊計數(shù)器,能夠使某鍵按下后不松手而連續(xù)有效。采用 I2C 總線方式,與微控制器的接口僅需兩根信號線??煽貟呙栉粩?shù),可控任一數(shù)碼管閃爍。 引腳說明如下圖: ZLG7290 使用說明 ZLG7290B 是基于 I2C 總線接口的芯片。主控單片機(jī) ADUC831 作為主器件時,內(nèi)部沒有I2C 總線功能,因此需用 SPI 總線的引腳來模擬 I2C 總線。具體連接如下: ZLG7290B ADUC831 GND DGND SDA MOSI SCL SCLOCK /INT INT0 內(nèi)蒙古科技大學(xué) 信息工程學(xué)院實訓(xùn)報告 8 VCC DVDD 但是,這種連接不是唯一的,只是在所寫 的軟件里需要這樣連接。其實中斷可以根據(jù)自己所選的中斷而定。地( GND)和電源( VCC)也可以另外從電源上接過來。所用電源為 5V。 編譯軟件使用的是 WSD,這個軟件主要是用于 AD系列芯片的。只要下載擴(kuò)展名為 HEX 的文件即可。 ZLG7290 工作原理 ZLG7290 的核心是一塊 ZLG7290B 芯片,它采用 I2C 接口,能直接驅(qū)動 8 位共陰式數(shù)碼管,同時可掃描管理多達(dá) 64 只按鍵,實現(xiàn)人機(jī)對話的功能資源十分豐富。除具有自動消除抖動功能外,它還具有段閃爍、段點亮、段熄滅、功能鍵、連擊鍵計數(shù)等強(qiáng)大功能,并可提供 10 種數(shù)字和 21 種字母的譯碼顯示功能,用戶可以直接向顯示緩存寫入顯示數(shù)據(jù),而且無需外接元件即可直接驅(qū)動數(shù)碼管,還可擴(kuò)展驅(qū)動電壓和電流。此外, ZLG7290B 的電路簡單,使用也很方便。 用戶按下某個鍵時, ZLG7290 的 INT 引腳會產(chǎn)生一個低電平的中斷請求信號,讀取鍵值后,中斷信號就會自動撤銷。正常情況下,微控制器只需要判斷 INT 引腳就可以得到鍵盤輸入的信息。微控制器可通過兩種方式得到用戶的鍵盤輸入信息。其一是中斷方式,該方式的優(yōu)點是抗干擾能力強(qiáng),缺點是要占用微控制器的一個外部中斷源。其二是查詢方式,即通 過不斷查詢 INT 引腳來判斷是否有鍵按下,該方式可以節(jié)省微控制器的一根 I/ O 口線,但是代價是 I2C 總線處于頻繁的活動狀態(tài),消耗電流多并且不利于抗干擾。 系統(tǒng)構(gòu)成框圖 系統(tǒng)原理介紹 數(shù)字溫度計系統(tǒng)構(gòu)成框圖中 DS18B20 溫度傳感器主要用于采集溫度; ZLG7290 按鍵電路用于控制和調(diào)節(jié)時間,數(shù)碼管用于時間顯示便于讀數(shù),蜂鳴器用于報警鬧鈴。 DS18B20 溫度傳感器 8051單片機(jī)芯片 蜂鳴報警器 ZLG7290 數(shù)碼管顯示 內(nèi)蒙古科技大學(xué) 信息工程學(xué)院實訓(xùn)報告 9 軟件流程圖 主程序的主要功能是負(fù)責(zé)溫度的實時顯示、讀出并處理 DS18B20 的測量的當(dāng)前溫度值,溫度測量每 1s進(jìn)行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖 主程序流程圖 讀溫度流程圖 初始化 調(diào)用顯示子程序 1S 到? 初次上電 讀出溫度值溫度計算處理顯示數(shù)據(jù)刷新 發(fā)溫度轉(zhuǎn)換開始命令 N Y N Y Y 發(fā) DS18B20 復(fù)位命令 發(fā)跳過 ROM 命令 發(fā)讀取溫度命令 讀取操作, CRC 校驗 9 字節(jié)完? CRC 校驗正?確? 移入溫度暫存器 結(jié)束 N N Y 內(nèi)蒙古科技大學(xué) 信息工程學(xué)院實訓(xùn)報告 10 軟件 程序 程序 清單及注釋 include include define zlg7290 0x70 /*ZLG7290的 IIC地址 */ define uchar unsigned char /*宏定義 */ define uint unsigned int define _Nop() _nop_() /*定義空指令 */ uchar disp_buf[8]={0,0,0,0,0,0,0,0}。 /*顯示緩沖區(qū) */ uchar temper[2]。/*存放溫度的數(shù)組 */ uchar code sampling[]={0,20,29,38,47,56}。 /*端口位定義 */ sbit SDA=P1^7。 /*模擬 I2C數(shù)據(jù)傳送位 */ sbit SCL=P1^6。 /*模擬 I2C時鐘控制位 */ sbit DQ =P3^3。 /*18B20數(shù)據(jù)線引腳 */ sbit KEY_INT=P3^2。 sbit BEEP=P3^5。 bit ack。 /*應(yīng)答標(biāo)志位 */ uchar g。 uchar t1。 uchar t2。 uchar 1=1。 uchar KEY。 uchar change_disp=0。 /*IIC開始 */ /******************************************************************* 起動 IIC總線函數(shù) ********************************************************************/ void Start_I2c() { SDA=1。 /*發(fā)送起始條件的數(shù)據(jù)信號 */ _Nop()。 SCL=1。 _Nop()。 /*起始條件建立時間大于 ,延時 */ 內(nèi)蒙古科技大學(xué) 信息工程學(xué)院實訓(xùn)報告 11 _Nop()。 _Nop()。 _Nop()。 _Nop()。 SDA=0。 /*發(fā)送起始信號 */ _Nop()。 /* 起始條件鎖定時間大于 4μ s*/ _Nop()。 _Nop()。 _Nop()。 _Nop()。 SCL=0。 /*鉗住 I2C總線,準(zhǔn)備發(fā)送或接收數(shù)據(jù) */ _Nop()。 _Nop()。 } /******************************************************************* 結(jié)束 IIC總線函數(shù) ********************************************************************/ void Stop_I2c() { SDA=0。 /*發(fā)送結(jié)束條件的數(shù)據(jù)信號 */ _Nop()。 /*發(fā)送結(jié)束條件的時鐘信號 */ SCL=1。 /*結(jié) 束條件建立時間大于 4μ s*/ _Nop()。 _Nop()。 _Nop()。 _Nop()。 _Nop()。 SDA=1。 /*發(fā)送 I2C總線結(jié)束信號 */ _Nop()。 _Nop()。 _Nop()。 _Nop()。 } /******************************************************************* 字節(jié)數(shù)據(jù)傳送函數(shù) 內(nèi)蒙古科技大學(xué) 信息工程學(xué)院實訓(xùn)報告 12 ********************************************************************/ void SendByte(uchar c) { uchar BitCnt。 for(BitCnt=0。BitCnt8。BitCnt++) /*要傳送的數(shù)據(jù)長度為 8位 */ { if((cBitCnt)amp。0x80)SDA=1。 /*判斷發(fā)送位 */ else SDA=0。 _Nop()。 SCL=1。 /*置時鐘線為高,通知被控器開始接收數(shù)據(jù)位 */ _Nop()。 _Nop()。 /*保證時鐘高電平周期大于 4μ s*/ _Nop()。 _Nop()。 _Nop()。 SCL=0。 } _Nop()。 _Nop()。 SDA=1。 /*8位發(fā)送完后釋放數(shù)據(jù)線,準(zhǔn)備接收應(yīng)答位 */ _Nop()。 _Nop()。 SCL=1。 _Nop()。 _Nop()。 _Nop()。 if(SDA==1)ack=0。 else ack=1。 /*判斷是否接收到應(yīng)答信號 */ SCL=0。 _Nop()。 _Nop()。 } /******************************************************************* 字 節(jié)數(shù)據(jù)傳送函數(shù) 內(nèi)蒙古科技大學(xué) 信息工程學(xué)院實訓(xùn)報告 13 ********************************************************************/ uchar RcvByte() { uchar retc。 uchar BitCnt。 retc=0。 SDA=1。 /*置數(shù)據(jù)線為輸入方式 */ for(BitCnt=0。BitCnt8。BitCnt++) { _Nop()。 SCL=0。 /*置時
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1