




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
"微機(jī)原理及接口技術(shù)"課程設(shè)計說明書課題:家用空調(diào)溫度控制器的控制程序設(shè)計專業(yè):班級::**:指導(dǎo)教師:王亞林2015年1月8日目錄第1章、設(shè)計任務(wù)與目標(biāo)31.1設(shè)計課題:31.2設(shè)計目的:31.3設(shè)計任務(wù):31.4根本設(shè)計要求:3第2章、總體設(shè)計規(guī)劃與方案論證 62.1設(shè)計環(huán)節(jié)及進(jìn)程安排 62.2方案論證6第3章、總體軟件設(shè)計說明及總流程圖103.1總體軟件設(shè)計說明103.2總流程圖 11第4章、系統(tǒng)資源分配說明 134.1系統(tǒng)資源分配 134.1.1系統(tǒng)部單元分配表 134.1.2硬件資源分配 154.2數(shù)據(jù)定義說明 164.2.1局部數(shù)據(jù)定義說明 16第5章、局部程序設(shè)計說明 175.1總初始化以及自檢5.2主流程5.2.1按鍵音模塊 175.2.2單按鍵消抖模塊 175.2.3PB按鍵功能模塊 185.2.4.根本界面拆字模塊 195.2.54*4矩陣鍵盤模塊 195.2.6模式顯示模塊 205.2.7顯示更新模塊 215.2.8室溫度AD轉(zhuǎn)換模塊 215.2.94*4矩陣鍵盤掃描子程序 215.2.10整點報時模塊 235.2.11空調(diào)進(jìn)程判斷及顯示模塊 235.2.12三分鐘壓縮機(jī)保護(hù)模塊 235.2.13風(fēng)向擺動模塊 245.2.14驅(qū)動控制模塊 245.2.15定時開關(guān)機(jī)模塊 25第6章、系統(tǒng)功能與用戶操作使用說明266.1操作顯示局部266.2系統(tǒng)功能266.3用戶操作使用說明27第7章、課程設(shè)計總結(jié) 27第8章、附錄:源程序清單30
第1章設(shè)計任務(wù)與目標(biāo)1.1設(shè)計課題:家用空調(diào)溫度控制器的控制程序設(shè)計1.2設(shè)計目的:通過小型微機(jī)應(yīng)用產(chǎn)品控制程序的設(shè)計與調(diào)試過程,運用"微機(jī)原理及接口技術(shù)"課程所學(xué)的根本知識,進(jìn)而得到理解、穩(wěn)固和提高,學(xué)習(xí)掌握分析與解決實際問題的方法與手段,提高設(shè)計、編程與調(diào)試的實際動手能力,作為工程技術(shù)工作的一次根本訓(xùn)練。1.3設(shè)計任務(wù):隨著現(xiàn)代生活條件的提高,家用空調(diào)已廣泛使用,是一種用于房間提供處理空氣溫度變化的機(jī)組。它的功能是對該房間空氣的溫度、濕度、和空氣流速等參數(shù)進(jìn)展調(diào)節(jié),以滿足人體舒適的要求。設(shè)計一個以AT89S51單片機(jī)為核心的家用空調(diào)溫度控制器,根本任務(wù)是利用AT89S51單片機(jī)、ADC0809模數(shù)轉(zhuǎn)換器等芯片設(shè)計并制作一個具有制冷、制熱、通風(fēng)和自動運行的手控型空調(diào)控制器,包含實時鐘顯示,可選擇制冷、制熱、通風(fēng)、自動運行等工作模式,能對溫度進(jìn)展設(shè)定和控制,具有壓縮機(jī)三分鐘自動保護(hù)等功能,編寫智能控制器的控制程序并在實驗板上模擬調(diào)試。1.4根本設(shè)計要求:1、開機(jī)進(jìn)展適當(dāng)?shù)挠嘘P(guān)接口部件及數(shù)碼顯示器、指示燈、訊響器等自檢。2、八位LED七段數(shù)碼管作為時鐘及其他界面信息顯示。3、根本顯示模式為按照24小時制動態(tài)顯示實時鐘的時、分、秒信息。4、4×4鍵盤作為參數(shù)設(shè)定與設(shè)備操作的輸入設(shè)備,由“0〞~“9〞數(shù)字鍵及假設(shè)干個功能鍵組成,“0〞~“9〞數(shù)字鍵須按照國際通行排列布局,鍵按下時應(yīng)回饋短促的鍵音,鍵盤掃描還應(yīng)采取消抖動處理。時鐘調(diào)校功能:按下“時鐘設(shè)定〞鍵則進(jìn)入時鐘設(shè)定界面,在調(diào)取并顯示當(dāng)前實時鐘的時、分值根底上供逐位輸入新的時、分值,當(dāng)前數(shù)字位以2Hz頻率閃爍顯示的形式標(biāo)示;按“確定〞鍵則審核不存在超值域的情況下存入新的時、分值,同時對秒清0以及對秒的前級計時環(huán)節(jié)置初值;按“取消〞鍵則不存新值返回根本顯示模式;還可設(shè)置“←〞鍵、“→〞鍵等以方便操作。利用實驗板上的按鈕、撥動開關(guān)替代設(shè)備的開關(guān)量輸入信號,應(yīng)當(dāng)由開關(guān)量輸入處理子模塊程序統(tǒng)一對開關(guān)量輸入信號進(jìn)展檢測輸入并進(jìn)展軟件消抖動處理;利用實驗板上的驅(qū)動LED指示燈的輸出接口電路替代設(shè)備的開關(guān)量輸出驅(qū)動信號,應(yīng)當(dāng)對輸出控制信息建立輸出緩存,并統(tǒng)一由輸出驅(qū)動子模塊程序根據(jù)輸出緩存容執(zhí)行實質(zhì)的輸出驅(qū)動;利用實驗板上的蜂鳴器替代設(shè)備的訊響部件,應(yīng)當(dāng)統(tǒng)一由訊響驅(qū)動子模塊程序綜合各功能程序模塊所產(chǎn)生的訊響邏輯標(biāo)記信息執(zhí)行實質(zhì)的蜂鳴器驅(qū)動。7、空調(diào)控制器應(yīng)具有制冷、制熱、通風(fēng)和自動運行四種工作模式。a.制冷:室風(fēng)機(jī)、壓縮機(jī)及室外風(fēng)機(jī)工作,而四通換向閥停頓工作。b.制熱:室風(fēng)機(jī)、壓縮機(jī)、室外風(fēng)機(jī)和四通換向閥均工作。c.通風(fēng):室風(fēng)機(jī)工作,而壓縮機(jī)、室外風(fēng)機(jī)和四通換向閥均不工作?!鵧.自動運行:能根據(jù)當(dāng)前室溫度和自動運行的設(shè)定溫度,自動選擇制冷、制熱或通風(fēng)工作模式。e.每按一下工作模式選擇鍵時,工作模式按圖1所示的箭頭方向依此變換:圖1工作模式選擇8、能對溫度進(jìn)展設(shè)定和控制:a.制冷時溫度調(diào)節(jié)圍為:20℃~32℃。當(dāng)室溫度高于設(shè)定溫度1℃時,開場制冷;而當(dāng)室溫度降到設(shè)定溫度時,則轉(zhuǎn)為通風(fēng)狀態(tài)。b.制熱時溫度調(diào)節(jié)圍為:14℃~30℃。當(dāng)室溫度低于設(shè)定溫度1℃時,開場制熱;而當(dāng)室溫度升到設(shè)定溫度時,則轉(zhuǎn)為通風(fēng)狀態(tài)。c.通風(fēng)時溫度設(shè)置欄顯示“一一〞,并且溫度設(shè)置鍵無效。※d.自動運行溫度調(diào)節(jié)圍為:25℃、27℃、29℃。假設(shè)室溫度低于設(shè)定溫度5℃時,自動按制熱工作模式運行;假設(shè)室溫度高于設(shè)定溫度時,則按制冷模式運行;否則按通風(fēng)模式運行。e.溫度設(shè)定鍵每按一下,則溫度上升或下降1℃〔在設(shè)定圍〕。f.控溫精度為±1℃9、室風(fēng)機(jī)具有高、中、低三檔風(fēng)速和自動風(fēng)控制功能。每按一下風(fēng)速選擇鍵時,風(fēng)速模式按圖4所示的箭頭方向依此變換:圖2風(fēng)速模式選擇※其中自動風(fēng)與工作模式及溫度有關(guān):a.制冷時,當(dāng)室溫度高于設(shè)定溫度5℃時,為高速風(fēng);當(dāng)室溫度高于設(shè)定溫度2℃~5℃時,為中速風(fēng);當(dāng)室溫度不高于設(shè)定溫度2℃時,為低速風(fēng);b.制熱時,當(dāng)室溫度低于設(shè)定溫度5℃時,為高速風(fēng);當(dāng)室溫度低于設(shè)定溫度2℃~5℃時,為中速風(fēng);當(dāng)室溫度不低于設(shè)定溫度2℃時,為低速風(fēng);c.通風(fēng)時,當(dāng)室溫度高于25℃時,為高速風(fēng);當(dāng)室溫度介于20℃~25℃時,為中速風(fēng);當(dāng)室溫度低于設(shè)定溫度20℃時,為低速風(fēng);※10、具有壓縮機(jī)三分鐘自動保護(hù)功能。由于家用空調(diào)器所使用的壓縮機(jī)大多為電容啟動運行電動機(jī),帶載啟動能力較差,因此無論在制冷運行還是在制熱運行時,當(dāng)壓縮機(jī)停頓工作后,必須在三分鐘后才允許重新啟動?!?1、24小時預(yù)約定時開/關(guān)機(jī)功能。定時開機(jī):定時開機(jī)必須是在關(guān)機(jī)狀態(tài)下才能進(jìn)展,按下“定時〞鍵,顯示定時時間并閃動,通過“↑〞“↓〞鍵可以調(diào)節(jié)時間,調(diào)整好后點擊“定時〞鍵。定時關(guān)機(jī):定時關(guān)機(jī)必須在空調(diào)運行的情況下進(jìn)展※12、風(fēng)向自動控制功能。通過自動控制室風(fēng)機(jī)水平導(dǎo)風(fēng)葉片的轉(zhuǎn)動,將調(diào)節(jié)后的舒適氣流送到房間的各個角落。第2章總體設(shè)計規(guī)劃與方案論證2.1設(shè)計環(huán)節(jié)及進(jìn)程安排:根據(jù)任務(wù)書要求,為實現(xiàn)成功設(shè)計家用空調(diào)溫度控制器的控制程序設(shè)計和確保設(shè)計順利進(jìn)展,我的進(jìn)程安排如下:時間安排任務(wù)天數(shù)布置課題,明確任務(wù)1天總體方案規(guī)劃構(gòu)思1天主體功能控制程序設(shè)計及調(diào)試5天程序功能完善、改良與擴(kuò)展3天程序驗收1天辯論1天編寫設(shè)計說明書3天2.2方案論證程序設(shè)計規(guī)劃有許多,但是選擇一個較適宜的方案是至關(guān)重要的,它可以提高程序的執(zhí)行效率,有利于程序的調(diào)試,提高程序的可讀性。1:在主程序跳入循環(huán)前進(jìn)展順序自檢,通過觀察實驗板的現(xiàn)象進(jìn)而判斷實驗板是否正常。2:數(shù)碼管顯示程序由硬件決定,采取片選端和位選端連接接口芯片,接口芯片進(jìn)而和單片機(jī)引腳連接,這樣大大減少了要占用的單片機(jī)引腳的數(shù)目。且數(shù)碼管的顯示方式為動態(tài)顯示,動態(tài)顯示方法:各位顯示器的字位控制線由相應(yīng)的I/O口線控制,每一位顯示器均有一根字位控制線,各位顯示器的字段控制線對應(yīng)并聯(lián),由一個8位I/O口控制。其特點是占用I/O端口少、驅(qū)動程序稍繁,須不斷更新驅(qū)動,占用CPU時間多、總的驅(qū)動電流小。3:對于按鍵音的處理,采用的方法是按鍵按下后,啟動按鍵音,隨后在主循環(huán)的第一句清楚按鍵音。4:對于四中工作模式的判斷,:設(shè)置一個標(biāo)志位,標(biāo)志位中的容A、C、F、H依次代表自動模式、制冷模式、通風(fēng)模式、制熱模式。5:對于三檔風(fēng)速以及自動風(fēng)的判斷,設(shè)置一個標(biāo)志位,標(biāo)志位中的容A、▔、—、_依次代表自動、高速、中速、低速。6:選擇定時器1工作方式2〔M1M0=10,自動重裝計數(shù)初值的8位定時器/計數(shù)器〕16位定時器/計數(shù)器被拆成兩個8位存放器TH1和TL1,CPU在對它們初始化時必須裝入一樣的定時器/計數(shù)器初值。以TL1作計數(shù)器,而TH1作為預(yù)置存放器。當(dāng)計數(shù)滿溢出時,TF1置“1〞,同時將TH1中的計數(shù)初值以硬件方法自動裝入TL1。這種工作方式很適合于那些重復(fù)計數(shù)的應(yīng)用場合,本程序計數(shù)即采用選擇定時器1工作方式2。7:LED顯示器工作原理有兩種:一是LED靜態(tài)顯示驅(qū)動方式。各位的公共端連接在一起〔接地或+5V〕。每位的段碼線〔a~dp〕分別與一個8位的鎖存器輸出相連。只要輸出鎖存器的段碼不變,就穩(wěn)定地驅(qū)動并顯示對應(yīng)的字符,直到輸出另一個段碼為止。靜態(tài)驅(qū)動特點:接口邏輯及驅(qū)動程序簡單、顯示亮度高且穩(wěn)定、但占用I/O端口多、總的驅(qū)動電流大。二是動態(tài)顯示驅(qū)動方式。當(dāng)LED位數(shù)較多時,為了簡化電路,降低本錢,采用動態(tài)顯示方式?!?〕電路連接方法:a、各位顯示器的字位控制線由相應(yīng)的I/O口線控制,每一位顯示器均有一根字位控制線。b、各位顯示器的字段控制線對應(yīng)并聯(lián),由一個8位I/O口控制。顯示原理:逐個點亮,循環(huán)顯示,利用人眼的視覺殘留效應(yīng)。綜上所述,我LED顯示器工作選擇動態(tài)顯示驅(qū)動方式8:鍵盤接口的工作原理分獨立式按鍵接口和行列式鍵盤接口獨立式鍵盤接口(適于鍵數(shù)較少、操作快、同時多鍵動作場合)各鍵相互獨立,每個按鍵各接一根輸入線,通過檢測輸入線的電平狀態(tài)可很容易判斷那個鍵被按下。行列式〔矩陣式〕鍵盤及其接口(適于按鍵數(shù)目較多的場合;可節(jié)省較多的I/O口線端;同時只會有一個鍵閉合的場合。)行列式鍵盤按鍵的識別方法掃描法判斷有無鍵閉合:首先使列線D4~D7都輸出0,檢測行線D0~D3。如果無鍵閉合,D0~D3輸入全為1;如果有鍵閉合,就會有*一根行線輸入為0。查找閉合鍵號:逐行逐列掃描,閉合鍵號=列號+行首鍵號b.線反轉(zhuǎn)法采用線反轉(zhuǎn)法的鍵盤行線、列線端口各自應(yīng)當(dāng)可以在輸入與輸出方式間切換!如圖:高四位與低四位均可獨立改變其輸入或輸出方式第1步:列線輸出為全‘0’,隨后輸入行線電平如有‘0’,則‘0’所在的行就是閉合的按鍵所在行;無‘0’則無鍵閉合。第2步:行線輸出為全‘0’,隨后輸入列線電平如有‘0’,則‘0’所在的列就是閉合的按鍵所在列;無‘0’則無鍵閉合。結(jié)合上述兩步,可確定按鍵所在行和列。綜上所述,選擇行列式鍵盤按鍵的線反轉(zhuǎn)法9:按鍵狀態(tài)的輸入與消抖動機(jī)械觸點的彈性作用,觸點在閉合和斷開瞬間的電接觸情況不穩(wěn)定,造成了電壓信號的抖動現(xiàn)象,時間一般為5~10ms。這種現(xiàn)象會引起CPU對于一次鍵操作進(jìn)展屢次處理,因此必須設(shè)法消抖動。10:壓縮機(jī)三分鐘自動保護(hù)定時方法:①定時中斷,0.01S次數(shù);②計主流程次數(shù)我采取計主流程次數(shù)180*100次,總時間180*100*0.01S=3分鐘。第3章總體軟件設(shè)計說明及總流程圖3.1總體軟件設(shè)計說明總初始化,對數(shù)碼顯示器、指示燈、蜂鳴器的自檢以及各使用單元的初值設(shè)定和各個芯片的初始化設(shè)置等。本設(shè)計程序為12個主流程2個中斷效勞子程序,單片機(jī)就是在這些子模塊下循環(huán)執(zhí)行,這些子模塊依次包含有:;主工作流程LOOP:LCALLJYIN ;按鍵音子程序LCALLTPB ;單按鍵子程序LCALL*DPB;調(diào)用消抖單按鍵輸入LCALLCZ;調(diào)用顯示容送顯緩子程序(拆字將時分秒送右6位顯示緩沖單元) LCALLKT ;行列式鍵盤子程序 LCALLWD*S ;溫度顯示子程序 LCALLDISP;調(diào)用顯示更新子程序(動態(tài)驅(qū)動8位數(shù)碼顯示器一遍,約8mS) LCALLADSUB ;調(diào)用A/D子程序(采集AN1輸入電壓的A/D數(shù)據(jù)送左2位顯示) LCALLKEY ;調(diào)用鍵盤掃描子程序(掃描到按鍵壓下時在左第3位顯示鍵號)LCALLCLOCK ;整點報時子程序 LCALLJCPD ;進(jìn)程判斷以及進(jìn)程顯示子程序LCALLYSBH ;三分鐘壓縮機(jī)保護(hù) LCALLF*BD ;風(fēng)向擺動LCALLDSGJ;定時開/關(guān)機(jī) SJMPLOOP;反復(fù)循環(huán)主流程此外,還有一些沒被主流程調(diào)用,但被其它模塊調(diào)用的模塊,比方驅(qū)動控制模塊,時鐘調(diào)校模塊等。3.2總流程圖判當(dāng)前進(jìn)程或模式界面,取相應(yīng)內(nèi)容按格式送顯緩數(shù)碼管、指示燈、訊響器,可自檢接口芯片等各模塊所用資源初值初態(tài)(中斷、定時、存儲單元等〕延時40mSI/O接口芯片〔8255〕及I/O初值初態(tài)根本初始化延時等待各芯片退出復(fù)位開場獨立按鍵PB0~7的檢測鍵盤掃描顯示更新驅(qū)動顯示內(nèi)容送顯緩工作初始化設(shè)備自檢*時鐘調(diào)校*壓縮機(jī)三分鐘自動保護(hù)……返回主流程風(fēng)速選擇控制工作模式選擇輸出驅(qū)動控制根據(jù)工作進(jìn)程輸出驅(qū)動室內(nèi)風(fēng)機(jī)、壓縮機(jī)、室外風(fēng)機(jī)和四通換向閥工作,控制相應(yīng)指示燈。
蜂鳴器的輸出控制也在此模塊通過A/D室內(nèi)溫度送室內(nèi)溫度單元溫度設(shè)定和控制室內(nèi)溫度檢測第4章系統(tǒng)資源分配及數(shù)據(jù)定義說明判當(dāng)前進(jìn)程或模式界面,取相應(yīng)內(nèi)容按格式送顯緩數(shù)碼管、指示燈、訊響器,可自檢接口芯片等各模塊所用資源初值初態(tài)(中斷、定時、存儲單元等〕延時40mSI/O接口芯片〔8255〕及I/O初值初態(tài)根本初始化延時等待各芯片退出復(fù)位開場獨立按鍵PB0~7的檢測鍵盤掃描顯示更新驅(qū)動顯示內(nèi)容送顯緩工作初始化設(shè)備自檢*時鐘調(diào)校*壓縮機(jī)三分鐘自動保護(hù)……返回主流程風(fēng)速選擇控制工作模式選擇輸出驅(qū)動控制根據(jù)工作進(jìn)程輸出驅(qū)動室內(nèi)風(fēng)機(jī)、壓縮機(jī)、室外風(fēng)機(jī)和四通換向閥工作,控制相應(yīng)指示燈。
蜂鳴器的輸出控制也在此模塊通過A/D室內(nèi)溫度送室內(nèi)溫度單元溫度設(shè)定和控制室內(nèi)溫度檢測4.1系統(tǒng)資源分配4.1.1系統(tǒng)部單元分配表數(shù)據(jù)地址數(shù)據(jù)定義數(shù)碼進(jìn)制數(shù)據(jù)初值數(shù)據(jù)圍備注11H時十位修改單元BCD碼00~212H時個位修改單元BCD碼80~913H分十位修改單元BCD碼50~614H分個位修改單元BCD碼90~916H鍵碼查詢次數(shù)20H蜂鳴器驅(qū)動標(biāo)志位二進(jìn)制碼FFH全零:蜂鳴器響全1:不響29HPB按鈕滾存消抖單元二進(jìn)制碼2AHPB按鈕滾存消抖單元二進(jìn)制碼2BHPB按鈕滾存消抖單元二進(jìn)制碼2CHPB按鈕滾存消抖單元二進(jìn)制碼2DHPB按鈕滾存消抖單元二進(jìn)制碼2EH新按鈕變化情況存放單元二進(jìn)制碼0H2EH新按鈕變化情況存放單元二進(jìn)制碼30H數(shù)碼管顯示緩存單元二進(jìn)制碼10H最右邊數(shù)碼管31H數(shù)碼管顯示緩存單元二進(jìn)制碼12H32H數(shù)碼管顯示緩存單元二進(jìn)制碼01H33H數(shù)碼管顯示緩存單元二進(jìn)制碼05H34H數(shù)碼管顯示緩存單元二進(jìn)制碼09H35H數(shù)碼管顯示緩存單元二進(jìn)制碼08H36H數(shù)碼管顯示緩存單元二進(jìn)制碼12H37H數(shù)碼管顯示緩存單元二進(jìn)制碼10H最左邊數(shù)碼管38H278us計數(shù)單元十進(jìn)制碼360~3639H10ms計數(shù)單元BCD碼0H0~993AH1s計數(shù)單元BCD碼45H0~603BH分鐘存儲單元BCD碼59H0~603CH時鐘存儲單元BCD碼08H0~2450H壓縮機(jī)保護(hù)存儲單元二進(jìn)制碼51H風(fēng)向控制標(biāo)志位二進(jìn)制碼D5:左右擺動D6:上下擺動D7:睡眠模式56H壓縮機(jī)循環(huán)常數(shù)十進(jìn)制碼18057H壓縮機(jī)循環(huán)常數(shù)十進(jìn)制碼10058H壓縮機(jī)新態(tài)數(shù)據(jù)二進(jìn)制碼59H壓縮機(jī)舊態(tài)數(shù)據(jù)二進(jìn)制碼5AH工作模式單元二進(jìn)制碼0:自動A1:制冷C2:通風(fēng)F3:制熱H5BH進(jìn)程判斷二進(jìn)制碼0:自動進(jìn)程1:制冷進(jìn)程2:通風(fēng)進(jìn)程3:制熱進(jìn)程5CH風(fēng)速模式單元二進(jìn)制碼5DH風(fēng)速標(biāo)志位二進(jìn)制碼0:高速1:中速3:低速5EH設(shè)定溫度二進(jìn)制碼5FH室溫度二進(jìn)制碼64H矩陣鍵盤消抖單元新鍵號二進(jìn)制碼10H65H矩陣鍵盤消抖單元舊鍵號二進(jìn)制碼66H顯示模式切換二進(jìn)制碼10H后2位10:正常時鐘顯示11~14:修改模式70H~7FH堆棧單元二進(jìn)制碼特殊存放器區(qū)特殊功能二進(jìn)制碼4.1.2硬件資源分配名稱作用數(shù)碼管顯示界面SW0空調(diào)開/關(guān)機(jī)SW1顯示界面顯示切換PB0工作模式切換PB1風(fēng)速模式切換PB2溫度-PB3溫度+PB4未用此鍵PB5左右擺動控制PB6上下擺動控制PB7睡眠模式K0數(shù)字鍵1K1數(shù)字鍵2K2數(shù)字鍵3K3定時鍵K4數(shù)字鍵4K5數(shù)字鍵5K6數(shù)字鍵6K7確定鍵K8數(shù)字鍵7K9數(shù)字鍵8K10數(shù)字鍵9K11撤銷/返回K12左移<-K13數(shù)字鍵0K14右移->K15設(shè)置L0室風(fēng)機(jī)L1壓縮機(jī)L2室外風(fēng)機(jī)L3四通換向閥L5低速風(fēng)顯示L6中速風(fēng)顯示L7高速風(fēng)顯示L13左右掃風(fēng)L14上下掃風(fēng)L15睡眠AN1改變室溫度復(fù)位按鈕復(fù)位4.2數(shù)據(jù)定義說明4.2.1局部數(shù)據(jù)定義說明〔1〕因為單片機(jī)復(fù)位后SP中的容為07H,是堆棧實際從08H開場,但為了防止堆棧區(qū)與工作存放區(qū)08H~1FH發(fā)生沖突,故初始化定義SP值為6FH。〔2〕初始化定義TH1和TL1為00H,認(rèn)為誤差只來自于外部晶振。實時時鐘實現(xiàn)1秒準(zhǔn)確定時的根本思想是9216=256×36或=128×72或=64×144T1方式2定時時間設(shè)為(256×12÷11.0592)uS中斷一次;38H單元每(256×12÷11.0592)uS加1,計滿36次得10mS=0.01S=1/100秒;39H單元每10mS加1,計滿50次得0.5秒,計滿100次得1秒;第5章局部程序設(shè)計說明〔各局部程序或各子模塊程序功能原理論述:程序設(shè)計的思路與方案、程序原理說明,對少量特別且重要的程序代碼可列舉并詳析〕5.1總初始化以及自檢功能描述總初始化程序主要是在程序開場進(jìn)入主流程時,設(shè)置定時器1中斷效勞子程序入口、中斷對程序中用到的數(shù)據(jù)單元賦予初始值、開啟定時中斷、實現(xiàn)設(shè)備自檢等。該程序段只在程序開場時執(zhí)行一遍。程序設(shè)計思路當(dāng)家用空調(diào)溫度控制器開機(jī)進(jìn)入工作狀態(tài)后,立即進(jìn)入自檢以及總初始化,確保各軟硬件的完好性,以便進(jìn)展正常工作。程序原理說明首先稍加延時(40mS),以待各芯片均退出復(fù)位狀態(tài)。接著蜂鳴器響1S后關(guān)蜂鳴器,然后P1口輸出全‘0',所驅(qū)動的L0~L7指示燈全亮1S后熄滅。開中斷總允許,初始化T1為定時方式2,T0為計數(shù)方式2。讓其沒256Tm產(chǎn)生一次中斷,以實現(xiàn)準(zhǔn)確計時。接著對數(shù)據(jù)單元賦予初始值5.2主流程5.2.1按鍵音模塊功能描述使得按鍵按下時回饋短促的鍵音,以便判斷是否按下按鍵設(shè)計思路及方案設(shè)置一個數(shù)據(jù)單元20H單元存放蜂鳴器是否響的數(shù)據(jù),然后判斷數(shù)據(jù)值。全0為響,響過之后全置為1,全1為不響。程序原理說明20H單元存放蜂鳴器是否響的數(shù)據(jù),全0為響,全1為不響。判斷是否為0,不為零就跳轉(zhuǎn)出去并完畢。是0就讓蜂鳴器響,直到LCALLCLOCK時停頓響;實現(xiàn)了蜂鳴器響,就可以讓20H置全1。5.2.2單按鍵消抖模塊功能描述檢測按鈕是否被壓下,以便判斷是否觸發(fā)相應(yīng)的動作,有消抖措施設(shè)計思路及方案對PB按鈕進(jìn)展掃描,將電平變化量讀取采集,并利用滾動濾波法消除抖動,確保去除抖動造成的誤動作,并利用采集到的電平變化量進(jìn)展判斷按鈕操作,并判斷是否觸發(fā)相應(yīng)的動作程序原理說明對PB按鈕電平變化量進(jìn)展掃描,按鈕掃描用到的接口芯片是8255A〔U5〕,由于在總初始化已經(jīng)對U5進(jìn)展初始化,已經(jīng)定義B口為輸入口,故首先DPTR只想B口,接著把PB0~PB7電平值存放到29H單元,進(jìn)過滾動濾波法消除抖動之后,將新狀態(tài)存入2EH,舊狀態(tài)存入2FH。滾動濾波法消除抖動單元為29H~2DH,只有在5個單元容一致,才將掃描到的電平值送入新狀態(tài)暫存單元。設(shè)置新態(tài)和舊態(tài)就是為了方便檢測按鈕前后狀態(tài),判斷是否有壓下,以便判斷是否觸發(fā)相應(yīng)的動作。5.2.3PB按鍵功能模塊程序功能描述:該模塊的作用在于空調(diào)開啟后對工作模式,風(fēng)速模式,設(shè)定溫度,左右掃風(fēng)、上下掃風(fēng)、睡眠等進(jìn)展修改程序設(shè)計思路及原理描述:按下PB0按鍵則可改變空調(diào)的工作模式,具體順序為自動模式,制冷模式,通風(fēng)模式,制熱模式。按下PB1按鍵則可依次改變風(fēng)速模式,具體順序為自動模式,高風(fēng)速模式,中風(fēng)速模式,低風(fēng)速模式,循環(huán)而行。按下PB2按鍵則對設(shè)定溫度減小1度,在自動模式下則減小2度。按下PB3按鍵則對設(shè)定溫度增加1度,在自動模式下則增加2度。按下PB5按鍵則可控制空調(diào)是否左右掃風(fēng),按下PB6按鍵則可控制空調(diào)是否上下掃風(fēng),按下PB6按鍵則可控制是否空調(diào)進(jìn)展睡眠模式、程序設(shè)計具體實現(xiàn)如下:①對PB按鍵進(jìn)展檢測,假設(shè)在消抖后有按鍵按下,則實現(xiàn)對應(yīng)的功能。②設(shè)置設(shè)定溫度的初值并規(guī)定圍,在對應(yīng)的各個模式下,對設(shè)定溫度賦初值和規(guī)定圍5.2.4根本界面拆字模塊功能描述在根本進(jìn)程10H時鐘顯示進(jìn)程下,將實時鐘數(shù)據(jù)送去顯示緩存并顯示程序原理說明二位數(shù)字轉(zhuǎn)換為兩個單獨的數(shù)字,依次屏蔽高四位和低四位,對于低四位可以直接送入,高四位需經(jīng)過SWAP語句轉(zhuǎn)換過后便可送入。拆字程序原理具體步驟如下:①置顯示緩沖單元首地址(對應(yīng)于最右顯示位)。②取當(dāng)前數(shù)據(jù)單元BCD碼,依次保存該數(shù)據(jù)碼的低4位和高4位,高四位經(jīng)過SWAP命令處理,進(jìn)而分別送入顯示緩沖單元。③利用循環(huán),直到小時單元拆字完畢為止。5.2.54*4矩陣鍵盤模塊程序功能描述:行列式鍵盤功能子模塊用于實現(xiàn)對時間進(jìn)展設(shè)置。程序設(shè)計思路及原理描述:通過對4*4矩陣鍵盤的按鍵判斷,對實時鐘的分或者時進(jìn)展設(shè)置。123定時456確定789撤消←0→設(shè)置程序具體實現(xiàn)方法如下:①設(shè)置按鍵按下后將當(dāng)前時間送入時間修改單元,開場執(zhí)行閃爍并準(zhǔn)備設(shè)置時間。②判斷4*4矩陣鍵盤的鍵號,并將判斷有效的鍵號送入修改單元,以實現(xiàn)對時間的設(shè)置,按下“取消鍵〞則不修改時間,直接退出該程序,按下“確定鍵〞則完成對時間的設(shè)置?!岸〞r〞按鍵用來對空調(diào)進(jìn)展定時開關(guān)機(jī),該按鍵按下后,顯示界面進(jìn)入定時模式,設(shè)置好定時時間后按下定時鍵。再按一次返回鍵返回時鐘顯示界面,當(dāng)?shù)搅嗽O(shè)置時間時,如果是關(guān)機(jī)就會定時開機(jī)復(fù)位,如果是開機(jī)狀態(tài)空調(diào)到設(shè)置時間就會自動關(guān)機(jī)。5.2.6模式顯示模塊程序功能描述:模式顯示子模塊用于實現(xiàn)將空調(diào)的工作模式,風(fēng)速模式,設(shè)定溫度,室溫度這些信息顯示在數(shù)碼管上,是否切換顯示由撥動開關(guān)SW1控制。程序設(shè)計思路及原理描述:模式顯示子模塊首先對SW1的轉(zhuǎn)臺進(jìn)展判斷,假設(shè)判斷符合,則顯示空調(diào)的工作模式,風(fēng)速模式,設(shè)定溫度,室溫度這些信息。假設(shè)不符合,則自動跳過,數(shù)碼管依然顯示實時鐘信息。程序原理具體步驟如下:①程序?qū)W1進(jìn)展判斷,假設(shè)SW1撥上則顯示空調(diào)的工作模式,風(fēng)速模式,設(shè)定溫度,室溫度這些信息。撥下則總動跳過,數(shù)碼管正常顯示實時鐘信息。數(shù)碼管8數(shù)碼管7數(shù)碼管6數(shù)碼管5數(shù)碼管4數(shù)碼管3數(shù)碼管2數(shù)碼管1工作模式風(fēng)速模式—設(shè)定溫度十位設(shè)定溫度個位—室溫度十位室溫度個位②假設(shè)SW1撥上,則顯示空調(diào)的工作模式,風(fēng)速模式,設(shè)定溫度,室溫度,具體如下:工作模式:“A〞代表自動模式,“C〞代表制冷模式,“F〞代表通風(fēng)模式,“H〞代表制熱模式。風(fēng)速模式:“A〞代表自動模式,上劃線“▔〞代表高速模式,中劃線“—〞代表中速模式,下劃線“_〞代表低速模式。5.2.7顯示更新驅(qū)動模塊功能描述:顯示更新驅(qū)動子模塊主要實現(xiàn)在數(shù)碼光上點亮什么數(shù)字的功能。實驗板上面的數(shù)碼管為共陰極,所以只要對要點亮的段選賦1值即可。程序思路及原理描述:該程序?qū)@示緩沖單元30H-37H的容依次送到數(shù)碼管上,使數(shù)碼管依次顯示對應(yīng)的信息,以實現(xiàn)動態(tài)掃描。程序原理具體步驟如下:①置顯示緩沖單元首地址,即要顯示位的位碼初值〔從最右位起〕,選中此數(shù)碼管顯示有效,即從位碼輸出口〔8255-B口〕輸出緩沖單元的容。②查表得相應(yīng)字段碼,讓該字段碼輸出〔8255-A口〕,為了防止發(fā)生竄顯現(xiàn)象,在每個數(shù)碼管顯示完畢后,應(yīng)把斷碼置為無效,再繼續(xù)執(zhí)行循環(huán)程序。③在送入數(shù)據(jù)之后,要對數(shù)碼管點亮進(jìn)展一個一定間隔的延時程序,方便人眼觀察到,實現(xiàn)依照次序讓各位數(shù)碼管顯示過去的動態(tài)顯示。顯示更新的查表方式是直接利用字段表與字段序號的關(guān)系,直接查表得到字?jǐn)啻a。5.2.8室溫度AD轉(zhuǎn)換模塊程序功能描述:室溫度AD轉(zhuǎn)換子模塊主要實現(xiàn)將利用溫度感應(yīng)器將室溫度這一模擬量轉(zhuǎn)換為單片機(jī)可識別的數(shù)字量,將采集到的數(shù)字量除以4,得到對應(yīng)的溫度值,溫度值圍為0-63℃。程序設(shè)計思路及原理描述通過A/D轉(zhuǎn)換芯片ADC0809芯片轉(zhuǎn)換,經(jīng)過算術(shù)運算,得到室溫度。程序原理具體步驟如下:①AD轉(zhuǎn)換出室溫度數(shù)據(jù)②將此數(shù)據(jù)保存在室溫度單元中。5.2.94*4矩陣鍵盤掃描模塊功能描述:當(dāng)開關(guān)SW1撥到時間顯示模式時,鍵盤的按鍵才能使用,否則在工作模式時4*4矩陣鍵盤無效。當(dāng)按下4*4矩陣鍵盤上的任意一個按鍵,主流程執(zhí)行到這個子程序時,將4*4矩陣鍵盤的按鍵號送入對應(yīng)的存儲單元,以供其他需要4*4矩陣鍵盤的子程序模塊使用。程序思路及原理描述:4*4矩陣鍵盤掃描子程序采用反轉(zhuǎn)法來掃描鍵盤,得到鍵盤的行列碼,采用逐一比擬的方法得到其行列碼對應(yīng)的鍵號值,采用滾存消抖處理消除鍵盤開關(guān)的電平抖動現(xiàn)象,具體步驟如下:①根據(jù)原有實驗板的硬件設(shè)施,先把8255的C口先初始化為高4位輸出方式驅(qū)鍵行線、低4位輸入方式驅(qū)鍵列線,鍵盤行線(高4位)輸出驅(qū)動全'0',輸入鍵盤列線電平(低4位)存60H單元。②C口改初始化為高4位輸入驅(qū)鍵行線、低4位輸出驅(qū)鍵列線,讓鍵盤列線(低4位)輸出驅(qū)動全'0',輸入鍵盤行線電平(高4位)在A中。③保存列線電平值所在的低4位和行線電平值所在的高4位,將列線電平值、行線電平值組合成8位行列碼于預(yù)先編排的單元中。④查預(yù)先編排好的鍵碼表,讀取鍵碼表中當(dāng)前鍵號對應(yīng)位置的鍵碼,當(dāng)采集到的鍵碼與表中的鍵碼一樣時,說明查到了當(dāng)前按下的鍵號,否則鍵號存儲單元的值為61H,說明查完十六個鍵碼值無一形成對應(yīng)關(guān)系,即鍵盤無按下或則是同時有多個按鍵同時按下。鍵盤消抖是用延時原理即待開關(guān)電平穩(wěn)定時才存入新掃描的鍵號。通過原理分析可知,只要改變鍵碼在鍵碼表中的位置,就可以人為的改變按鍵的鍵號值,到達(dá)自定義鍵號的目的。鍵盤的接線是其行線和列線分別接8255C口的高四位與低四位。5.2.10整點報時模塊程序功能描述:整點報時,讓蜂鳴器響1秒鐘程序設(shè)計思路及原理描述通過CJNE指令判斷分鐘是否為00,不是退出子程序,是的話繼續(xù)判斷秒鐘是否為00,如果秒鐘也為零,說明到了整點就讓蜂鳴器響直到秒鐘單元變?yōu)?秒,這時剛好到達(dá)1S〔即蜂鳴器響1S時間關(guān)閉〕。5.2.11空調(diào)進(jìn)程判斷及顯示模塊程序功能描述:該模塊的功能作用在對空調(diào)在自開工作模式下的進(jìn)程進(jìn)展判斷,和制冷制熱是否需要通風(fēng)進(jìn)展判斷,判斷后通過LED燈顯示相關(guān)風(fēng)機(jī)工作狀態(tài)顯示工作進(jìn)程。程序設(shè)計思路及原理描述通過多重判斷語句CJNE對當(dāng)前實際溫度和設(shè)定溫度以及工作模式進(jìn)展比擬處理,判斷得到當(dāng)前工作進(jìn)程。程序原理具體步驟如下:①判斷當(dāng)前是否是自開工作模式,是則進(jìn)展自動模式下的判斷。②不是則判斷是否是自動風(fēng)速模式,然后對自動風(fēng)速模式進(jìn)展相關(guān)判斷③然后對制冷制熱模式進(jìn)展室溫和設(shè)定溫度的比擬。④最后對得出的進(jìn)程通過LED燈顯示出來對應(yīng)器件是否工作。5.2.12三分鐘壓縮機(jī)保護(hù)模塊程序功能描述:該模塊的功能作用在為了保護(hù)壓縮機(jī)在關(guān)閉后不會立即開啟造成不必要的損壞。壓縮機(jī)三分鐘自動保護(hù)定時方法:①定時中斷,0.01S次數(shù);②計主流程次數(shù)我采取計主流程次數(shù)180*100次,總時間180*100*0.01S=3分鐘。程序設(shè)計思路及方案在輸出驅(qū)動模塊中輸出前對壓縮機(jī)驅(qū)動位進(jìn)展判斷,可保存壓縮機(jī)驅(qū)動位的前態(tài),當(dāng)現(xiàn)態(tài)是停機(jī)時即不斷對停機(jī)計時單元計時,計滿三分鐘則將壓縮機(jī)可工作標(biāo)志位置有效;當(dāng)前態(tài)是停機(jī)現(xiàn)態(tài)是工作,即壓縮機(jī)要重啟工作時要對壓縮機(jī)可工作標(biāo)志位進(jìn)展判斷,有效時才啟開工作,啟動后該標(biāo)志置為無效同時停機(jī)計時單元置初值。程序原理說明該程序主要是通過DJNZ語句起到延遲開啟壓縮機(jī)效果。程序原理具體步驟如下:①先判斷壓縮機(jī)前態(tài)是否為工作,然后判斷新態(tài)是否為關(guān)閉。②滿足以上條件則讓50H〔壓縮機(jī)計時允許單元〕置*0FFH,此時不再讀取外部壓縮機(jī)狀態(tài)數(shù)據(jù),開場三分鐘計時,計時期間,屏蔽壓縮機(jī)工作。③計時完畢后,對50H〔壓縮機(jī)計時允許單元〕置*0,此時開場讀取壓縮機(jī)數(shù)據(jù)。準(zhǔn)備下一次判斷是否需要開場計時。5.2.13風(fēng)向擺動模塊程序功能描述:通過獨立按鍵電平檢測,判斷是否觸發(fā)控制空調(diào)是否進(jìn)展左右掃風(fēng)和上下掃風(fēng)。程序設(shè)計思路及方案首先進(jìn)展電平開關(guān)SW0~7檢測,sw0開關(guān)為0即為關(guān)機(jī)狀態(tài)則返回。判斷PB5、PB6是否按下,按下則繼續(xù),51H單元存放風(fēng)向左右擺動,上下擺動的數(shù)據(jù),則令相應(yīng)的標(biāo)志位置0或1,然后讀取51H數(shù)據(jù),并輸出給外部端口驅(qū)動L8~L15。沒按下按鍵判斷別的按鍵是否按下。5.2.14驅(qū)動控制模塊程序功能描述:統(tǒng)一判斷工作進(jìn)程和風(fēng)速,驅(qū)動室風(fēng)機(jī)、壓縮機(jī)、室外風(fēng)機(jī)、四通換向閥工作或停頓工作,和切換風(fēng)速程序設(shè)計思路及方案將工作模式單元的值送給累加器A,判斷屬于什么進(jìn)程,制冷進(jìn)程時室風(fēng)機(jī)、壓縮機(jī)及室外風(fēng)機(jī)工作,而四通換向閥停頓工作。制熱進(jìn)程時室風(fēng)機(jī)、壓縮機(jī)、室外風(fēng)機(jī)和四通換向閥均工作。通風(fēng)進(jìn)程時室風(fēng)機(jī)工作,而壓縮機(jī)、室外風(fēng)機(jī)和四通換向閥均不工作。風(fēng)速模式單元的值送給累加器A,判斷屬于什么風(fēng)速,讓對應(yīng)的二極管工作進(jìn)展顯示。5.2.15定時開關(guān)機(jī)模塊程序功能描述:該模塊的功能作用是用來對空調(diào)進(jìn)展定時開關(guān)機(jī),定時按鍵按下后,顯示界面進(jìn)入定時模式,設(shè)置好定時時間后按下定時鍵。再按一次返回鍵返回時鐘顯示界面,當(dāng)?shù)搅嗽O(shè)置時間時,如果是關(guān)機(jī)就會定時開機(jī)復(fù)位,如果是開機(jī)狀態(tài)空調(diào)到設(shè)置時間就會自動關(guān)機(jī)。程序設(shè)計思路及方案分配兩個數(shù)據(jù)單元,一個存放設(shè)定的小時數(shù)據(jù),一個存放分鐘數(shù)據(jù),然后跟實時鐘存放小時和分鐘的數(shù)據(jù)單元比擬,當(dāng)值相等時檢測是處于關(guān)機(jī)狀態(tài)還是處于開機(jī)狀態(tài),如果是關(guān)機(jī)狀態(tài)就讓空調(diào)開機(jī)復(fù)位,如果是開機(jī)狀態(tài),就讓空調(diào)停頓工作。程序原理說明電平開關(guān)SW0~7檢測,輸入SW0~7電平,判斷SW0是否為0,為1則進(jìn)展定時開機(jī)設(shè)置,;判斷SW0為0,則定時關(guān)機(jī)〔讓L0-L7全暗,或讓蜂鳴器響1分鐘提示〕;;判斷SW0為1,則定時開機(jī)復(fù)位。
第6章系統(tǒng)功能與用戶操作使用說明6.1操作顯示局部各按鍵以及指示燈功能分布圖時分秒工作,風(fēng)速模式設(shè)定溫度室溫度室壓縮室外四通 低中 高風(fēng)機(jī)機(jī)風(fēng)機(jī)換向閥風(fēng)速風(fēng)速風(fēng)速〔L0〕〔L1〕〔L2〕〔L3〕〔L4〕〔L5〕〔L6〕〔L7〕SW0SW1〔空調(diào)開關(guān)〕〔溫度顯示開關(guān)〕PB按鍵鍵盤局部:PB0PB1PB2PB3模式風(fēng)速設(shè)定溫度設(shè)定溫度切換鍵切換鍵減一加一6.2系統(tǒng)功能:本空調(diào)遙控器具有實時鐘顯示功能,并可通過鍵盤按鍵進(jìn)展調(diào)校,還具有定時關(guān)機(jī)和倒計時關(guān)機(jī)功能,可自動制冷制熱通風(fēng),用戶只需啟動和選擇模式即可,除此之外還有壓縮機(jī)三分鐘自動保護(hù)。6.3用戶操作使用說明1、初次使用時,接通電源時鐘界面的初始時間是08—59—45,可以簡單通過以下步驟實現(xiàn)對實時鐘的調(diào)校設(shè)置:①按下鍵盤上的“設(shè)置〞鍵,這時您觀察到的界面信息是時間的閃爍,當(dāng)前閃爍位為正在修改位,說明已經(jīng)進(jìn)入了時鐘調(diào)校模式。②按下您認(rèn)為需要調(diào)校的時間對應(yīng)的調(diào)節(jié)鍵。③當(dāng)您已經(jīng)調(diào)整到自己設(shè)定的時間,這時你只需按下“確定〞鍵,時鐘就會從這個設(shè)定的時間下,開場計時;如您想直接退出調(diào)校,只需按下“取消〞鍵,就可以退出調(diào)校模式,恢復(fù)原來時間的計時。2、功能選擇①撥上SW0“開關(guān)〞按鍵,空調(diào)各局部順利工作,撥下SW0“開關(guān)〞按鍵后,空調(diào)關(guān)閉各項器件。撥上SW1“顯示切換〞按鍵,此時數(shù)碼管正常顯示工作模式,風(fēng)速模式,設(shè)定溫度,室溫度等信息。撥下時,則正常顯示實時鐘信息。②空調(diào)正常啟動后,通過按下PB0,PB1,PB2,PB3四個按鍵可以依次調(diào)整工作模式,風(fēng)速模式,設(shè)定溫度的減小1℃和增大1℃。③空調(diào)正常啟動后,按下4*4矩陣鍵盤的定時按鍵,按下后,L9正常點亮,此時進(jìn)入定時模式,在實時鐘到達(dá)九點鐘的時候,空調(diào)自動關(guān)機(jī)。假設(shè)按下后,再按一次,L9正常熄滅,表示退出定時模式,在定時模式下并不影響其他功能的實現(xiàn)。④空調(diào)正常啟動后,按下4*4矩陣鍵盤確實定鍵,確定鍵為復(fù)用鍵,另一功能為倒計時三分鐘自動關(guān)機(jī),按下后,此時L8被正常點亮,表示進(jìn)入三分鐘計時模式,再過三分鐘,空調(diào)自動關(guān)機(jī)。假設(shè)再按一次,則L8熄滅,表示已經(jīng)退出倒計時模式。第7章、課程設(shè)計總結(jié)本次的課程設(shè)計是家用空調(diào)溫度控制器的控制程序設(shè)計,運用"微機(jī)原理及接口技術(shù)"課程所學(xué)的知識設(shè)計一個以AT89S51單片機(jī)為核心的家用空調(diào)溫度控制器,具有制冷、制熱、通風(fēng)和自動運行等工作模式,能對溫度進(jìn)展設(shè)定和控制等功能。三周的課程設(shè)計完畢了,在這次的課程設(shè)計中不僅檢驗了我所學(xué)習(xí)的知識,也培養(yǎng)了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在教師進(jìn)展驗收時,我的壓縮機(jī)還有點有點小問題,但后來經(jīng)過修改,我設(shè)計的程序具備課程的全部要求,并且都可以正常實現(xiàn)功能。在設(shè)計過程中,我向教師請教,和同學(xué)們相互探討,相互學(xué)習(xí),相互監(jiān)視。這使我對微機(jī)接口及原理比以前理解更加的透徹,對每一條指令的理解也提高到更高的程度。這是我以前學(xué)習(xí)微機(jī)原理課程所未到達(dá)的。我知道只有自己設(shè)計程序才能真正有所收獲。雖然有的同學(xué)不是自己寫程序教師不知情情況下也能通過驗收,但是我知道這樣對知識的理解不會更透徹。這次的程序?qū)ξ襾碚f最難的是對溫度進(jìn)展設(shè)定和控制與自動風(fēng)程序的編寫,因為自動風(fēng)與工作模式和溫度有關(guān),這就考驗我的統(tǒng)籌規(guī)劃能力,這局部的程序編寫讓我著實花了好久時間。不過所幸后來經(jīng)過教師的指導(dǎo),終于有所頓悟。設(shè)計課程設(shè)計是我們專業(yè)課程知識綜合應(yīng)用的實踐訓(xùn)練,是我們邁向社會,從事職業(yè)工作前一個必不少的過程.〞千里之行始于足下〞,通過這次課程設(shè)計,我深深體會到這句千古名言的真正含義.我今天認(rèn)真的進(jìn)展課程設(shè)計,學(xué)會腳踏實地邁開這一步,就是為明天能穩(wěn)健地在社會大潮中奔跑打下堅實的根底.通過這次模具設(shè)計,本人在多方面都有所提高。通過課程設(shè)計,綜合運用本專業(yè)所學(xué)課程的理論和生產(chǎn)實際知識進(jìn)展程序設(shè)計,穩(wěn)固與擴(kuò)大了我微機(jī)原理課程所學(xué)的容,體會了學(xué)以致用、突出自己勞動成果的喜悅心情,從中發(fā)現(xiàn)自己平時學(xué)習(xí)的缺乏和薄弱環(huán)節(jié),從而加以彌補(bǔ)。在此感我們的亞林教師.教師嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的典范;教師循循善誘的教誨和不拘一格的思路給予我無盡的啟迪;同時感對我?guī)椭^的同學(xué)們,你們對我的幫助和支持,讓我感受到同學(xué)的友誼。對于本次的課程設(shè)計由于之前提前布置了題目,并且教師還對我們輔導(dǎo),讓我們有了一個大體的思路。所以,在設(shè)計之前我覺得這次的設(shè)計會很難但對我來說應(yīng)該不難。而且在課程設(shè)計之前我們有足夠的時間多課程設(shè)計的題目研究和對書本上的容進(jìn)展復(fù)習(xí)。課程設(shè)計之前充滿著滿滿的信心。然而在真正的課程設(shè)計的時候,事情的進(jìn)展并沒有像我想象的那樣順利,本次的課程設(shè)計是對所學(xué)知識的一個綜合理解和運用,由于之前的放松心態(tài),并沒有進(jìn)展深入的理解,所以在真正的操作的時候我就迷惘了。還好,在兩周的設(shè)計中,運用教師所給的思路方法,還是在做好幫助我完成了本次的課程設(shè)計。在開場之前構(gòu)造一個大體的思路,該有的功能模塊,該實現(xiàn)的功能,該如何實現(xiàn),按照這樣的思路分條寫出每條子程序,例如,實現(xiàn)空調(diào)模式的轉(zhuǎn)換,分配5AH單元來判斷進(jìn)程,通過每按下一次PB0按鍵實現(xiàn)一個模式轉(zhuǎn)換到另一個模式,通過判斷5AH是否與“0〞“1〞“2〞“3〞相等來判斷是否相對應(yīng)于“A〞自動“C〞制冷“H〞制熱“F〞通風(fēng)。由于本次的課程設(shè)計是通過51單片機(jī)的111條指令去實現(xiàn)空調(diào)的溫度控制功能。所以掌握、理解透徹這111條指令才能完本錢次的設(shè)計。每一條指令的意思,有什么功能都要理解的一清二楚。由于本人的設(shè)計能力有限,在設(shè)計過程中難免出現(xiàn)錯誤,懇請教師們多多指教,我十分樂意承受你們的批評與指正,本人將萬分感。
第8章附錄:源程序清單〔詳細(xì)注釋〕ORG0000H ;復(fù)位入口 LJMPMAIN ;轉(zhuǎn)往主程序 ORG001BH ;定時器1中斷效勞子程序入口 LJMPIT1P ;定時中斷:進(jìn)展實時鐘計時 ORG0030H ;主程序MAIN:MOVSP,*6FH ;總初始化,設(shè)定棧底指針LCALLD40MS ;稍加延時(40mS),以待各芯片均退出復(fù)位狀態(tài) MOVDPTR,*0FEFFH;對8255A〔U3)接口芯片初始化 MOVA,*89H;設(shè)定為A輸出(驅(qū)動字段)、B口輸出(驅(qū)動字位),C口輸入10001001 MOV*DPTR,A ;寫入方式控制字 MOVDPTR,*0FEFCH;消竄顯。DPTR指向U3-B口 MOVA,*0FFH ;置八段均不亮的字段碼(8255A初始化后輸出存放器全‘0') MOV*DPTR,A;輸出,關(guān)數(shù)碼顯示器(段輸出口初始驅(qū)動全為‘1'無效)消竄顯 MOVDPTR,*0FDFFH;對8255A〔U5)接口芯片初始化 MOVA,*8BH ;設(shè)定為A口輸出(驅(qū)L8~15),B口輸入(按鈕PB0~7),C口輸入(開關(guān)SW0~7)10001011 MOV*DPTR,A ;寫入方式控制字MOVDPTR,*0FDFCH;DPTR指向U5-A口 MOVA,*0FFH ;置八位輸出均為‘1'無效(8255A初始化后 MOV*DPTR,A ;輸出,令L8-15初始不亮 消竄顯 CLRP3.2 ;蜂鳴器響 LCALLD1S ;延時1S SETBP3.2 ;關(guān)蜂鳴器 MOVP1,*00H ;P1口輸出全‘0',所驅(qū)動的L0~L7指示燈全亮 LCALLD1S ;延時1S MOVP1,*0FFH ;熄L0~L7指示燈 MOV30H,*10H ;30H-37H為顯示緩沖單元,初始值令顯示‘-8951-’ MOV31H,*12H MOV32H,*01H MOV33H,*05HMOV34H,*09H MOV35H,*08H MOV36H,*12H MOV37H,*10H SETBEA ;開中斷總允許MOV38H,*00H ;38H單元為實時鐘200uS計數(shù)單元,清0MOV39H,*00H ;39H單元為10mS計數(shù)單元,清0 MOV3AH,*45H ;秒單元初值 MOV3BH,*59H ;分單元初值 MOV3CH,*08H ;時單元初值,時鐘初值08:59:47 MOVTMOD,*26H ;初始化T1為定時方式2,T0為計數(shù)方式2。MOVTL1,*0 ;置T1計數(shù)初值。MOVTH1,*0;即每約256uS請求中斷。 SETBET1 ;開T1中斷允許 SETBTR1 ;啟動T1定時工作 MOV4AH,*3AH MOV66H,*10H ;剛開場時盡快進(jìn)展A/D MOV2EH,*00H MOVDPTR,*0FDFDHMOV*A,DPTRMOV2EH,A; MOV64H,*10H;新鍵碼設(shè)置為10MOV51H,*0FFH ;L8-L15初始不亮 MOV59H,*0FFH;風(fēng)向擺動單元全為1 MOV11H,*0 ;當(dāng)前時間送入時間修改單元 MOV12H,*8 MOV13H,*5 MOV14H,*9MOV5AH,*0;開機(jī)時是自動模式,顯示A MOV5BH,*2;進(jìn)程為通風(fēng)模式,點亮LO MOV5CH,*0;自動風(fēng)模式,顯示A MOV5DH,*2;中速風(fēng)模式,點亮L6 MOV5EH,*25;設(shè)定溫度為25度〔AA-25-**〕MOV21H,*0MOV22H,*0;主工作流程LOOP:LCALLJYIN ;按鍵音子程序LCALLTPB ;單按鍵子程序LCALL*DPB;調(diào)用消抖單按鍵輸入LCALLCZ;調(diào)用顯示容送顯緩子程序(拆字將時分秒送右6位顯示緩沖單元) LCALLKT ;行列式鍵盤子程序 LCALLWD*S ;溫度顯示子程序 LCALLDISP;調(diào)用顯示更新子程序(動態(tài)驅(qū)動8位數(shù)碼顯示器一遍,約8mS) LCALLADSUB ;調(diào)用A/D子程序(采集ADC0809的AN1輸入電壓的A/D數(shù)據(jù)送左2位顯示) LCALLKEY ;調(diào)用鍵盤掃描子程序(掃描到按鍵壓下時在左第3位顯示鍵號)LCALLCLOCK ;整點報時子程序 LCALLJCPD ;進(jìn)程判斷以及進(jìn)程顯示子程序LCALLYSBH ;三分鐘壓縮機(jī)保護(hù) LCALLF*BD ;風(fēng)向擺動LCALLDSGJ;定時開/關(guān)機(jī) SJMPLOOP;反復(fù)循環(huán)主流程JYIN:MOVA,20H ;20H單元存放蜂鳴器是否響的數(shù)據(jù),全0為響,全1為不響 CJNEA,*0,RING;判斷是否為0,不為零就跳轉(zhuǎn)出去并完畢 CLRP3.2 ;是0就讓蜂鳴器響,直到LCALLCLOCK時停頓響 MOV20H,*0FFH ;實現(xiàn)了蜂鳴器響,就可以讓20H置全1RING:RETTPB:MOVDPTR,*0FDFEH ;電平開關(guān)SW0~7檢測 MOV*A,DPTR ;輸入SW0~7電平 JNBACC.0,TPBRR ;SW0開關(guān)為0則返回 JNB2FH.0,TPB2 ;模式功能按鍵2EH.0,TPB2 MOV20H,*0 INC5AH MOVA,5AH CJNEA,*1,TP1 ;制冷模式 MOV5BH,*1 ;制冷進(jìn)程 MOV5EH,*24 ;制冷模式初值24度TPBRR: LJMPTPB4TP1:CJNEA,*3,TP2 ;制熱模式 MOV5BH,*3 ;制熱進(jìn)程 MOV5EH,*16 ;制熱模式初值16度 LJMPTPB4TP2:CJNEA,*2,TP3 ;通風(fēng)模式MOV5BH,*2 ;通風(fēng)進(jìn)程 LJMPTPB4 ;通風(fēng)進(jìn)程不修改設(shè)定溫度,直接跳過調(diào)整溫度功能按鍵TP3:MOV5AH,*00H ;自動模式 MOV5EH,*27 ;自動模式下設(shè)定溫度賦初值27度TPB2:JNB2FH.2,TPB3 ;減溫度功能按鍵2EH.2,TPB3 MOV20H,*0 MOVA,5AH CJNEA,*0,ZD1 ;是否自動模式 MOVA,5EH ;是自動模式 CJNEA,*25,ZD0 ;是否設(shè)定溫度為25度 LJMPTPB4 ;是25度就不要改ZD0:DEC5EH LJMPZD3 ;不是25度就降低2度ZD1:CJNEA,*1,ZD2 ;是否制冷模式 MOVA,5EH ;是制冷模式 CJNEA,*20,ZD3 ;是否20度 LJMPTPB4 ;20度不要減ZD2:CJNEA,*3,TPB1 ;判斷是否制熱模式,不是這個模式就只剩下通風(fēng)模式了,功能退出 MOVA,5EH ;是制熱模式 CJNEA,*14,ZD3 ;是否14度 LJMPTPB4 ;14度就不要減ZD3:DEC5EH ;降低1度TPB3:JNB2FH.3,TPB1 ;加溫度功能按鍵2EH.3,TPB1 MOV20H,*0 MOVA,5AH CJNEA,*0,ZD5 ;是否自動模式 MOVA,5EH ;是自動模式 CJNEA,*29,ZD4 ;是否設(shè)定溫度為29度 LJMPTPB1 ;是29度就不要改ZD4:INC5EH LJMPZD7 ;不是29度就升高2度ZD5:CJNEA,*1,ZD6 ;是否制冷模式 MOVA,5EH ;是制冷模式 CJNEA,*32,ZD7 ;是否32度 LJMPTPB1 ;32度不要加ZD6:CJNEA,*3,TPB1 ;是否制熱模式,不是這個模式就只剩下通風(fēng)模式了,功能退出 MOVA,5EH ;是制熱模式 CJNEA,*30,ZD7 ;是否30度 LJMPTPB1 ;30度就不要加ZD7:INC5EH ;升高1度TPB1:JNB2FH.1,TPB4 ;風(fēng)速模式功能按鍵2EH.1,TPB4MOV20H,*0 INC5CH MOVA,5CH CJNEA,*1,TP4 ;是否高速風(fēng)模式MOV5DH,*1 LJMPTPB4TP4: CJNEA,*2,TP5 ;是否中速風(fēng)模式 MOV5DH,*2 LJMPTPB4TP5: CJNEA,*3,TP6 ;是否低速風(fēng)模式 MOV5DH,*3 LJMPTPB4TP6: MOV5CH,*0 ;自動風(fēng)模式TPB4:RET*DPB:MOV2FH,2EH ;原新態(tài)存為前態(tài),滾動濾波法消除按鍵抖動MOV2DH,2CHMOV2CH,2BHMOV2BH,2AHMOV2AH,29HMOVDPTR,*0FDFDHMOV*A,DPTRMOV29H,AMOVA,2DHCJNEA,2CH,*DRCJNEA,2BH,*DRCJNEA,2AH,*DRCJNEA,29H,*DRMOV2EH,A*DR:RETCZ: MOVR0,4AH;顯示容送顯緩子程序(拆字)。置時鐘數(shù)據(jù)單元首地址(秒單元) MOVR1,*30H ;置顯示緩沖單元首地址(對應(yīng)于最右顯示位)CZ1:MOVA,R0 ;取當(dāng)前數(shù)據(jù)單元BCD碼(3AH) ANLA,*0FH ;保存低4位〔個位〕 MOVR1,A ;送顯緩當(dāng)前個位單元 INCR1 ;指向顯緩當(dāng)前十位單元 MOVA,R0 ;再取當(dāng)前數(shù)據(jù)單元BCD碼 ANLA,*0F0H ;保存高4位〔十位〕 SWAPA ;交換到低4位 MOVR1,A ;送顯緩當(dāng)前十位單元 INCR1 ;指向顯緩下一個個位單元 MOVR1,*10H;給這個顯緩單元送“-〞的序號*16也就是*10H,最后會在顯示DISP模塊查表顯示 INCR1 ;再指向顯緩下一個個位單元 INCR0 ;指向下一個時鐘數(shù)據(jù)單元 CJNER0,*3DH,CZ1 ;未完繼續(xù) RET ;子程序返回KT: MOVA,66H ;如果是時鐘顯示模式就讀取時間后再送回 CJNEA,*10H,KTT ;如果不是正常時鐘顯示模式就判斷設(shè)置鍵是否按下 MOV11H,37H ;當(dāng)前時間送入時間修改單元 MOV12H,36H MOV13H,34H MOV14H,33HKTT:MOVA,65HCJNEA,*10H,LK1MOVA,64HCJNEA,*0FH,LK1MOV20H,*0MOV66H,*11H ;按下設(shè)置鍵后顯示模式變?yōu)?1H MOV16H,*00H ;查詢總次數(shù)置為15次 RETLK1:MOVA,66H ;如果沒有按下設(shè)置鍵,就不用判斷了 CJNEA,*11H,LKSSLKSS:JCLKR ;如果顯示模式小于11H,也就是沒有按下設(shè)置鍵,就退出 MOVA,65H CJNEA,*10H,LKRMOVA,64HCJNEA,16H,LK2 ;判斷所有K0~14按鍵 LJMPK ;如果對應(yīng)上K0~K14就實現(xiàn)功能LK2:INC16H ;沒對應(yīng)上就對應(yīng)下一個試試 MOVA,16H CJNEA,*0FH,LK3 ;如果到了K15就不用再對應(yīng) LJMPLKRLK3:LJMPLK1 ;沒到K15就返回繼續(xù)比擬K: MOVA,16H ;對應(yīng)的16H是哪個按鍵 CJNEA,*0,K1 ;分別判定并實現(xiàn) MOVR0,66H MOVR0,*1 ;給當(dāng)前單元送1LKJ*: INC66H ;顯示模式變?yōu)橄聜€模式 MOV20H,*0 MOVA,66H ;判斷是否到了15H CJNEA,*15H,LKR ;到了15H就變?yōu)?1H MOV66H,*11H LJMPLKRET ;功能實現(xiàn)完畢,返回K1: CJNEA,*1,K2;是不是K1按下呢,是就實現(xiàn)以下功能,不是就繼續(xù)跳轉(zhuǎn)查詢 MOVR0,66H ;當(dāng)前閃爍位送給R0 MOVR0,*2 ;給當(dāng)前閃爍位〔例如13H就是分鐘的十位〕送序號2,然后會在顯示disp中查表顯示數(shù)字2 LJMPLKJ* K2:CJNEA,*2,K3 ;是不是K2按下呢,是就實現(xiàn)以下功能,不是就繼續(xù)跳轉(zhuǎn)查詢 MOVR0,66H MOVR0,*3 LJMPLKJ*K3: CJNEA,*3,K4 ;是不是K3按下呢,是就實現(xiàn)以下功能,不是就繼續(xù)跳轉(zhuǎn)查詢 MOV20H,*0 PZ:MOVA,12H;非壓縮BCD碼轉(zhuǎn)化成壓縮BCD碼,取低位ASCII碼ANLA,*0FH;保存低4位(個位)MOV21H,A;暫存?zhèn)€位單元MOVA,11H;再取高位ASCII碼ANLA,*0FH;保存高4位(十位)SWAPA ORL21H,A;高、低4位相或,得壓縮BCD碼MOVA,14HANLA,*0FHMOV22H,AMOVA,13HANLA,*0FHSWAPA ORL22H,ALJMPLKRK4: CJNEA,*4,K5 ;是不是K4按下呢,是就實現(xiàn)以下功能,不是就繼續(xù)跳轉(zhuǎn)查詢 MOVR0,66H MOVR0,*4 LJMPLKJ*LKR:LJMPLKRET ;本子程序太長,這里設(shè)置一個跳轉(zhuǎn)中轉(zhuǎn)站,要不然一次跳不過去K5: CJNEA,*5,K6 ;是不是K5按下呢,是就實現(xiàn)以下功能,不是就繼續(xù)跳轉(zhuǎn)查詢 MOVR0,66H MOVR0,*5 LJMPLKJ*K6: CJNEA,*6,K7 ;是不是K6按下呢,是就實現(xiàn)以下功能,不是就繼續(xù)跳轉(zhuǎn)查詢 MOVR0,66H MOVR0,*6 LJMPLKJ*K7: CJNEA,*7,K8 ;是不是K7按下呢,是就實現(xiàn)以下功能〔確定鍵〕,不是就繼續(xù)跳轉(zhuǎn)查詢 MOVA,11H CJNEA,*3,HOUR0 ;小時十位修改單元是否超過了3,HOUR0: JCHOUR1 ;沒超過就繼續(xù)判斷 LJMPKNE ;超過了就執(zhí)行退出指令〔把修改前的時間讀取回來〕HOUR1: MOVA,11H ;小時十位修改單元11H是否為2 CJNEA,*2,MIN0 ;不是2就不用判斷小時的個位 MOVA,12H ;如果是2就判斷小時個位修改單元的12H是否大于等于4 CJNEA,*4,HOUR3 HOUR3: JCMIN0 ;如果小于24點就繼續(xù)判斷分鐘的修改數(shù)值 LJMPKNE ;如果大于24點就執(zhí)行退出指令〔把修改前的時間讀取回來〕MIN0:MOVA,13H CJNEA,*6,MIN1 ;分鐘的十位是否超過了6,MIN1:JCMIN2 ;沒有超過6就準(zhǔn)備顯示 LJMPKNE ;超過了6就執(zhí)行退出指令〔把修改前的時間讀取回來〕MIN2:MOVA,11H SWAPA ORLA,12H MOV3CH,A MOVA,13H SWAPA ORLA,14H MOV3BH,A CLR3AH MOV66H,*10H ;然后進(jìn)展一次拆字 MOV39H,*0 MOV3AH,*0CZ4:MOVR0,4AH MOVR1,*30H ;置顯示緩沖單元首地址(對應(yīng)于最右顯示位)CZ2:MOVA,R0 ;取當(dāng)前數(shù)據(jù)單元BCD碼 ANLA,*0FH ;保存低4位〔個位〕 MOVR1,A ;送顯緩當(dāng)前個位單元 INCR1 ;指向顯緩當(dāng)前十位單元 MOVA,R0 ;再取當(dāng)前數(shù)據(jù)單元BCD碼 ANLA,*0F0H ;保存高4位〔十位〕 SWAPA ;交換到低4位 MOVR1,A ;送顯緩當(dāng)前十位單元 INCR1 ;指向顯緩下一個個位單元 MOVR1,*10H INCR1 INCR0 ;指向下一個時鐘數(shù)據(jù)單元 CJNER0,*3DH,CZ2 ;未完繼續(xù) RETK8: CJNEA,*8,K9 MOVR0,66H MOVR0,*7 LJMPLKJ*K9: CJNEA,*9,K10 MOVR0,66H MOVR0,*8 LJMPLKJ*K10:CJNEA,*10,K11 MOVR0,66H MOVR0,*9 LJMPLKJ*K11: CJNEA,*11,K12KNE:MOV66H,*10H MOV11H,37H ;當(dāng)前時間送入時間修改單元 MOV12H,36H MOV13H,34H MOV14H,33H MOV20H,*0 LJMPLKRETK12:CJNEA,*12,K13 MOVR0,66H MOVA,66H CJNEA,*10H,LKZZ MOV66H,*14HLKZZ:DEC66H MOVA,66H CJNEA,*10H,LKZ* MOV66H,*14HLKZ*:MOV20H,*0 LJMPLKRK13:CJNEA,*13,K14 MOVR0,66H MOVR0,*0 LJMPLKJ*K14:CJNEA,*14,LKRET LJMPLKJ*LKRET: MOV37H,11H ;暫時修改的時間顯示出來 MOV36H,12H MOV34H,13H MOV33H,14H RETWD*S: MOVDPTR,*0FDFEH ;電平開關(guān)SW0~7檢測 MOV*A,DPTR ;輸入SW0~7電平JNBACC.1,WDR ;SW1開關(guān)為0則返回,SW1為溫度,時鐘顯示切換開關(guān) JNBACC.0,WDR ;SW0開關(guān)為0則返回,SW0為空調(diào)啟動開關(guān) MOVA,5AH ;工作模式判斷 CJNEA,*0,WD1 ;5AH為存儲工作模式單元,比擬5AH是否為*0,不是就繼續(xù)比擬 MOV37H,*0AH ;5AH是0就顯示A,自動模式的意思 LJMPWD*2 ;然后顯示風(fēng)速模式WD1:CJNEA,*1,WD2 ;5AH為存儲工作模式單元,比擬5AH是否為*1,不是就繼續(xù)比擬 MOV37H,*0CH ;5AH是1就顯示c,制冷的意思 LJMPWD*2 ;然后顯示風(fēng)速模式WD2:CJNEA,*2,WD3 ;5AH為存儲工作模式單元,比擬5AH是否為*2,不是就不用比擬,因為只剩下通風(fēng)模式這種可能 MOV37H,*0FH ;5AH就是2,就顯示F,通風(fēng)模式的意思 LJMPWD*2 ;然后顯示風(fēng)速模式WD3:MOV37H,*13H ;三種情況都不符合就會跳到這里,5AH是3就顯示H,制熱模式的意思WD*2: MOVA,5CH ;風(fēng)速模式判斷 CJNEA,*0,WD4;5CH為風(fēng)速模式存儲單元,比擬5CH是否為*0,不是就繼續(xù)比擬 MOV36H,*0AH ;5CH是0就顯示A,自動風(fēng)速模式的意思 LJMPWD*3 ;然后顯示設(shè)定溫度WD4:CJNEA,*1,WD5;5CH為風(fēng)速模式存儲單元,比擬5CH是否為*1,不是就繼續(xù)比擬 MOV36H,*16H ;5CH是1就顯示"~",高風(fēng)速模式的意思 LJMPWD*3 ;然后顯示設(shè)定溫度WD5:CJNEA,*2,WD6 ;5CH為風(fēng)速模式存儲單元,比擬5CH是否為*2,不是就不用比擬,因為只剩下低風(fēng)速這種可能 MOV36H,*10H ;5CH是2就顯示"-",中風(fēng)速模式的意思 LJMPWD*3 ;然后顯示設(shè)定溫度WD6:MOV36H,*15H ;5CH是3就顯示"_",低風(fēng)速模式的意思WD*3:MOVA,5AH ;〔此段程序為設(shè)定溫度顯示模塊〕 CJNEA,*2,J* ;先判斷是否為通風(fēng)模式,是就繼續(xù),給顯示緩沖單元送“--〞的序號,不是就跳到溫度顯示指令中 MOV34H,*10H ;"--"的序號 MOV33H,*10H ;"--"的序號 LJMPWD*4 ;跳到實際溫度顯示指令J*: MOVA,5EH ;把設(shè)定溫度給被除數(shù) MOVB,*10 ;除數(shù)設(shè)為10 DIVAB ;商給A,余數(shù)給B MOV34H,A ;商為設(shè)定溫度的十位 MOV33H,B ;余數(shù)為設(shè)定溫度的個位WD*4: MOVA,5FH ;把室溫給被除數(shù) MOVB,*10 ;除數(shù)設(shè)為10 DIVAB ;商給A,余數(shù)給B MOV31H,A ;商為室溫度的十位 MOV30H,B ;余數(shù)為室溫度的個位WDR:RET ;溫度顯示完畢DISP:MOVR0,*30H ;顯示更新子程序。置顯示緩沖單元首地址〔對應(yīng)最右位〕 MOVR3,*01H ;位碼初值〔從最右位起〕 MOVA,R3DISP1: MOVDPTR,*0FEFDH ;8255-B口〔位碼輸出口〕 MOV*DPTR,A ;輸出當(dāng)前字位碼 MOVA,R0 ; CJNEA,*33H,DIM ;是否顯示到了33H也就是從右往左數(shù)第四個數(shù)碼管也就是分鐘數(shù)的個位 MOVA,66H CJNEA,*14H,DIJ* ;判斷66H顯示模式單元存放的是否是*14H數(shù)據(jù),如果兩者同時滿足,就執(zhí)行閃爍指令,不滿足就看看是否是*13H,*12H,*11HDISS:MOVA,39H ;閃爍指令 MOVB,*25 ;除數(shù)為25 DIVAB ;39H〔百分之一秒〕單元的數(shù)據(jù)給A,A與B相除,商重新賦值給A,余數(shù)重新賦值給B,是這個指令的含義 ACC.0,DISB ;此時商只有四種可能,*00H,*01H,*10H,*11H,分別代表亮暗亮暗,從而實現(xiàn)在一秒出現(xiàn)2HZ的閃爍 LJMPDIJ* ;跳往關(guān)閉顯示這一位,并顯示下一位的程序中DIM:CJNEA
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 千??头僮髁鞒?/a>
- 2025企業(yè)設(shè)備租賃合同書
- 2025依據(jù)招標(biāo)文件工程合同履行標(biāo)準(zhǔn)
- 2025建筑陶瓷供應(yīng)合同模板
- 2025智能家居安防監(jiān)控系統(tǒng)工程合同書
- 2025物流倉儲管理服務(wù)合同
- 2025年標(biāo)準(zhǔn)裝修設(shè)計合同范本樣本
- 焊接結(jié)構(gòu)分析與制造技術(shù)作業(yè)指導(dǎo)書
- 2025農(nóng)資買賣合同
- 網(wǎng)絡(luò)安全監(jiān)測數(shù)據(jù)分析表
- HJ 636-2012 水質(zhì) 總氮的測定 堿性過硫酸鉀消解紫外分光光度法
- 《機(jī)場運行管理》考試復(fù)習(xí)題庫(含答案)
- JBT 7248-2024 閥門用低溫鋼鑄件技術(shù)規(guī)范(正式版)
- 2024專升本英語答題卡浙江省
- 2024年荊門市水務(wù)局事業(yè)單位公開招聘工作人員招聘歷年公開引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(共500題)答案詳解版
- 反食品浪費及食品安全與健康
- 【勞動教育一等獎教學(xué)案例】-二年級勞動教育-《三股辮兒我會編》活動方案
- 校園模擬法庭劇本
- 水準(zhǔn)測量記錄數(shù)據(jù)自動生成表
- 肝門部膽管癌護(hù)理查房課件
- 公司經(jīng)營合同-公司代持股份協(xié)議范本新
評論
0/150
提交評論