專利名稱:空調(diào)器中單片機位標志編程控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及空調(diào)控制技術(shù),具體的說,是涉及空調(diào)器中單片機位標志編程控制方法。
背景技術(shù):
目前,空調(diào)器一般由室內(nèi)機接收遙控器信號和按鍵信號,通過解碼,控制室內(nèi)水平風(fēng)向、垂直風(fēng)向、室內(nèi)電加熱、室內(nèi)風(fēng)機電機的運行和室內(nèi)溫度及室內(nèi)盤管溫度的采樣,室內(nèi)機還控制LED指示燈或者數(shù)碼管顯示屏的顯示;同時,室內(nèi)機通過UART異步通訊同室外機握手通訊,將遙控器或者按鍵控制命令及控制參數(shù)等傳遞到室外機,同時將室外機的運行參數(shù)傳遞到室內(nèi)機,由室內(nèi)機通過調(diào)節(jié)進一步對室內(nèi)外機進行控制和顯示。室外機通過UART異步通信接收到來自室內(nèi)機的命令,對室外壓縮機、四通閥、室外風(fēng)機進行控制,并控制對室外各個溫度傳感器進行采樣。 為了實現(xiàn)上述功能,室內(nèi)機與室外機均利用單片機內(nèi)部定時器定時中斷、外部中斷、異步通訊等中斷源,以設(shè)置標志位的方法,通知其他程序本部分程序模塊已完成某個功能,其他程序借以判斷是否應(yīng)該執(zhí)行某個分支程序。而標志可以是I字節(jié)存儲器Sbit中的任意一 bit位,單字節(jié)整體等。由于家用電器特別是家用空調(diào)器中,采用低價位的單片機,單片機的存儲空間較小,一般以8 16K BYTE程序存儲器(R0M),256 512BYTE數(shù)據(jù)存儲器(RAM)居多,特別要求程序簡練,對RAM空間的使用也特別講究,為了節(jié)約使用RAM空間,常常使用位標志,這樣每個8bit的I字節(jié),就可以設(shè)置8個位標志。但是,當(dāng)對位標志置I或者清O時,程序中常常是通過將變量的值放入累加器中,改變累加器的值,再將累加器值放回變量三條以上指令共同完成的方式來實現(xiàn);當(dāng)需要測試位標志時,程序中也常常是通過將變量的值放入累加器中,測試累加器中相應(yīng)的位來實現(xiàn)的。上述操作,存在兩個問題其一是增加了 ROM占用空間,更重要的問題是,如圖I、圖2所示,當(dāng)在程序中測試標志位如SI步所示(SI步實際上也有2條以上的指令),再根據(jù)標志位的置I條件,程序繼續(xù)執(zhí)行到S2或者S3時,如果此時恰恰某個中斷程序發(fā)生中斷,程序就會轉(zhuǎn)移到中斷服務(wù)程序中執(zhí)行中斷程序,當(dāng)偶然在對應(yīng)的中斷服務(wù)程序中對此同樣的標志位置1,并從中斷服務(wù)程序中返回到斷點處的S2或者S3,再執(zhí)行到S4時,變量的位標志實際上是0,在中斷服務(wù)程序中對位標志的置I沒有起作用,下次進入到SI步,就不會執(zhí)行S2、S3、S4,程序就會亂,導(dǎo)致室內(nèi)機與室外機無法正常通訊的情況出現(xiàn),而且這種故障極難被發(fā)現(xiàn),往往會增加故障調(diào)試時間。經(jīng)過長期的經(jīng)驗累積和分析,出現(xiàn)上述問題的根本原因是在傳統(tǒng)技術(shù)中,未將位標志定義在RAM存儲器的O頁地址空間(可以直接進行位操作訪問的地址空間)中,位標志操作由于不能在一條指令內(nèi)完成,導(dǎo)致程序執(zhí)行不穩(wěn)定。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提出一種空調(diào)器中單片機位標志編程控制方法,解決傳統(tǒng)技術(shù)中的位標志操作由于不能在一條指令內(nèi)完成,導(dǎo)致程序執(zhí)行不穩(wěn)定,可能出現(xiàn)空調(diào)器室內(nèi)機和室外機無法正常通訊的問題。本發(fā)明解決上述技術(shù)問題所采用的技術(shù)方案是空調(diào)器中單片機位標志編程控制方法,包括將位標志定義在RAM存儲器的O頁地址空間中,作為位標志變量使用。進一步,所述RAM存儲器的O頁地址空間是指可以進行高效的位標志操作的地址空間;所述高效的位標志操作是指在一條指令內(nèi)完成對位標志變量的置I、清O操作。進一步,所述RAM存儲器的O頁地址空間的地址范圍是(ΓΟχΟ 。進一步,所述將位標志定義在RAM存儲器的O頁地址空間的具體方法是·通過查詢單片機用戶手冊,判斷在RAM存儲器的(TOxOff地址空間內(nèi)是否有為單片機程序分配的地址,如果有,則將位標志定義在(TOxOff地址空間內(nèi)除了為單片機程序分配的地址的其它地址中;如果(TOxOff地址空間不能全部容納位標志,則通過優(yōu)化程序減少位標志,或者將不可能在非中斷服務(wù)程序和中斷服務(wù)程序中同時改變值的位標志放置到其他地址空間。進一步,當(dāng)所有的位標志放入(TOxOff地址空間后,如果還剩下有(TOxOff地址空間沒有用完,再將需要快速、高效使用的變量放入(TOxOff地址空間。進一步,當(dāng)0、x0ff地址空間已經(jīng)全部使用后,將非位標志的其它變量放入(TOxOff地址空間以外的RAM存儲器地址中。本發(fā)明的有益效果是能夠可靠的設(shè)置、處理標志位,解決了對非(TOxOfT地址范圍內(nèi)的位標志操作帶來的位標志不能可靠置I、清O問題,也解決了由此帶來的隨機程序故障,極大的提高了程序開發(fā)速度,減小了排除故障的調(diào)試時間,縮短了程序代碼,節(jié)約了只讀存儲器ROM空間,減小了對單片機資源的特別要求,降低了產(chǎn)品開發(fā)成本,提高了程序執(zhí)行的可靠性,同時提高了產(chǎn)品質(zhì)量。
圖I為一般位標志第O位清O示意圖;圖2為中斷服務(wù)程序中一般位標志第O位置I示意圖;圖3為O頁位標志第O位清O示意圖;圖4為中斷服務(wù)程序中O頁位標志第O位置I示意圖。
具體實施例方式本發(fā)明的技術(shù)方案所基于的思想是對于諸如空調(diào)器中使用的低價位的單片機來說,其內(nèi)部RAM分配,一般都是將最低地址的256個字節(jié)即(TOxOFF地址空間的存儲器地址(Zpage,或者叫做O頁地址空間)作為可以直接進行位操作訪問的地址空間,定位在此O頁地址空間的變量和位的操作,其機器碼代碼短,操作效率高,“位”操作指令一般為單條指令。因此,采用將所有位標志定位到O頁即0、x0ff地址空間,作為“位”變量使用的方法,迫使單片機編譯系統(tǒng)按照圖3、圖4所示的流程,將C語言編譯為I條指令的位標志操作指令;其中,圖3中的流程包括S8:判斷變量第O位是否為1,如果為1,則進入步驟S9,如果不為1,則執(zhí)行其它程序;S9:將變量第O位清O ;圖4中的流程包括當(dāng)中斷服務(wù)程序開始后進入步驟SlO :將變量第O位置I ;可以看出,圖3和圖4中的位操作指令均為單條指令,解決了前述出現(xiàn)概率極低的隨機故障,極大的提高了程序開發(fā)速度,減小了排除故障的調(diào)試時間,縮短了程序代碼,節(jié)約了只讀存儲器ROM空間,如果將位標志置于(TOxOff地址空間以外地址空間,單片機編譯系統(tǒng)將會按照圖I、圖2所示的流程,將C語言程序編譯為多指令共同完成的位標志操作指令,即使采用匯編語言強制按照圖3、圖4所示流程編寫程序,但單片機編譯系統(tǒng)也會報故障,不能正確產(chǎn)生目標機器碼,程序不能執(zhí)行。其具體實現(xiàn)方式包括以下幾個方面
I、為了避免出現(xiàn)預(yù)想不到的問題,盡量將所有位標志變量定位到地址(TOxOff地址空間,作為“位”變量使用,定位方法根據(jù)單片機的不同,各有不同的方法,使用時,查詢實際使用的單片機用戶手冊,(TOxOff地址空間也許有部分保留為單片機使用,這部分保留的地址空間不能使用;2、如果(TOxOff地址空間不能全部容納位標志變量,則需要優(yōu)化程序,減少位標志變量,或者將不可能在非中斷服務(wù)程序和中斷服務(wù)程序中同時改變值的位標志放置到其他地址空間;3、當(dāng)所有的位標志變量放入(TOxOff地址空間后,如果還剩下有(TOxOff地址空間沒有用完,再將需要快速、高效使用的變量(8bit單字節(jié)、16bit雙字節(jié)等)放入(TOxOfT地址空間,起到縮短程序目標代碼的目的。4、其他變量,如果(TOxOff地址空間放滿以后,放入(TOxOff地址空間以外的RAM空間。5、如果單片機可以位操作的地址空間,不是(TOxOff地址范圍,則以其可以進行高效的位標志操作的地址空間為準,按同樣的方法設(shè)置和使用位標志變量,所述的高效操作,是指能夠在一條指令內(nèi)完成對位標志變量的置I、清O操作。
權(quán)利要求
1.空調(diào)器中單片機位標志編程控制方法,其特征在于,包括將位標志定義在RAM存儲器的O頁地址空間中,作為位標志變量使用。
2.如權(quán)利要求I所述的空調(diào)器中單片機位標志編程控制方法,其特征在于,所述RAM存儲器的O頁地址空間是指可以進行高效的位標志操作的地址空間;所述高效的位標志操作是指在一條指令內(nèi)完成對位標志變量的置I、清O操作。
3.如權(quán)利要求2所述的空調(diào)器中單片機位標志編程控制方法,其特征在于,所述RAM存儲器的O頁地址空間的地址范圍是(ΓΟχΟ 。
4.如權(quán)利要求3所述的空調(diào)器中單片機位標志編程控制方法,其特征在于,所述將位標志定義在RAM存儲器的O頁地址空間的具體方法是 通過查詢單片機用戶手冊,判斷在RAM存儲器的(TOxOff地址空間內(nèi)是否有為單片機程序分配的地址,如果有,則將位標志定義在(TOxOff地址空間內(nèi)除了為單片機程序分配的地址的其它地址中; 如果(TOxOfT地址空間不能全部容納位標志,則通過優(yōu)化程序減少位標志,或者將不可能在非中斷服務(wù)程序和中斷服務(wù)程序中同時改變值的位標志放置到其他地址空間。
5.如權(quán)利要求4所述的空調(diào)器中單片機位標志編程控制方法,其特征在于,當(dāng)所有的位標志放入(TOxOff地址空間后,如果還剩下有(TOxOff地址空間沒有用完,再將需要快速、高效使用的變量放入(TOxOff地址空間。
6.如權(quán)利要求4或5所述的空調(diào)器中單片機位標志編程控制方法,其特征在于,當(dāng)(TOxOff地址空間已經(jīng)全部使用后,將非位標志的其它變量放入(TOxOff地址空間以外的RAM存儲器地址中。
全文摘要
本發(fā)明涉及空調(diào)控制技術(shù),其公開了一種空調(diào)器中單片機位標志編程控制方法,解決傳統(tǒng)技術(shù)中的位標志操作由于不能在一條指令內(nèi)完成,導(dǎo)致程序執(zhí)行不穩(wěn)定,可能出現(xiàn)空調(diào)器室內(nèi)機和室外機無法正常通訊的問題。該方法通過將位標志定義在RAM存儲器的0頁地址空間中,作為位標志變量使用。解決了對非0~0x0ff地址范圍內(nèi)的位標志操作帶來的位標志不能可靠置1、清0問題,也解決了由此帶來的隨機程序故障,極大的提高了程序開發(fā)速度,減小了排除故障的調(diào)試時間,縮短了程序代碼,節(jié)約了只讀存儲器ROM空間,減小了對單片機資源的特別要求,降低了產(chǎn)品開發(fā)成本,提高了程序執(zhí)行的可靠性,同時提高了產(chǎn)品質(zhì)量。本發(fā)明特別適用于空調(diào)器的單片機中。
文檔編號G06F9/45GK102945183SQ20121042799
公開日2013年2月27日 申請日期2012年10月31日 優(yōu)先權(quán)日2012年10月31日
發(fā)明者陳躍 申請人:四川長虹電器股份有限公司