日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶(hù)?[免費(fèi)注冊(cè)]

當(dāng)前位置:電子發(fā)燒友網(wǎng) > 圖書(shū)頻道 > 電子 > 《微計(jì)算機(jī)原理》 > 第7章 8086系統(tǒng)設(shè)計(jì)

第4節(jié) 可編程定時(shí)和計(jì)數(shù)器

                                                                                       第四節(jié) 可編程定時(shí)和計(jì)數(shù)器 

  在控制系統(tǒng)中,經(jīng)常需要有一些實(shí)時(shí)鐘以實(shí)現(xiàn)實(shí)時(shí)或延時(shí)控制,如定時(shí)啟動(dòng),定時(shí)檢測(cè),定時(shí)通信等,計(jì)數(shù)器 對(duì)外部事件計(jì)數(shù).實(shí)現(xiàn)這些要求經(jīng)常有三種方法:
  (1)設(shè)計(jì)數(shù)字邏輯電路,用硬件實(shí)現(xiàn)定時(shí)或計(jì)數(shù)功能,如用NE555芯片實(shí)現(xiàn)定時(shí),用74LS163電路實(shí)現(xiàn)計(jì)數(shù)等.
  (2)軟件定時(shí),讓CPU反復(fù)執(zhí)行一段程序,程序段所需時(shí)間乘以循環(huán)次數(shù)就是延時(shí)時(shí)間.這種方法通用性, 靈活性好,但占用CPU的時(shí)間,降低CPU的利用率.
  (3)可編程定時(shí)器電路,可用軟件改變定時(shí)范圍,并與CPU并行工作,功能強(qiáng),使用靈活.
  各種系列的微處理器芯片中都有可編程的定時(shí)計(jì)數(shù)電路,如I8253和I8254,Z80CTC,M6840等,本節(jié)主要介紹 I8253定時(shí)計(jì)數(shù)電路.

§7.4.1 概述 

  Intel 8253是一種具有以下三個(gè)獨(dú)立的16位計(jì)數(shù)器的可編程器件,可以用來(lái)定時(shí)和計(jì)數(shù).
  1.基本功能如下:
  (1)一片上有三個(gè)獨(dú)立的計(jì)數(shù)器通道.
  (2)每個(gè)計(jì)數(shù)器的計(jì)數(shù)頻率范圍為0~2MHZ.
  (3)每個(gè)計(jì)數(shù)器都可以按照二進(jìn)制或十進(jìn)制計(jì)數(shù).
  (4)每個(gè)通道有6中工作方式,可由程序設(shè)置或改變.
  (5)所有輸入輸出都與TTL兼容.
  (6)除具有計(jì)數(shù)或定時(shí)功能外,還可用來(lái)作為可編程頻率發(fā)生器,二進(jìn)制分頻器,數(shù)字單穩(wěn),以及復(fù)雜的電機(jī)控制器等.
  2.8253的內(nèi)部結(jié)構(gòu)如圖7-21所示.
  數(shù)據(jù)總線(xiàn)緩沖器是8253與CPU數(shù)據(jù)總線(xiàn)連接的8位雙向三態(tài)緩沖,CPU用輸入輸出指令對(duì)8253進(jìn)行讀寫(xiě)的 所有信息都是通過(guò)這個(gè)緩沖器傳送的.如CPU向8253寫(xiě)控制字,寫(xiě)計(jì)數(shù)初值或從8253讀計(jì)數(shù)值等均通過(guò)總線(xiàn) 緩沖器.
  讀/寫(xiě)邏輯是8253內(nèi)部操作的控制部件,它接收來(lái)自系統(tǒng)總線(xiàn)的輸入信號(hào),然后產(chǎn)生控制信號(hào).各控制信號(hào)及作用為:
  CS:片選信號(hào),當(dāng)CS為低電平時(shí),8253被選中,允許CPU對(duì)8253進(jìn)行讀寫(xiě)操作.否則,數(shù)據(jù)總線(xiàn)緩沖器處在三態(tài),與系統(tǒng)總線(xiàn)脫開(kāi),不能進(jìn)行讀寫(xiě)操作.
  RD和WR:讀和寫(xiě)信號(hào),RD為低電平時(shí),計(jì)數(shù)值讀入CPU,WR為低電平時(shí),CPU可向8253寫(xiě)入控制字和計(jì)數(shù)初值,這兩個(gè)信號(hào)是控制三態(tài)緩沖器傳送方向的.
  A0和A1:通常接到地址總線(xiàn)的A0和A1上,用來(lái)選擇控制字寄存器和三個(gè)計(jì)數(shù)器之一.各個(gè)端口的讀寫(xiě)操作 選擇如表7-2.
                                 

CS RD WR A1 A0  
0 1 0 0 0 寫(xiě)入計(jì)數(shù)器0
0 1 0 0 1 寫(xiě)入計(jì)數(shù)器1
0 1 0 1 0 寫(xiě)入計(jì)數(shù)器2
0 1 0 1 1 寫(xiě)入控制寄存器
0 0 1 0 0 讀計(jì)數(shù)器0
0 0 1 0 1 讀計(jì)數(shù)器1
0 0 1 1 0 讀計(jì)數(shù)器2
0 0 1 1 1 無(wú)操作
1 * * * * 未選中三態(tài)
0 1 1 * * 無(wú)操作

  控制字寄存器在8253的初始化編程時(shí),由CPU寫(xiě)入控制字,用來(lái)控制通道工作方式,計(jì)數(shù)方式等.
  計(jì)數(shù)器0,1,2三個(gè)計(jì)數(shù)器/定時(shí)器通道,內(nèi)部邏輯結(jié)構(gòu)相同,每一個(gè)都是由一個(gè)16位的可預(yù)置初值的減法 計(jì)數(shù)器組成,三個(gè)通道操作完全是獨(dú)立的.每個(gè)通道都是按二進(jìn)制或十進(jìn)制計(jì)數(shù),從預(yù)置初值開(kāi)始減一計(jì)數(shù), 當(dāng)計(jì)數(shù)器減到0時(shí),從OUT輸出端輸出一個(gè)信號(hào),在計(jì)數(shù)過(guò)程中,計(jì)數(shù)器受門(mén)控信號(hào)GATE的控制,計(jì)數(shù)器的輸入 和輸出及門(mén)控信號(hào)之間的關(guān)系取決于工作方式.
  3.引腳
  8253是24引腳雙列直插式器件,其引腳如圖7-22所示.數(shù)據(jù)總線(xiàn)D0~D7及控制線(xiàn)RD,WR,A0,A1,CS是與 系統(tǒng)總線(xiàn)相連的.除此之外,每一個(gè)通道還有三條引線(xiàn),它們是CLK,GATE和OUT.CLK是輸入計(jì)數(shù)脈沖線(xiàn),輸入 時(shí)鐘脈沖周期要大于380ns.GATE是門(mén)控信號(hào)輸入線(xiàn),GATE為高電平時(shí)允許計(jì)數(shù)器工作.GATE為低電平時(shí),禁 止計(jì)數(shù)器工作.OUT是輸出綫線(xiàn),當(dāng)計(jì)數(shù)器減到0時(shí),OUT線(xiàn)有輸出,輸出波形決定工作方式.

§7.4.2 8253的初始化編程 

  使用8253必須首先進(jìn)行初始化編程,初始化編程的步驟是:先寫(xiě)入每一個(gè)計(jì)數(shù)器的控制字,然后寫(xiě)入每個(gè)計(jì)數(shù)器計(jì)數(shù)初值.控制字的格式如圖7-23所示.控制字占用8位,其各位的意義如圖7-23所示。

                                       
  D7,D6是計(jì)數(shù)器選擇,決定這個(gè)控制字是哪個(gè)通道的控制字.由于三個(gè)通道是獨(dú)立工作的,所以需三個(gè)控制 字寄存器保存三個(gè)寫(xiě)入的控制字.但寫(xiě)入時(shí)的地址是相同的(A1A0=11),由控制字的D7,D6分別指定不同的通道.
  D5,D4是控制數(shù)據(jù)讀寫(xiě)格式.當(dāng)CPU向計(jì)數(shù)器寫(xiě)入初值或讀出當(dāng)前值時(shí),可以只讀寫(xiě)低8位,或只讀寫(xiě)高8位, 或讀寫(xiě)16位,這些功能由D3,D4控制.
  D3,D2,D1是工作方式選擇,由這三位可選擇16種不同的工作方式.
  D0位用于數(shù)制選擇,當(dāng)D0=0時(shí),計(jì)數(shù)器按二進(jìn)制計(jì)數(shù),計(jì)數(shù)范圍是0000H~FFFFH.當(dāng)D0=1時(shí),計(jì)數(shù)器按二-十 進(jìn)制計(jì)數(shù),計(jì)數(shù)范圍為0000~9999.

§7.4.3 8253的工作方式 

1、方式0,完成計(jì)數(shù)時(shí)中斷
  在這種方式下,當(dāng)把控制字寫(xiě)入控制寄存器后,OUT輸出端變低,計(jì)數(shù)初值裝入該計(jì)數(shù)器后,OUT仍為低, 也不計(jì)數(shù).當(dāng)GATE輸入高電平時(shí),計(jì)數(shù)器開(kāi)始遞減計(jì)數(shù).并在計(jì)數(shù)過(guò)程中OUT一直為低電平,當(dāng)計(jì)數(shù)器減到0 時(shí),OUT輸出變高,其工作波形見(jiàn)圖7-24,圖中寫(xiě)入的初始值為4.方式0有如下特點(diǎn):
  (1)計(jì)數(shù)器只計(jì)一遍,當(dāng)計(jì)數(shù)到0時(shí),計(jì)數(shù)器不再裝入初始值重新計(jì)數(shù),輸出保持高電平,直到CPU又寫(xiě)入 一個(gè)新計(jì)數(shù)值,OUT變低開(kāi)始新的計(jì)數(shù).
  (2)計(jì)數(shù)過(guò)程中,可由GATE信號(hào)控制暫停計(jì)數(shù),即GATE=0時(shí)暫停計(jì)數(shù),GATE=1時(shí)又接著計(jì)數(shù),但GATE不 影響OUT的狀態(tài).
  (3)計(jì)數(shù)過(guò)程中可重新裝入計(jì)數(shù)初值,若是按8位計(jì)數(shù),在寫(xiě)入新的計(jì)數(shù)初值后,計(jì)數(shù)器按新的計(jì)數(shù)初值 重新開(kāi)始計(jì)數(shù).如果是16位計(jì)數(shù),在寫(xiě)入第一個(gè)字節(jié)后,計(jì)數(shù)器停止計(jì)數(shù),寫(xiě)入第二個(gè)字節(jié)后,計(jì)數(shù)器按新的 計(jì)數(shù)值開(kāi)始計(jì)數(shù).
  (4)8253內(nèi)部是在CPU寫(xiě)計(jì)數(shù)值時(shí)WR的上升沿寫(xiě)入時(shí)常寄存器,在WR上升沿的下一個(gè)CLK脈沖,才將計(jì)數(shù)值 從時(shí)常寄存器裝入計(jì)數(shù)器,計(jì)數(shù)器才開(kāi)始計(jì)數(shù).所以若設(shè)置初值為N,則輸出OUT是在N+1個(gè)CLK脈沖之后才變高 的.這個(gè)特點(diǎn)在方式1,方式2,方式4和方式5也是同樣的.
  

2、方式1,可編程單穩(wěn)
  在這種方式下,CPU寫(xiě)入控制字后,OUT變?yōu)楦唠娖?CPU寫(xiě)入計(jì)數(shù)值后,計(jì)數(shù)器并不計(jì)數(shù),在GATE信號(hào)的 上升沿的下一個(gè)CLK的下降沿開(kāi)始計(jì)數(shù),OUT變?yōu)榈碗娖?直至遞減計(jì)數(shù)器全為0時(shí),OUT變?yōu)楦唠娖?輸出一個(gè) 單脈沖,若GATE信號(hào)再由低變高,可以再產(chǎn)生一個(gè)單脈沖,相當(dāng)于一個(gè)單穩(wěn),圖7-25是方式1的工作波形.方式 1的特點(diǎn)是:
  (1)輸出單脈沖的寬度是計(jì)數(shù)初值N乘以輸入脈沖周期.
  (2)當(dāng)計(jì)數(shù)到0后,可再次由外部觸發(fā)啟動(dòng),可再輸出一個(gè)同樣寬度的單脈沖,而不需要重新輸入一個(gè)計(jì)數(shù) 初值.
  (3)計(jì)數(shù)過(guò)程中,CPU可改寫(xiě)計(jì)數(shù)值,但計(jì)數(shù)過(guò)程不受影響,計(jì)數(shù)將按原來(lái)的計(jì)數(shù)值減到0,若再次啟動(dòng),則 后寫(xiě)入計(jì)數(shù)值起作用.
  3.方式2,分頻脈沖產(chǎn)生器

  在這種工作方式下,8253相當(dāng)于一個(gè)分頻脈沖產(chǎn)生器,如計(jì)數(shù)值為N,則每輸入N個(gè)CLK脈沖,輸出一個(gè)脈沖,脈沖寬度等于CLK的周期.其計(jì)數(shù)過(guò)程如圖7-26所示.方式2的主要特點(diǎn)是:
  (1)不要重新設(shè)置計(jì)數(shù)值,通道能連續(xù)工作,輸出固定頻率的脈沖.
  (2)計(jì)數(shù)過(guò)程可由GATE信號(hào)控制,當(dāng)GATE為0時(shí),暫停計(jì)數(shù),當(dāng)GATE變?yōu)楦唠娖降南乱粋€(gè)CLK脈沖又重新計(jì)數(shù)
  (3)在計(jì)數(shù)過(guò)程中,CPU可隨時(shí)改變計(jì)數(shù)值,當(dāng)計(jì)數(shù)器減到0后,又按新的計(jì)數(shù)值分頻.
  4.方式3,分頻方波產(chǎn)生器
  方式3輸出的是周期性方波,若計(jì)數(shù)值為N,則輸出方波的周期是N個(gè)CLK脈沖周期.所以稱(chēng)為方波產(chǎn)生器. 在這種情況下,CPU寫(xiě)入控制字后OUT變高,寫(xiě)完計(jì)數(shù)值后自動(dòng)開(kāi)始計(jì)數(shù),輸出保持為高.當(dāng)計(jì)到一半計(jì)數(shù)值時(shí) 輸出變低,直至計(jì)數(shù)到0,輸出又變高,重新開(kāi)始計(jì)數(shù),工作波形如圖7-27所示.方式3的主要特點(diǎn)是:


  (1)當(dāng)計(jì)數(shù)為偶數(shù)時(shí),裝入計(jì)數(shù)值后,每一個(gè)CLK脈沖使計(jì)數(shù)器減2,計(jì)到0后,一方面使OUT狀態(tài)改變,另外 計(jì)數(shù)值又裝入計(jì)數(shù)器,這樣反復(fù)工作.若計(jì)數(shù)值為奇數(shù)第一個(gè)CLK脈沖使計(jì)數(shù)器減1,以后與偶數(shù)時(shí)的工作情形 相同.所以N值為奇數(shù)時(shí),OUT有(N+1)/2個(gè)CLK脈沖周期為高,有N/2個(gè)CLK脈沖周期為低.
  (2)GATE信號(hào)可以控制計(jì)數(shù).GATE=0時(shí)停止計(jì)數(shù),GATE=1時(shí),允許計(jì)數(shù).
  (3)在計(jì)數(shù)期間裝入新計(jì)數(shù)值不影響原來(lái)的計(jì)數(shù)過(guò)程.
  5.方式4,軟件觸發(fā)選通
  當(dāng)寫(xiě)入控制字后,OUT變高,寫(xiě)入計(jì)數(shù)值后,立即開(kāi)始計(jì)數(shù)(相當(dāng)于軟件觸發(fā)啟動(dòng)),計(jì)數(shù)器計(jì)到0時(shí),OUT變 低,經(jīng)過(guò)一個(gè)脈沖周期后,OUT又變高,計(jì)數(shù)器停止計(jì)數(shù),所以是一次性的,當(dāng)寫(xiě)入新的計(jì)數(shù)值后才開(kāi)始新的計(jì)數(shù), 工作波形見(jiàn)圖7-28.方式4的特點(diǎn)為:
  (1)要求GATE一直為高電平才能軟件觸發(fā).
  (2)若在計(jì)數(shù)過(guò)程中改變計(jì)數(shù)值,則按新計(jì)數(shù)值重新開(kāi)始計(jì)數(shù).
  6.方式5,硬件觸發(fā)選通
  在這種方式下,寫(xiě)入控制字后,OUT變高,寫(xiě)入計(jì)數(shù)值后,計(jì)數(shù)器不計(jì)數(shù),而由GATE信號(hào)上升沿觸發(fā)計(jì)數(shù).直到 0后,輸出變低,經(jīng)過(guò)一個(gè)CLK周期后,OUT又變高,并停止計(jì)數(shù),等下次GATE觸發(fā)器才能計(jì)數(shù),如圖7-29所示.

§7.4.4 8253在IBM PC/XT中的應(yīng)用 

  在IBM PC/XT計(jì)算機(jī)中,應(yīng)用一片8253,它的三個(gè)通道的作用為:
  通道0用作定時(shí)器,為系統(tǒng)提供一個(gè)恒定的時(shí)間標(biāo)準(zhǔn).初始編程使通道0按方式3工作,每秒產(chǎn)生198.2次 輸出信號(hào),該信號(hào)送到8259中斷控制器的IRQ0輸入端.每55MS產(chǎn)生一次中斷請(qǐng)求,8088對(duì)其計(jì)數(shù),用來(lái)計(jì)算時(shí)間. 通道1用在動(dòng)態(tài)RAM刷新定時(shí),每隔15.12微秒產(chǎn)生一次輸出信號(hào),請(qǐng)求動(dòng)態(tài)RAM刷新.OUT1輸出產(chǎn)生DMA請(qǐng)求信號(hào) 送8237,由8237對(duì)動(dòng)態(tài)RAM刷新.通道2編程為方波產(chǎn)生器,輸出方波送到揚(yáng)聲器,用程序可改變方波頻率和延續(xù) 時(shí)間,就可改變揚(yáng)聲器的聲調(diào)和發(fā)聲時(shí)間.
  圖7-30是8253在PC/XT的接線(xiàn)圖,三個(gè)計(jì)數(shù)器的輸入脈沖都是PLCK的二分頻,而PCLK是8284時(shí)鐘發(fā)生器, 頻率為2.38MHZ,所以三個(gè)計(jì)數(shù)器的輸入脈沖頻率均為1.19MHz.GATE0和GATE1都接在5V上,使通道0和1寫(xiě)入 計(jì)數(shù)值后開(kāi)始計(jì)數(shù).GATE2接在并行接口8255的PB0上,由并行接口控制其工作.
                                                          
  在PC/XT計(jì)算機(jī)中,8253分配地址為40~~43H,BIOS對(duì)8253進(jìn)行初始化編程,各通道工作狀態(tài)為:
   通道0:地址為40H,控制字為36H,即工作方式3,二進(jìn)制計(jì)數(shù),計(jì)數(shù)初值為0.
   通道1:地址為41H,控制字為54H,工作方式2,二進(jìn)制計(jì)數(shù),計(jì)數(shù)初值為12H.
   通道2:地址為42H,控制字為B6H,工作方式3,二進(jìn)制計(jì)數(shù),計(jì)數(shù)初值為533H,輸出方波頻率為1KHZ.
  由于通道0的計(jì)數(shù)常數(shù)為0,而8253是16位減法計(jì)數(shù)器,所以實(shí)際計(jì)數(shù)常數(shù)是65536.因此通道0輸出方波信號(hào)周期T0=55ms。通道1的計(jì)數(shù)常數(shù)為12H,所以通道1輸出方波信號(hào)周期T1=15.12μs。通道2計(jì)數(shù)常數(shù)為0533H,輸出方波信號(hào)周期T2=1.118ms,所以喇叭輸出頻率為894Hz的聲音.
?
青龙| 公安县| 寿阳县| 扶绥县| 麻栗坡县| 连云港市| 彭州市| 定边县| 红河县| 松江区| 惠安县| 淮滨县| 靖边县| 青海省| 龙州县| 特克斯县| 西贡区| 全州县| 吉木萨尔县| 安乡县| 全椒县| 南岸区| 上犹县| 怀宁县| 方山县| 郁南县| 乾安县| 威远县| 利津县| 佛山市| 紫云| 乐昌市| 东乌| 庄浪县| 斗六市| 阳信县| 宜宾县| 沭阳县| 芦山县| 灵台县| 盐津县|