新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于MCS-51單片機(jī)的測(cè)控系統(tǒng)的軟時(shí)鐘設(shè)計(jì)的優(yōu)化

基于MCS-51單片機(jī)的測(cè)控系統(tǒng)的軟時(shí)鐘設(shè)計(jì)的優(yōu)化

作者: 時(shí)間:2013-02-17 來(lái)源:網(wǎng)絡(luò) 收藏

  隨著微電腦的廣泛應(yīng)用,以單片機(jī)為核心的微機(jī)已隨處可見(jiàn)。為滿足用戶要求,這些系統(tǒng)通常都具有數(shù)碼顯示時(shí)鐘的功能。由于內(nèi)部包含2個(gè)定時(shí)計(jì)數(shù)器,將其中一個(gè)定時(shí)計(jì)數(shù)器用于設(shè)計(jì)的方法,可以大大節(jié)省硬件開(kāi)銷。本文提出了如何提高的定時(shí)精度,以及在存在的情況下,如何提高以單片機(jī)為核心的的設(shè)計(jì)質(zhì)量的方法。

  一、 MCS-51單片機(jī)內(nèi)部定時(shí)計(jì)數(shù)器的概述

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

  二、軟時(shí)鐘程序設(shè)計(jì)方法1—0.1 s計(jì)數(shù)法

  0.1 s計(jì)數(shù)法的基本原理如下:

通過(guò)設(shè)置定時(shí)計(jì)數(shù)器0每經(jīng)過(guò)0.1 s請(qǐng)求一次中斷,中斷處理程序會(huì)令軟時(shí)鐘的基準(zhǔn)0.1 s單元增加1,而該單元每增加10次,再令軟時(shí)鐘的秒單元增加1,以此類推,按照時(shí)間進(jìn)位令分、時(shí)、日、月直至年單元增加1。設(shè)CPU所接晶體振蕩器的振蕩頻率為6 MHz,則1個(gè)機(jī)器周期為2μs,當(dāng)T0作為定時(shí)器工作時(shí),定時(shí)器溢出,即中斷周期:T=2×TC×10-6 s,式中TC為時(shí)間常數(shù)。令中斷周期T=O.1 s,可得:TC=0.1/(2×10-6)=50 000=0C350H,此時(shí)間常數(shù)決定了T0必須為16位定時(shí)器,故設(shè)置為工作方式1。由于是加法計(jì)數(shù)器,初值IC應(yīng)為時(shí)間常數(shù)TC的補(bǔ)碼,所以IC=216-TC=10000H-0C350H=3CBOH,修正以后,取IC=3CB4H,有關(guān)程序段具體設(shè)計(jì)如下。

  初始化程序:


  由上述程序可知,作為16位定時(shí)器使用時(shí),T0不能自動(dòng)裝入初值,每次進(jìn)入中斷服務(wù)程序后,首先必須用程序裝入初值,下一次定時(shí)實(shí)際上是從裝入初值低位字節(jié)后開(kāi)始的,所以在設(shè)定T0中斷為高優(yōu)先級(jí)以及CPU對(duì)T0中斷請(qǐng)求的響應(yīng)無(wú)等待延時(shí)的理想情況下,1個(gè)中斷周期所包含的實(shí)際時(shí)間t=初值到計(jì)數(shù)滿所需時(shí)間+入口引導(dǎo)時(shí)間+裝入初值低位字節(jié)時(shí)間。


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉