999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

MCS-51單片機中軟時鐘設計的優化方法

2010-04-12 00:00:00張樂芳,龐新法,黃天錄
現代電子技術 2010年15期

摘 要:根據MCS-51單片機內部定時計數器的特點,提出一種通過對定時計數器中斷間隔時間進行累加的軟時鐘設計方法,并在此基礎上提出通過改變時間處理方式的進一步優化方法。此方法不僅簡化了程序設計,節省了硬件開銷,而且提高了電腦時鐘的定時精度,具有廣泛的應用價值。

關鍵詞:單片機; 軟時鐘; 定時計數器; 計數器中斷間隔; 優先級

中圖分類號:TP368文獻標識碼:A

文章編號:1004-373X(2010)15-0187-03

Optimization Methods of Soft-clock Design in MCS-51 Single Chip Computer

ZHANG Le-fang1, PANG Xin-fa2, HUANG Tian-lu3

(1.School ofInformation Engineering, Xi’an Eurasia University, Xi’an 710065, China;2. Shaanxi Province Party School of CPC, Xi’an 710061, China;

3. Xi’an Communication Institute, Xi’an 710106, China)

Abstract: A soft-clock design method cumulative with timing counter interruptive interval is proposed according to the characteristics of the timing counter in MCS-51 single chip computer. On this basis, a further optimization method to accumulate the interruptive interval time of the timing counter is put forward. This method not only simplifies the program design and reduces the hardware costs but also improves the clock timing accuracy of the computer. Therefore, it has a very wide range of applications.

Keywords: single chip computer; soft-clock; timing counter; counter interruptive interval; priority grade

0 引 言

隨著微電腦應用的普及,以MCS-51單片機為核心的微機測控系統已隨處可見。為滿足用戶要求,這些系統通常都具有數碼顯示時鐘的功能。由于MCS-51內部包含2個定時計數器,通過采用將其中一個定時計數器用于軟時鐘設計的方法,可以大大節省硬件開銷。本文提出了如何提高軟時鐘的定時精度,以及在軟時鐘存在的情況下,如何提高以 MCS-51單片機為核心的測控系統的設計質量的方法。

1 MCS-51單片機內部定時計數器概述

MCS-51單片機內部包含2個定時計數器T0和T1,它們都是16位的加法計數器,既可用于定時,也可用于計數,在用于定時的情況下,計數脈沖由內部提供,因此計數速率固定為 CPU振蕩頻率的1/12;在用于計數的情況下,計數脈沖來自外部,外部計數脈沖通過 MCS-51的引腳T0(第14腳)或T1(第15腳)輸入[1-2],在發生從1到0的跳變時計數加1。每個定時計數器又有4種工作方式可供選擇:方式0構成13位定時計數器,高3位未用;方式1構成16位定時計數器;方式2構成8位定時計數器,低位字節用于計數,高位字節存放初值[3-4];方式3只適合于T0,構成兩個獨立的8位定時計數器。在方式0、方式1及方式3時,初值不能自動裝入,當定時時間已到或計數次數已滿時,若要進行下一次定時計數,必須利用軟件裝入初值,否則,系統會按上限自動定時或計數,即以0初值進行定時或計數[5-6];而在方式2時,初值可自動裝入,只需向高位字節寫入一次初值,則當低位字節定時時間到(或計數滿)時,高位字節的初值會自動裝入低位字節,且高位字節的值保持不變。當系統需用MCS-51單片機的串行接口進行串行通信時,定時計數器T1被固定為波特率發生器,因此,在軟時鐘設計中,總是選擇T0作為定時器[7-8]。

2 軟時鐘程序設計方法1——0.1 s計數法

0.1 s計數法的基本原理如下,通過設置定時計數器0每經過0.1 s請求一次中斷,中斷處理程序會令軟時鐘的基準0.1 s單元增加1,而該單元每增加10次,再令軟時鐘的秒單元增加1,以此類推,按照時間進位令分、時、日、月直至年單元增加1。設CPU所接晶體振蕩器的振蕩頻率為6 MHz,則1個機器周期為2 μs,當T0作為定時器工作時,定時器溢出,即中斷周期:T=2×TC×10-6 s,式中TC為時間常數[9-10]。令中斷周期T=0.1 s,可得:TC=0.1/(2×10-6)=50 000=0C350H,此時間常數決定了T0必須為16位定時器,故設置為工作方式1。由于是加法計數器,初值IC應為時間常數TC的補碼,所以IC=216-TC=10000H-0C350H=3CB0H,修正以后,取IC=3CB4H,有關程序段具體設計如下。

初始化程序:

……;月、日、時、分單元初始化(略)

CHKS0:MOV A,(SBF);秒單元初始化

ADD A, #0

DA A

MOV (SBF), A

CJNE A, #60H, CHKS1

CHKS1:JC CHKL0

MOV (SBF),#0

CHKL0:MOV (BUF),#0 ;0.1 s單元初始化

MOV TL0,#0B4H ;送初值低位字節

MOV TH0,#3CH ;送初值高位字節

MOV TMOD,#01H;設置T0為定時工作方式1

MOV IP,#02H;設置T0中斷為高優先級

ORL IE,#82H;T0允許中斷

SETB TR0;啟動T0

中斷服務程序:

ORG 000BH;入口引導

LJMP CLOCK

ORG ****H

CLOCK:MOV TL0,#0B4H ;送初值低位字節

MOV TH0,#3CH ;送初值高位字節

PUSH PSW;保護程序狀態字

PUSH ACC;保護累加器

SETB RS0;選區1

CLR RS1

INC (BUF);0.1 s單元增加1

MOV A, (BUF)

CJNE A, #0AH, DONE

MOV (BUF), #0

MOV A,(SBF) ;秒單元增加1

ADD A, #1

DA A

MOV (SBF), A

CJNE A, #60H,DONE

MOV (SBF), #0

……;分、時、日、月單元增加1(略)

DONE:POP ACC;恢復累加器

POP PSW;恢復程序狀態字

RETI;中斷返回

由上述程序可知,作為16位定時器使用時,T0不能自動裝入初值,每次進入中斷服務程序后,首先必須用程序裝入初值,下一次定時實際上是從裝入初值低位字節后開始的,所以在設定T0中斷為高優先級以及CPU對T0中斷請求的響應無等待延時的理想情況下,1個中斷周期所包含的實際時間t=初值到計數滿所需時間+入口引導時間+裝入初值低位字節時間。

由于入口引導與裝入初值低位字節共占4個機器周期,所以為了使中斷周期等于0.1 s基準時間,上文對按理論推算出來的初值進行了加4修正。盡管如此,按照方法1設計的時鐘程序與測控系統的其他程序有機聯接在一起運行時,要實現準確定時也是十分困難的,因為在實用工業測控系統中常常不止1個中斷源,而是含有多個中斷源,存在著中斷優先權的管理問題。要使上述軟時鐘能夠準確定時,T0中斷必須設置為高優先級,這樣CPU對T0的定時中斷才有可能不受影響,確保每隔0.1 s執行一次定時中斷服務程序。如果T0定時中斷被設置為低優先級,那么CPU對T0定時中斷的響應就要受到影響。當CPU正在執行某一高優先級中斷源的中斷服務程序時,T0計數滿會產生中斷請求,CPU必須等到當前正在執行的中斷服務程序執行完畢之后,才能響應T0中斷,這必將延長中斷間隔,使初值不能如期裝入,破壞定時的準確性。由此可見,采用方法1設計的時鐘程序限制了系統設置中斷優先級的靈活性,降低了設計效率。例如,某些以數碼管作為顯示器的測控系統,為了節省硬件開銷,通常采用對數碼管進行巡回掃描的方法進行顯示輸出,為使顯示穩定,且無抖動現象,必須將數碼管顯示中斷設置為高優先級,以便保證掃描程序的執行周期固定不變,這便與時鐘定時中斷對優先級的要求發生了矛盾。為克服方法1的缺陷,在實際工程中,通過采用如下所述的方法2來設計時鐘程序,可獲得較好的效果。

3 軟時鐘程序設計方法2——中斷周期累加法

方法2和方法1的程序結構是完全相同的,只是在對秒以下時間的處理上有所不同。將方法1的中斷服務程序中“0.1 s單元增加1”程序段改為:

MOV A, (BUF);0.1 s單元增加1

ADD A, #10H

DA A

MOV (BUF), A

JNC DONE

通過對照容易看出,雖然兩個“0.1 s單元增加1”程序段所用指令不同,但效果是完全一樣的,可以互相替代。改動后的程序將對0.1 s中斷周期的計數,變成了對0.1 s中斷周期的累加,由此引申,對任何小于秒的中斷周期都可以進行累加,當最高位有進位時實施秒增1,同樣可以達到時鐘定時的目的。MCS-51單片機內部定時器選擇工作方式1時為16位計數器,在上述假定條件下,當初值為0時,T0的定時中斷周期T=0131 072 s,131072定義為中斷周期常數,在中斷服務程序中對其進行累加。以下是采用方法2設計的時鐘程序。

定義中斷周期常數:

CONST: DB 00H, 13H, 10H, 72H

初始化程序:

…… ;月、日、時、分、秒單元初始化(同方法1)

CHKL0: MOV (BUF0),#0 ;秒以下單元初始化

MOV (BUF1),#0 ;秒以下單元初始化

MOV (BUF2),#0 ;秒以下單元初始化

MOV TMOD,#01H;設置T0為定時工作方式1

ANL IP,#0FDH ;設置T0中斷為低優先級

ORL IE,#82H ;T0允許中斷

SETB TR0 ;啟動T0

中斷服務程序:

……;入口引導(同方法1)

CLOCK: PUSH PSW;保護程序狀態字

PUSH ACC ;保護累加器

PUSH DPH ;保護DPTR高位字節

PUSH DPL ;保護DPTR低位字節

SETB RS0 ;選區1

CLR RS1

MOV R0,#BUF0;中斷周期累加

MOV R2, #3

MOV DPTR,#CONST

CLR C

LJIA:MOV A, R2

MOVC A,@A+DPTR

ADDC A,@R0

DA A

MOV @R0, A

INC R0

DJNZ R2, LJIA

JNC DONE

…… ; 秒、分、時、日、月單元增1(同方法1)

DONE: POP DPL ;恢復DPTR低位字節

POP DPH ;恢復DPTR高位字節

POP ACC ;恢復累加器

POP PSW ;恢復程序狀態字

RETI;中斷返回

方法2采用對中斷周期進行累加的方法,令定時器滿量程計數,初值為0,計數滿后,自動重新從0開始計數,不需用程序裝入初值,從根本上擺脫了裝入初值的困擾,當然也就避免了對初值進行修正的繁瑣過程。由于不需要裝入初值,CPU可在中斷周期的任意時刻,響應定時器的中斷請求,只需保證下一次中斷請求到來之前將中斷服務程序執行完畢即可,從而使定時器大大降低了對中斷優先級的要求。因此方法2將定時器中斷設置為低優先級,而方法1則將其設置為高優先級。顯然,采用方法2不僅便于程序設計,而且提高了程序設計的效率。

方法2中,當定時器滿量程計數時,中斷周期不再是標準的0.1 s,因此中斷周期在累加過程中向秒單元的進位,大多數發生在非整秒時刻,而且進位間隔也不盡相同,具體來講,假設秒以下時間單元從0開始累加,那么向秒單元進位第一次是在1048 576 s時刻,第二次是在2097 152 s時刻,第三次是在3.014 656 s時刻,…,第一次與第二次間隔為1.048 576 s,第二次與第三次間隔為0917 504 s,……,進位間隔有時候大于1 s,有時候小于1 s,然而,對分、時、日、月這些長期時間過程來說,積累誤差可以認為等于0,從這個意義上說,方法2大大提高了定時精度。

4 結 語

提出了采用MCS-51內部定時計數器作為軟時鐘設計的方法,不僅節省了硬件開銷,而且提高軟時鐘的定時精度,具有廣泛的應用價值。在實際測試中,當晶體振蕩器的振蕩頻率不是標準6 MHz時,通過調整中斷周期常數,以及必要時通過增加秒以下時間單元緩沖區的字節數,可使中斷周期常數準確到所需精度。

參考文獻

[1]陳建鐸.單片機原理與應用[M].北京:科學出版社,2004.

[2]李群芳,方事明,游華杰.單片機原理與應用[M].湖北:武漢大學出版社,2006.

[3]李剛,林凌,姜葦.51系列單片機系統設計與應用技巧[M].北京:北京航空航天大學出版社,2004.

[4]高峰.單片微機應用系統設計及實用技術[M].北京:機械工業出版社,2004.

[5]李廣弟,朱月秀,冷祖祁.單片機基礎[M].北京:北京航空航天大學出版社,2001.

[6]張專成.多參量火警監測器的軟判決與單片機實現[J].微計算機信息,2008,24(8):149-151.

[7]黃天錄.PIC12F675單片機在復合式火災探測器設計中的應用[J].西安通信學院學報,2006(4):28-31.

[8]竇振中.單片機外圍器件使用手冊[M].北京:北京航空航天大學出版社,2003.

[9]邵貝貝.Motorola DSP型16位單片機原理與實踐[M].北京:北京航空航天大學出版社,2003.

[10]馬忠梅,籍順心,張凱,等.單片機的C語言應用程序設計[M].北京:北京航空航天大學出版社,2003.

主站蜘蛛池模板: 毛片网站在线看| 久久男人资源站| 亚洲黄色高清| 久久五月天国产自| 成人精品午夜福利在线播放| 99热最新网址| 欧美成a人片在线观看| 国产XXXX做受性欧美88| 日本高清视频在线www色| 亚洲欧美日韩色图| 91免费片| 亚洲一级毛片在线观| 91九色国产porny| 成人一区在线| 一本色道久久88| 高清无码手机在线观看| 2021国产精品自拍| 亚洲大尺度在线| 黄色福利在线| 无码高潮喷水在线观看| yy6080理论大片一级久久| 亚洲av无码牛牛影视在线二区| 91小视频在线观看免费版高清| 国产成人精品18| 91麻豆精品视频| 香蕉久久国产精品免| 在线精品视频成人网| 久久国产精品嫖妓| 老色鬼久久亚洲AV综合| 国产精品视频导航| 亚洲人成网18禁| 国产69精品久久久久孕妇大杂乱 | 国产美女人喷水在线观看| 亚洲人成电影在线播放| 国产va免费精品观看| 成年网址网站在线观看| 国产精品无码一区二区桃花视频| 国产又粗又猛又爽视频| 亚洲精品人成网线在线| 国产爽歪歪免费视频在线观看 | 色婷婷在线影院| 色国产视频| 国产成人调教在线视频| 亚洲无限乱码| 国产国拍精品视频免费看| 亚洲欧美日韩高清综合678| 久久黄色毛片| 国产精品va免费视频| 欧美一级色视频| 夜夜拍夜夜爽| 欧美日韩一区二区三| 亚洲妓女综合网995久久| 日韩天堂在线观看| 蜜臀AVWWW国产天堂| 国产成人精品日本亚洲77美色| 福利一区三区| 国产成人永久免费视频| 在线欧美国产| 国产粉嫩粉嫩的18在线播放91 | 国产一级裸网站| 老司机精品99在线播放| 国产va在线观看| 亚洲五月激情网| 2021国产精品自拍| 免费一级全黄少妇性色生活片| 国产成人精品2021欧美日韩| 在线一级毛片| 欧美一道本| 国产原创演绎剧情有字幕的| 日本妇乱子伦视频| 奇米影视狠狠精品7777| 中国毛片网| 全裸无码专区| 亚洲三级影院| 日韩中文欧美| 美美女高清毛片视频免费观看| 五月婷婷欧美| 无码精油按摩潮喷在线播放| 欧美精品在线看| 国产欧美日韩va另类在线播放| 欧美日韩综合网| 波多野结衣无码中文字幕在线观看一区二区 |