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

正文內(nèi)容

電熱水暖微機恒溫控制系統(tǒng)論文二-資料下載頁

2025-06-27 16:17本頁面
  

【正文】 序如下:bit Init18B20(void){ DQ=0。  Delay15(32)。 //延時 480us  DQ=1。Delay15(6)。 //延時 90us  if(DQ==1) return 0。 //初始化失敗else return 1。 //初始化成功  DQ=1; Delay15(18)。 //延時 270us}b)寫數(shù)據(jù)(18B20 讀寫數(shù)據(jù)都是從低位開始,而 7279 讀寫數(shù)據(jù)都是從高位開始)首先將 DQ 拉低,并延時 10—15us;向總線上寫數(shù)據(jù),并延時 45us 以上,并將DQ 置高。程序如下:void Write18B20(uchar ch){ uchar i。 for (i=0。i8。i++) { DQ=0。 Delay15(1)。 DQ=champ。0x01。 Delay15(3)。 DQ=1。 ch=ch1。 _nop_()。 }}c)讀數(shù)據(jù)首先將 DQ 拉低,并延時 1us 左右(不能太長) ;然后延時幾個 us,并讀取 DQ 的值;DQ 拉低至總線的時間必須限定在 15us 以內(nèi);讀完一位以后,需要延時 45us 以上,并將 DQ 置。程序如下:uchar Read18B20(void){ uchar i 。 uchar ch。for (i=0。i8。i++) { ch=ch1。DQ=0。_nop_()。DQ=1。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。if (DQ=0) ch=champ。0x7f。else ch=ch|0x80。Delay15(3)。DQ=1;}return ch。}(2) 鍵盤顯示專用芯片的編程實現(xiàn)在硬件設(shè)計章節(jié)中已經(jīng)對鍵盤顯示芯片HD7279 的功能做了一個介紹,在本章節(jié)中我們著重介紹它的常用指令和發(fā)送接收一個字節(jié)的子程序以及按指定格式向 7279送顯示數(shù)。 其常用指令分別介紹如下:a)復(fù)位指令(A4H)格式: D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 0 0 1 0 0 功能:當(dāng) HD7279 收到該指令后,將所有的顯示消除,所有設(shè)置的字符消隱、閃爍等屬性也一起全部消除。執(zhí)行該指令后,芯片所處的狀態(tài)與系統(tǒng)上電后所處的狀態(tài)一樣。b)測試指令(BFH)格式:D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 1 1 1 1 1 功能:該指令執(zhí)行后,將使所有的 LED 全部點亮,并且處于閃爍狀態(tài),該項功能主要用于測試。c)左移指令(A1H)格式:D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 0 0 0 1 1 功能:使所有的顯示自左向右(從第 1 位向第 8 位)移動一位(包括處于消隱狀態(tài)的顯示位),但是對各位所設(shè)置的消隱及閃爍屬性不變。移動后最右邊一位為空(無顯示)。例如:移動前,第 2 位“3”和第 4 位“L”為閃爍顯示。4 2 5 2 L P 3 9 執(zhí)行左移后,第 2 位“9”和第 4 位“P”為閃爍顯示。2 5 2 L P 3 9 d)右移指令(A0H)格式:D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 0 0 0 0 0 功能:與左移指令類似,但是移動方向相反,自左向右(從第 8 位向第 1 位)移動,移動后最左邊一位為空(無顯示)。e)循環(huán)左移指令(A3H)格式:D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 0 0 0 1 1 功能:與左移指令類似,不同之處在于,原來最左邊一位(第 8 位)的顯示內(nèi)容,在移動后,變換到了最右邊一位(第 1 位)的位置上。比如在上面的例子中,執(zhí)行完循環(huán)左移指令后的顯示為:2 5 2 L P 3 9 4 第 2 位“9”和第 4 位“P”為閃爍顯示。f)循環(huán)右移指令(A2H)格式:D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 0 0 0 1 0 功能:與循環(huán)左移指令類似,不同之處在于,移動方向恰好相反。g)閃爍控制指令(88H)格式:D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 0 1 0 0 0 d8 d7 d6 d5 d4 d3 d2 d1功能:該指令用來控制各位數(shù)碼管的閃爍屬性。前一個字節(jié)為指令碼,后一個字節(jié)的 d1~d8 對應(yīng)數(shù)碼管的第 1~8 位,分別控制第 1 位到第 8 位是否閃爍。1=閃爍,0=不閃爍。開機后,默認(rèn)狀態(tài)為各位均不閃爍。h)消隱控制指令(98H)格式:D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 1 1 0 0 0 d8 d7 d5 d4 d3 d2 d1 d0功能:該指令用來控制各位數(shù)碼管的消隱屬性。前一個字節(jié)為指令碼,后一個字節(jié)的 d1~d8 對應(yīng)數(shù)碼管的第 1~8 位,分別控制第 1 位到第 8 位是否顯示。1=顯示,0=消隱。當(dāng)某一位被賦予了消隱屬性后,HD7279 在動態(tài)顯示掃描時,將跳過該位。因此在這種情況下,無論對該位寫入何值,均不會顯示。但寫入的值將被保留,在將該位重新設(shè)為顯示狀態(tài)后,最后一次寫入的數(shù)據(jù)將被顯示出來。i)段點亮指令(E0H)格式:D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 1 1 1 0 0 0 0 0 X X d5 d4 d3 d2 d1 d0功能:該指令為段尋址指令,用來控制點亮數(shù)碼管中的某一指定段,或 LED 矩陣中某一指定的 LED。前一個字節(jié)為指令碼,后一個字節(jié)中的 XX 為無效位,d5~d0為段地址,范圍從 00H~3FH,具體分配為:數(shù)碼管第 1 位的 G 段地址為 00H,F(xiàn) 段為01H,……,A 段為 06H,DP 為 07H;數(shù)碼管的第 2 位的 G 段地址為 08H,F(xiàn) 段為09H,……,A 段為 0EH,DP 為 0FH;依次類推,直至第 8 位小數(shù)點 DP 的段地址為3FH。j)段熄滅指令(C0H)格式:D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 1 1 0 0 0 0 0 0 X X d5 d4 d3 d2 d1 d0功能:該指令也是段尋址指令,用來控制熄滅數(shù)碼管中的某一指定段,或 LED矩陣中某一指定的 LED。指令結(jié)構(gòu)與“段點亮指令”相同,不再贅述。7279 操作指令如下://********發(fā)送一個字節(jié) *********//void send_byte(uchar out_byte){ uchar s。cs=0。long_delay()。for(s=0。s8。s++){if(out_byteamp。0x80){dat=1。}else{dat=0。}clk=1。short_delay()。clk=0。short_delay()。out_byte=out_byte1。}dat=0。}//*********接收一個字節(jié)指令**********//uchar receive_byte(void){uchar i,in_byte。dat=1。long_delay()。for(i=0。i8。i++){clk=1。short_delay()。in_byte=in_byte1。if(dat){in_byte=in_byte|0x01。}clk=0。short_delay()。}dat=0。return(in_byte)。}//******** 按給定格式向 7279 送顯示數(shù)**********//void write7279(uchar cmd,uchar dta){send_byte(cmd)。 //寫命令字send_byte(dta)。 //送數(shù)}//*******讀 7279 相關(guān)數(shù)據(jù),讀鍵值********//ucharread7279(uchar mand){send_byte(mand)。return(receive_byte())。}(3) 串口初始化子程序void rs232(void){ TMOD=0x20。 SCON=0xd0。 PCON=0x00。 TL1=(FXTL/FSYS/32/FDB)。 TH1=(FXTL/FSYS/32/FDB)。 TR1=1。 TI=1。}實現(xiàn)與上位機進(jìn)行通信。3 編程中的特點(1) 主體程序特點主體程序是圍繞 PID 運算和調(diào)功輸出來進(jìn)行的,其中比例增益、積分增益、微分增益為節(jié)約機時是不用經(jīng)常運算的,只需要在有設(shè)定參數(shù)改動時才進(jìn)行運算。在主程序流程圖中可以看到,有按鍵操作時,循環(huán)跳轉(zhuǎn)返回點是不同的,用時最多的還是在調(diào)功輸出上,整體程序盡量做到延時準(zhǔn)確,以提高控制輸出準(zhǔn)確性。(2) 按鍵處理程序思路讀鍵值操作在中斷程序中完成,在主程序中是用查詢方式進(jìn)入鍵盤處理子程序的。鍵盤處理子程序的設(shè)計主要思路是:剛開始讀取出的鍵值是與鍵盤上的標(biāo)注是不同的,通過查表程序?qū)⑵滢D(zhuǎn)換成自定義鍵盤值,然后再查看鍵值范圍是不是在功能鍵范圍內(nèi),若不在,則當(dāng)作誤操作處理,跳出鍵操作處理,剛開始是按的數(shù)字鍵,程序就不會繼續(xù)往下走,不進(jìn)行有效操作。若為功能鍵,就進(jìn)入下一步鍵盤處理操作。程序中可供操作的鍵有:P—比例度,I—積分時間,D—微分時間,T—溫度設(shè)定值。這些參數(shù)是全局變量,第一步要做的就是將這些變量的初始值裝入到顯示存儲區(qū)中,加上提示符,再顯示出來,接下來就是一個按鍵查詢循環(huán),在這個循環(huán)里,可以進(jìn)行參數(shù)輸入(數(shù)字鍵)和修改(Back 鍵)按 Enter 鍵確認(rèn)輸入數(shù)值。在Enter 鍵處理中,根據(jù)顯示存儲區(qū)中的提示符進(jìn)行判斷是要對哪個參數(shù)進(jìn)行修改,并將設(shè)定值賦給對應(yīng)的全局變量,完成參數(shù)修改。五 微機恒溫控制系統(tǒng)的上位機軟件設(shè)計為了方便對溫度數(shù)據(jù)的記錄和 PID 參數(shù)整定,可以想個方法來解決此問題,即設(shè)計一套上位機軟件,實現(xiàn)對數(shù)據(jù)的記錄和溫度變化曲線自動繪圖及顯示。上位機軟件是用 Visual Basic .NET 編寫,由于時間的限制,加上本次的上位機軟件的復(fù)雜性,本次編寫只是做了初步的設(shè)計,還要等待進(jìn)一步的完善。上位機的軟件設(shè)計界面,代碼可采用以有的,程序運行時,先按啟動按鈕啟動串口接收,標(biāo)示燈會顯亮紅色,表示開始接收數(shù)據(jù)。圖形窗口中自動繪出溫度數(shù)據(jù)的時間曲線。在這里對上位機程序的設(shè)計介紹只做簡單的說明:串口通迅是用的 MSComm 控件做的,MSComm 控件比較好用,具體使用方法如下:由于 Visual Basic 的串行通信控件并不會主動出現(xiàn)在工具箱中,當(dāng)我們需要MSComm 控件時,讓它出現(xiàn)在工具箱中的操作步驟如下:a)單擊【工程】菜單。b)在工程菜單中選擇【部件】命令。c)打開【部件】對話框,選中 Microsoft Comm Control 復(fù)選框。d)單擊【應(yīng)用】或【確定】按鈕,即可在工具箱中見到“電話盒(MSComm 控件)”的圖標(biāo),我們就可以將 MSComm 控件加載,進(jìn)行串行通訊。Visual Basic 窗體設(shè)計首先建立一個工程,在【工程】選中【添加 MDI 窗口】 ,要加入子窗口時,可以先添加窗體,再將窗體的 MDIChild 屬性設(shè)置為 True。本設(shè)計中用的上位機軟件設(shè)定了兩個窗體,一個是 MDI 窗體,命名為 ComFrm;一個是子窗口,命名為 PicFrm。在MDI 窗體 ComFrm 中加入一些 PictureBox 控件,構(gòu)造窗體樣式,加入 CommonDialog 控件,用來保存接收數(shù)據(jù)。加入 MSComm 控件用來通訊,加入一個 Timer 控件,用來定時讀取串口緩沖中的數(shù)據(jù)。其設(shè)計結(jié)果如下圖 51 所示。圖 51 設(shè)計結(jié)果圖 Timer 控件 Timer1 的 Interval 值設(shè)為 50。PicFrm 窗體是作為畫圖的空間,將其 Apperance 屬性設(shè)為 0Flat,BackColor 設(shè)為白色,等一些其他的設(shè)置不做介紹。上位機程序中還有很多數(shù)不清的細(xì)小的部分設(shè)計,例如[文件]菜單中有對數(shù)據(jù)的保存、清空、退出操作,[設(shè)置]中有對串口的選
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1