可編程定時器計數(shù)器_第1頁
可編程定時器計數(shù)器_第2頁
可編程定時器計數(shù)器_第3頁
可編程定時器計數(shù)器_第4頁
可編程定時器計數(shù)器_第5頁
已閱讀5頁,還剩90頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

可編程定時器計數(shù)器第一頁,共九十五頁,2022年,8月28日

7.18253的功能、引腳與內(nèi)部結(jié)構7.1.1項目1:用8253對外部事件進行計

7.1.2知識講解

7.28253的控制字和讀寫操作項目2:用8253控制LED閃爍知識講解

7.38253的工作方式項目3:用8253控制繼電器知識講解

7.4項目擴展與工程應用項目4:電子琴項目5:用8253實現(xiàn)生產(chǎn)流水線上的工件計數(shù)目錄第二頁,共九十五頁,2022年,8月28日7.18253的功能、引腳與內(nèi)部結(jié)構2.項目電路連接與說明(1)項目電路連接:8253的片選孔用導線接至譯碼處200H~207H插孔,CLK0接至按鈕開關UP插孔上,GATE0接至+5V電源插孔上,OUT0接至反相器的輸入上,反相器的輸出接至發(fā)光二極管LED0的陰極上。

1.項目要求與目的(1)項目要求:利用8086外接8253可編程定時器/計數(shù)器,可以實現(xiàn)對外部事件進行計數(shù)。(2)項目目的:●學習8253芯片引腳及編程方法?!駥W習8086與8253的連接方法。第三頁,共九十五頁,2022年,8月28日(2)項目說明:

項目中計數(shù)器按方式0工作。即十六位二進制計數(shù)器。當計數(shù)設置好后,計數(shù)器就開始計數(shù)。項目所設計數(shù)值為5,也就是外部5個脈沖,計數(shù)器值加1。同時OUT腳輸出一個高電平。實驗時,OUT0接至反相器的輸入上,反相器的輸出接至發(fā)光二極管LED0的陰極上,觀察計數(shù)器是否工作。

當脈沖按鈕開關UP按5次(產(chǎn)生5個脈沖),計數(shù)器值加1,OUT0腳輸出一個高電平,經(jīng)過反相器后發(fā)光二極管LED0燈亮第四頁,共九十五頁,2022年,8月28日3.項目電路原理框圖

利用8253對外部事件進行計數(shù),電路原理框圖如圖7-1所示。電路由8086CPU芯片、8253芯片、按鈕開關UP和發(fā)光二極管LED等組成。 圖7-1電路原理框圖第五頁,共九十五頁,2022年,8月28日圖7-2用8253對外部事件進行計數(shù)程序流程圖4.項目程序設計(1)程序流程圖利用8253對外部事件進行計數(shù)程序流程圖如圖7-2所示。第六頁,共九十五頁,2022年,8月28日(2)程序清單利用8253對外部事件進行計數(shù)程序清單如下所示。CODESEGMENTASSUMECS:CODESTART:MOVAL,30H;二進制計數(shù),方式0,先低后高,通道0MOVDX,203H;8253控制地址OUTDX,ALMOVAL,5;計數(shù)器初始值。MOVDX,200H;通道0地址OUTDX,AL;低八位

MOVAL,0OUTDX,AL;高八位

AGAIN:JMPAGAINCODEENDSENDSTART第七頁,共九十五頁,2022年,8月28日7.1.2知識講解1.定時器/計數(shù)器基本概念與分類在工業(yè)控制系統(tǒng)與計算機系統(tǒng)中,常常需要有定時信號,以實現(xiàn)定時控制,因此定時/計數(shù)器就顯得非常重要。定時器與計數(shù)器二者的差別僅在于用途的不同,對以時鐘信號作為計數(shù)脈沖的計數(shù)器就稱為定時器,它主要用以產(chǎn)生不同標準的時鐘信號或是不同頻率的連續(xù)信號,而以外部事件產(chǎn)生的脈沖作為計數(shù)脈沖的計數(shù)器才稱為計數(shù)器,它主要是用以對外部事件發(fā)的次數(shù)進行測量和計量。在計算機系統(tǒng)中使用的定時器/計數(shù)器歸納起來主要有三大類:軟件定時器/計數(shù)器、硬件定時/計數(shù)器和可編程定時器/計數(shù)器。第八頁,共九十五頁,2022年,8月28日

軟件定時器/計數(shù)器是實現(xiàn)系統(tǒng)定時控制或延時控制的最簡單的方法。在計算機中CPU每執(zhí)行一條指令所占用的周期(T狀態(tài))數(shù)是確定的,用匯編語言編寫一段具有固定延時時間的循環(huán)程序,將該程序的每條指令的T狀態(tài)數(shù)加起來,乘以系統(tǒng)的時鐘周期,就是該程序執(zhí)行一遍所需的延時時間。設計者可選擇不同的指令條數(shù)和不同的循環(huán)次數(shù)來實現(xiàn)不同的時間延遲。①軟件定時器/計數(shù)器第九頁,共九十五頁,2022年,8月28日②硬件定時器/計數(shù)器

硬件定時器/計數(shù)器是指由硬件電路來實現(xiàn)的定時與計數(shù)。對于較長時間的定時一般用硬件電路來完成,采用硬件定時/計數(shù)器它的成本低,使用方便。應用在計算機中以產(chǎn)生特定的信號,如555時基電路、單穩(wěn)延時電路或計數(shù)電路等,它們是通過外部的RC元件來實現(xiàn)定時的,該方法的缺點是一旦元件設定就不能改變、電路調(diào)試較麻煩、時間長電阻電容器件會老化,造成電路工作不穩(wěn)定,影響定時準確度和穩(wěn)定性第十頁,共九十五頁,2022年,8月28日

③可編程定時器/計數(shù)器

可編程定時器/計數(shù)器,是一種軟硬件結(jié)合的定時器/計數(shù)器,是為了克服單獨的軟件定時器/計數(shù)器和硬件定時器/計數(shù)器的缺點,而將定時器/計數(shù)器電路做成通用的定時器/計數(shù)器并集成到一個芯片上,定時器/計數(shù)器工作方式又可由軟件來控制選擇。這種定時器/計數(shù)器芯片可直接對系統(tǒng)時鐘進行計數(shù),通過寫入不同的計數(shù)初值,可方便地改變定時與計數(shù)時間,在定時期間不占用CPU資源,更不需要CPU管理。Intel公司生產(chǎn)的8253就是這樣的可編程定時器/計數(shù)器芯片。第十一頁,共九十五頁,2022年,8月28日2.8253的主要功能Intel8253是一種常用的可編程定時器/計數(shù)器接口芯片。8253具有三個獨立的功能完全相同的16位減法計數(shù)器,24腳DIP封裝,由單一的+5V電源供電。主要功能如下所示。

主要功能:

(1)每片8253上有三個獨立的16位減法計數(shù)器,最大計數(shù)范圍為0~65535。(2)每個計數(shù)器都可按二進制或二—十進制計數(shù)(BCD)。(3)每個計數(shù)器都有六種不同的工作方式,都可以通過程序設置和改變。(4)每個計數(shù)器計數(shù)脈沖的頻率最高可達2MHz(5)全部輸入/輸出與TTL電平兼容。

第十二頁,共九十五頁,2022年,8月28日

8253的讀、寫操作,對系統(tǒng)時鐘沒有特殊要求,因此可以應用于任何一種微機系統(tǒng)中,可作為可編程定時器、計數(shù)器還可以作分頻器、方波發(fā)生器以及單脈沖發(fā)生器等。3.8253的引腳8253引腳如圖6-3所示。8253芯片有24根引腳,沒有復位信號RESET引腳,各引腳信號定義如下。圖7-38253引腳圖第十三頁,共九十五頁,2022年,8月28日

(21腳):片選信號,輸入,低電平有效。它與譯碼器輸出信號相連接,當為低電平時,8253芯片被CPU選中。

A1(20腳)、A0(19腳):輸入信號,用來對3個計數(shù)器和控制寄存器進行尋址,與CPU的系統(tǒng)地址線相連。當A1、A0為00、01、10、11時分別表示對計數(shù)器0、計數(shù)器1、計數(shù)器2和控制寄存器的訪問。8253的A1、A0與系統(tǒng)總線的哪根地址線相連,要考慮CPU是8位數(shù)據(jù)總線,還是16位數(shù)據(jù)總線。當CPU為8位數(shù)據(jù)總線時,8253的A1、A0可與地址總線的A1、A0相連;當CPU為16位數(shù)據(jù)總線時,8253的A1、A0引腳分別與地址總線的A2、A1相連。(23腳):寫引腳,輸入,低電平有效。用于控制CPU對8253的寫操作,此引腳與CPU系統(tǒng)控制總線的相連。

(22腳):讀引腳,輸入,低電平有效,用于控制CPU對8253的讀操作,此引腳與CPU系統(tǒng)控制總線的相連。第十四頁,共九十五頁,2022年,8月28日8253讀/寫邏輯信號組合功能及地址分配如表7-1.第十五頁,共九十五頁,2022年,8月28日CLK0~2:時鐘,輸入。CLK時鐘信號用于控制計數(shù)器的減1操作,CLK可以是系統(tǒng)時鐘脈沖,也可以由系統(tǒng)時鐘分頻或者是其他脈沖源提供,輸入的時鐘頻率在1MHz~2MHz范圍內(nèi)。GATE0~2:門控信號,輸入,由外部信號通過GATE端控制計數(shù)器的啟動計數(shù)和停止計數(shù)的操作。OUT0~2:時間到或計數(shù)結(jié)束輸出引腳。當計數(shù)器計數(shù)到0時,在OUT引腳有輸出。在不同的模式下,可輸出不同電平的信號。第十六頁,共九十五頁,2022年,8月28日4.8253的內(nèi)部結(jié)構8253的內(nèi)部結(jié)構如圖6-4所示。由圖可知,它由數(shù)據(jù)總線緩沖器、讀/寫邏輯電路、控制字寄存器和三個計數(shù)通道所組成。圖7-4

8253的內(nèi)部結(jié)構第十七頁,共九十五頁,2022年,8月28日①數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器是8位、雙向、三態(tài)的緩沖器,通過8根數(shù)據(jù)線D0~D7接收CPU向控制寄存器寫入的控制字,向計數(shù)器寫入的計數(shù)初值,也可把計數(shù)器的當前計數(shù)值讀入CPU。②讀/寫邏輯電路讀/寫控制邏輯電路從系統(tǒng)總線接收輸入信號,經(jīng)過譯碼,產(chǎn)生對8253各部分的控制信息。③控制字寄存器當?shù)刂沸盘朅1和A0都為1時,訪問控制字寄存器??刂谱旨拇嫫鹘邮諒腃PU發(fā)來的控制字,控制字決定了8253的工作方式、計數(shù)方式以及使用哪個計數(shù)器等??刂谱旨拇嫫髦荒軐懭氩荒茏x出第十八頁,共九十五頁,2022年,8月28日④計數(shù)通道8253有3個相互獨立的同樣的計數(shù)電路,分別稱作計數(shù)器0、計數(shù)器1和計數(shù)器2。每個計數(shù)器包含一個8位的控制寄存器(控制單元),它存放計數(shù)器的工作方式控制字;一個16位的初值寄存器CR(時間常數(shù)寄存器),8253工作之前要對它設置初值;一個16位計數(shù)執(zhí)行單元CE,它接收計數(shù)初值寄存器CR送來的內(nèi)容,并對該內(nèi)容執(zhí)行減1操作;一個16位輸出鎖存器OL,它鎖存CE的內(nèi)容,使CPU能從輸出鎖存器內(nèi)讀出一個穩(wěn)定的計數(shù)值。計數(shù)器的內(nèi)部結(jié)構如圖6-5所示。第十九頁,共九十五頁,2022年,8月28日圖7-5計數(shù)器的內(nèi)部結(jié)構第二十頁,共九十五頁,2022年,8月28日6.28253的控制字和讀寫操作1.項目要求與目的(1)項目要求:編程將8253定時器0設定為方式3,定時器1設定在方式2,定時器0輸出作為定時器1的輸入,定時器1的輸出接在一個LED上,運行后可觀察到該LED在不停閃爍。(2)項目目的:●學習8253可編程定時器/計數(shù)器定時方法?!駥W習8253多級串聯(lián)實現(xiàn)大時間常數(shù)的定時方法?!駥W習8086控制8253可編程定時器的方法。第二十一頁,共九十五頁,2022年,8月28日2.項目電路連接與說明(1)項目電路連接:8253的片選孔用導線接至譯碼處200H~207H插孔,CLK0接至OUT1插孔上,CLK1接至1MHz插孔上,GATE0和GATE1接至+5V電源插孔上,OUT0接至發(fā)光二極管LED0的陰極上。

(2)項目說明:用8253對標準脈沖信號進行計數(shù),就可以實現(xiàn)定時功能,8253的工作頻率為0~2MHZ,所以輸入的CLK頻率必須在2MHZ以下。用實驗板上的1MHz做為標準信號,將8253可編程計數(shù)器/定時器的時間常數(shù)設在1000000次,就可以在定時器的管腳上輸出1秒鐘高或1秒鐘低的脈沖信號。由于8253每個計數(shù)器只有十六位,因此要用兩個計數(shù)器才能實現(xiàn)一百萬次的計數(shù),實現(xiàn)每一秒鐘輸出狀態(tài)發(fā)生一次反轉(zhuǎn)。第二十二頁,共九十五頁,2022年,8月28日由于定時常數(shù)過大,就要用多級串聯(lián)方式。本實驗采用兩級計數(shù)器。定時常數(shù)分別為100和10000。將計數(shù)器1的輸出OUT1接到計數(shù)器0輸入CLK0上,計數(shù)器0的輸出接到LED0。3.項目電路原理框圖用8253控制LED閃爍的電路原理框圖如圖6-6所示。電路由8086CPU芯片、8253芯片、頻率1MHz和發(fā)光二極管LED等組成。圖6-6用8253控制LED閃爍電路原理框圖第二十三頁,共九十五頁,2022年,8月28日4.項目程序設計(1)程序流程圖用8253控制LED閃爍程序流程圖如圖6-7所示圖6-7用8253控制LED閃爍程序流程圖第二十四頁,共九十五頁,2022年,8月28日(2)程序清單用8253控制LED閃爍程序清單如下所示。CODESEGMENTASSUMECS:CODESTART:MOVAL,36H;計數(shù)器0初始化,16位,方式3,二進制

MOVDX,203H;8253控制地址端口

OUTDX,ALMOVAX,10000MOVDX,200HOUTDX,AL;計數(shù)器低字節(jié)

MOVAL,AHOUTDX,AL;計數(shù)器高字節(jié)

MOVAL,76H;計數(shù)器1初始化,16位,方式3,二進制第二十五頁,共九十五頁,2022年,8月28日MOVDX,203HOUTDX,ALMOVAX,100MOVDX,201HOUTDX,AL;計數(shù)器低字節(jié)

MOVAL,AHOUTDX,AL;計數(shù)器高字節(jié)

JMP$CODEENDSENDSTART第二十六頁,共九十五頁,2022年,8月28日6.2.2知識講解

1.8253的控制字8253的控制字主要用于:選擇哪個計數(shù)器通道工作,決定用8位的計數(shù)值或是用16位的計數(shù)值,是按二進制計數(shù)或按二—十進制計數(shù)(BCD碼),是工作在那種方式。8253是由主機編程設定的,通過把一個8位的控制字寫入8253的控制字寄存器,使8253按照某種給定的方式工作??刂谱值母袷郊岸x如圖6-8所示。第二十七頁,共九十五頁,2022年,8月28日圖6-88253的控制字第二十八頁,共九十五頁,2022年,8月28日8253控制字各位的詳細意義如下:(1)SC1、SC0用于選擇工作的計數(shù)器。SC1SC0=00:選擇計數(shù)器0工作。SC1SC0=01:選擇計數(shù)器1工作。SC1SC0=10:選擇計數(shù)器2工作。SC1SC0=11:無效。(2)RW1、RW0用于選擇讀寫格式。RW1RW0=00:計數(shù)器鎖存命令,把寫本命令時的當前計數(shù)值鎖存到輸出鎖存器OL中,以供CPU讀取。RW1RW0=01:8位計數(shù),只讀/寫計數(shù)器低位字節(jié),高位字節(jié)自動為0。RW1RW0=10:16位計數(shù),只讀/寫計數(shù)器高位字節(jié),低位字節(jié)自動為0。第二十九頁,共九十五頁,2022年,8月28日RW1RW0=11:16位計數(shù),先讀/寫計數(shù)器低位字節(jié),后讀/寫計數(shù)器高位字節(jié)。(3)M2、M1、M0用于選擇工作方式。

M2M1M0=000:使計數(shù)器工作于方式0。

M2M1M0=001:使計數(shù)器工作于方式1。

M2M1M0=010:使計數(shù)器工作于方式2。M2M1M0=011:使計數(shù)器工作于方式3。M2M1M0=100:使計數(shù)器工作于方式4。M2M1M0=101:使計數(shù)器工作于方式5。第三十頁,共九十五頁,2022年,8月28日(4)BCD計數(shù)方式選擇。BCD位用于使計數(shù)器按二進制計數(shù)或十進制(BCD碼)計數(shù)。當BCD位=0時,則計數(shù)器按二進制計數(shù),其計數(shù)范圍是16位二進制數(shù),最大計數(shù)值為216=65536(對應計數(shù)初值為0000H);當BCD位=1時,則計數(shù)器按十進制(BCD碼)計數(shù),其計數(shù)范圍是四位十進制數(shù),最大計數(shù)值為104=10000,對應計數(shù)初值為0000。在賦初值時需要注意兩點:第三十一頁,共九十五頁,2022年,8月28日①當采用二進制計數(shù)時,如果初值N是8位二進制計數(shù)(計數(shù)值≤256),則在8253初始化編程的傳送指令“MOVAL,N”中,立即數(shù)“N”可以寫成任何進制數(shù)(包括:二進制計數(shù)、十六進制計數(shù)和十進制計數(shù))的形式;如果初值N是16位二進制計數(shù)(計數(shù)值≤65536),一種方法是先把計算得到的十進制計數(shù)初值N轉(zhuǎn)換成4位十六進制,然后分兩次寫入8253的指定端口,另一種方法是先把該十進制計數(shù)初值N直接傳給AX,然后分兩次寫入8253的指定端口,例如:MOVAX,N;N是16位二進制計數(shù)OUTPort,AL;先寫低8位(Port為端口號)MOVAL,AH;高8位送低8位OUTPort,AL;后寫高8位第三十二頁,共九十五頁,2022年,8月28日②當采用十進制(BCD碼)計數(shù)時,必須在8253初始化編程中把計算得到的十進制計數(shù)初值N加上后綴H,這樣才能在傳送指令執(zhí)行后能夠在AL(或AX)中得到十進制數(shù)N的BCD碼表示形式,例如N=100,則方法如下所示。MOVNAL,100HOUTPort,AL如果初值N=2567,則需要分兩次寫入,即:MOVAX,2567HOUTPort,AL;先寫低8位(Port為端口號)MOVAL,AH;高8位送低8位OUTPort,AL;后寫高8位也可以按如下方法兩次寫入,即:MOVAL,67HOUTPort,AL;先寫低8位(Port為端口號)MOVAL,25H;高8位送低8位OUTPort,AL;后寫高8位第三十三頁,共九十五頁,2022年,8月28日2.?8253的初始化編程(寫操作)8253沒有復位信號,加電開機后,其工作方式是不確定的。因此需要對8253進行初始化,初始化步驟如下所示。(1)根據(jù)題目(設計)要求寫出8253的控制字。(2)將控制字寫入相應計數(shù)器的控制寄存器中。(3)寫入定時或計數(shù)的初值。這里要注意的是如果計數(shù)值為16位,則要CPU執(zhí)行兩次輸出指令完成初值的設置,即先寫低字節(jié),再寫高字節(jié)。第三十四頁,共九十五頁,2022年,8月28日【例5-1】設8253的片選信號接200H~207H,使用計數(shù)器1,工作于方式3(方波發(fā)生器),二進制計數(shù),計數(shù)初值為3000H,請編寫初始化程序。解:此題有兩種方法,具體求解如下所示方法1:16位計數(shù),先寫低8位,后寫高8位。根據(jù)題目寫出控制字為01110110B(76H)。MOVDX,203H;8253控制寄存器MOVAL,76H;二進制計數(shù)、方式3、先寫低8位、后寫高8位、計數(shù)器1OUTDX,AL;控制字寫入控制字寄存器MOVDX,201H;計數(shù)器1MOVAL,00H ;計數(shù)初值低8位OUTDX,AL ;計數(shù)初值低8位寫入計數(shù)器1MOVAL,30H;計數(shù)初值高8位OUTDX,AL ;計數(shù)初值高8位寫入計數(shù)器1方法2:?16位計數(shù),只寫高8位,低8位自動為0。MOVDX,203H;8253控制寄存器MOVAL,66H;控制字01100110BOUTDX,AL ;控制字寫入控制字寄存器MOVDX,201H;計數(shù)器1MOVAL,30H;計數(shù)初值高8位OUTDX,AL;計數(shù)初值高8位寫入計數(shù)器1第三十五頁,共九十五頁,2022年,8月28日解法(1)和解法(2)效果相同。工作原理為:若GATE為高電平時,則當CPU執(zhí)行完上述初始化程序后,8253的計數(shù)器1即開始對輸入脈沖CKL進行減1計數(shù),在減1計數(shù)過程中,OUT保持高電平;計數(shù)計到計數(shù)初值的一半值時(12288/12288/2=6144),OUT變?yōu)榈碗娖?,計?shù)到0時,OUT又變?yōu)楦唠娖剑匦麻_始計數(shù)過程。方法小結(jié):第三十六頁,共九十五頁,2022年,8月28日【例5-2】設8253的端口地址為208H~20FH,使用計數(shù)器0,工作于方式4,二進制計數(shù);使用計數(shù)器2,工作于方式5,十進制計數(shù)。計數(shù)器0和計數(shù)器2的計數(shù)初值都等于十進制數(shù)值512(0200H),請編寫初始化程序解:MOV AL, 38H ;控制字00111000B,二進制計數(shù)、方式4、計數(shù)器0、先寫低8位、后寫高8位MOV DX, 20BH ;控制字寄存器端口地址OUT DX, AL ;控制字寫入控制字寄存器MOV DX, 208H ;計數(shù)器0端口地址MOV AL, 00H ;計數(shù)初值低8位OUT DX, AL ;計數(shù)初值低8位寫入計數(shù)器0MOV AL, 02H ;計數(shù)初值高8位OUTDX, AL ;計數(shù)初值高8位寫入計數(shù)器0第三十七頁,共九十五頁,2022年,8月28日MOVAL,0BBH ;控制字10111011B,BCD、方式5、計數(shù)器2、先寫低8位、后寫高8位MOVDX,20BH ;控制字寄存器端口地址OUTDX, AL ;控制字寫入控制字寄存器MOVDX, 20AH;計數(shù)器2端口地址MOVAL, 12H ;計數(shù)初值低8位OUTDX, AL ;計數(shù)初值低8位寫入計數(shù)器2MOVAL, 05H ;計數(shù)初值高8位OUTDX, AL ;計數(shù)初值高8位寫入計數(shù)器2注:工作原理見方式4、方式5的工作波形圖。請自己分析一下項目1、項目2、項目3、項目4和項目5的初始化程序。第三十八頁,共九十五頁,2022年,8月28日3.?8253當前計數(shù)值的讀取(讀操作)為了對計數(shù)器的計數(shù)值進行實時檢測,需將計數(shù)器中的計數(shù)值讀回CPU。編程順序如下。輸出鎖存器鎖存或停止計數(shù),以保證當前計數(shù)值讀出穩(wěn)定,當前的計數(shù)值有兩種方法讀取:一種方法是把當前計數(shù)值輸出的鎖存器鎖存,輸出鎖存器鎖存是通過寫入控制字,使D5、D4分別為0,使當前的計數(shù)值不受計數(shù)執(zhí)行單元的變化而變化,保證CPU從鎖存器讀出一個穩(wěn)定的計數(shù)值。此時計數(shù)執(zhí)行單元作減1操作,計數(shù)過程不停止。另一種方法是通過GATE門控信號發(fā)一低電平信號,使計數(shù)執(zhí)行單元不作減1操作,計數(shù)過程停止。(2)從輸出鎖存器讀數(shù)。讀輸出鎖存器的值,也有讀8位和讀16位的問題,若是讀16位的數(shù)據(jù),需分兩次讀出,先讀低字節(jié),再讀高字節(jié),即執(zhí)行兩次輸入指令。第三十九頁,共九十五頁,2022年,8月28日【例5-3】設8253的端口地址為208H~20FH,請編寫程序讀取計數(shù)器2的當前計數(shù)值。MOV AL,80H ;計數(shù)器2的鎖存命令MOVDX,20BH;控制字寄存器端口地址OUTDX,AL ;計數(shù)器2的鎖存命令寫入

控制字寄存器MOVDX,20AH;計數(shù)器2端口地址IN AL,DX ;讀取計數(shù)初值低8位MOVBL, AL ;計數(shù)初值低8位存入BLIN AL,DX ;讀取計數(shù)初值高8位MOVBH, AL ;計數(shù)初值高8位存入BH第四十頁,共九十五頁,2022年,8月28日6.38253的工作方式6.3.1項目3:用8253控制繼電器

1.項目要求與目的(1)項目要求:利用8253的定時器0設定為方式3,定時器1設定為方式2,定時器2設定為方式3,編寫程序?qū)崿F(xiàn)8253控制繼電器的吸合和斷開,從而達到對外部裝置的控制。(2)項目目的:●了解8253定時器的硬件連接方法及時序關系?!裾莆?253的初始化及編程方法?!裾莆?253各種方式編程及工作原理?!窳私庥萌蹼娍刂茝婋姷姆椒?。第四十一頁,共九十五頁,2022年,8月28日2.項目電路連接與說明(1)項目電路連接:8253的片選孔用導線接至譯碼處200H~207H插孔,OUT1接至CLK0插孔上,CLK1接至OUT2插孔上,CLK2接至1MHz插孔上,GATE0、GATE1和GATE2接至+5V電源插孔上,OUT0接至繼電器的驅(qū)動上。(2)項目說明:用實驗板上的1MHz做為標準信號,將8253可編程計數(shù)器/定時器的時間常數(shù)設在1000000次,就可以在定時器的管腳上輸出1秒鐘高或1秒鐘低的脈沖信號。由于8253每個計數(shù)器只有十六位,因此要用兩個計數(shù)器才能實現(xiàn)一百萬次的計數(shù),實現(xiàn)每一秒鐘輸出狀態(tài)發(fā)生一次反轉(zhuǎn)。由于定時常數(shù)過大,就要用多級串聯(lián)方式。本實驗采用三級計數(shù)器。定時常數(shù)分別為10、100和10000。第四十二頁,共九十五頁,2022年,8月28日本電路的控制端為高電平時,繼電器常開觸點吸合,連觸點的LED燈被點亮。當控制端為低電平時,繼電器常開觸點斷開,對應的LED燈將隨繼電器的開關而亮滅。需要注意的是,繼電器觸點吸合與斷開的間隔時間盡可能要長一些,這樣繼電器和控制設備才不容易損失。3.項目電路原理框圖

用8253控制繼電器電路原理框圖如圖6-9所示。電路由8086CPU芯片、8253芯片、驅(qū)動電路ULN2003、1只LED發(fā)光二極管和繼電器等組成。第四十三頁,共九十五頁,2022年,8月28日圖6-9用8253控制繼電器電路原理框圖第四十四頁,共九十五頁,2022年,8月28日項目程序設計(1)程序流程圖用8253控制繼電器程序流程圖如圖6-10所示。圖6-10用8253控制繼電器程序流程圖第四十五頁,共九十五頁,2022年,8月28日(2)程序清單用8253控制繼電器程序清單如下所示。CODESEGMENTASSUMECS:CODESTART:MOVAL,36H;計數(shù)器0初始化,16位,方式3,二進制MOVDX,203H;8253控制地址端口OUTDX,ALMOVAX,10000MOVDX,200HOUTDX,AL;計數(shù)器低字節(jié)MOVAL,AHOUTDX,AL;計數(shù)器高字節(jié)MOVAL,75H;計數(shù)器1初始化,16位,方式2,二進制第四十六頁,共九十五頁,2022年,8月28日MOVDX,203HOUTDX,ALMOVAX,100MOVDX,201HOUTDX,AL;計數(shù)器低字節(jié)

MOVAL,AHOUTDX,AL;計數(shù)器高字節(jié)

MOVAL,0B6H;計數(shù)器1初始化,16位,方式3,二進制

MOVDX,203HOUTDX,ALMOVAX,10MOVDX,202HOUTDX,AL;計數(shù)器低字節(jié)

MOVAL,AHOUTDX,AL;計數(shù)器高字節(jié)

JMP$;等待CODEENDSENDSTART第四十七頁,共九十五頁,2022年,8月28日6.3.2知識講解8253的工作方式有6種,不論哪種工作方式,都遵守如下幾條基本原則。(1)控制字寫入計數(shù)器時,所有的控制邏輯電路立即復位,輸出端OUT進入初始狀態(tài)。該初始狀態(tài)與工作方式有關,設置成方式0時,OUT的初始狀態(tài)為低電平,設置成其他工作方式,OUT的初始狀態(tài)為高電平。(2)初始值寫入初值計數(shù)器CR以后,要經(jīng)過一個時鐘脈沖的上升沿和下降沿,將初值送入計數(shù)執(zhí)行單元,計數(shù)執(zhí)行單元從下一個時鐘開始進行計數(shù)。(3)通常,在時鐘脈沖CLK的上升沿對門控信號GATE進行采樣,各計數(shù)器的門控信號的觸發(fā)方式與工作方式有關。在方式0、方式4中,門控信號為電平觸發(fā);方式1、方式5中,門控信號為上升沿觸發(fā);方式2、方式3中,即可用電平觸發(fā),也可用上升沿觸發(fā)。

第四十八頁,共九十五頁,2022年,8月28日(4)在時鐘脈沖的下降沿計數(shù)器進行計數(shù)。0是計數(shù)器所能容納的最大初值,因為用二進制計數(shù)時,16位計數(shù)器,0相當于216=65536,用BCD碼計數(shù)時,0相當于104=10000。8253中的三個計數(shù)器都可獨立工作,每個計數(shù)器都有六種工作方式。工作方式由控制字設定,六種工作方式輸出的不同波形都從OUT端獲得。門控信號GATE對計數(shù)過程有影響。下面分別介紹這六種工作方式。1.方式0——計數(shù)到零產(chǎn)生中斷請求在方式0下,門控信號決定計數(shù)的啟/停,裝入初值決定計數(shù)過程重新開始,計數(shù)過程時序圖如圖6-11所示,下面對工作原理進行分析。第四十九頁,共九十五頁,2022年,8月28日(1)計數(shù)過程

由圖6-11(a)可看出,首先CPU將控制字CW寫入控制寄存器后,在下一個時鐘CLK上升沿,并在寫控制信號的上升沿,OUT輸出端變?yōu)榈碗娖剑ㄈ粼瓉頌榈碗娖?,則繼續(xù)維持低電平,圖6-11(a)中①虛線所示),并且計數(shù)過程中一直維持低電平;然后,計數(shù)初值(設N=4)寫入初值寄存器CR后,并在上升沿之后的第一個CLK脈沖(圖6-11(a)中②虛線所示)的下降沿,將CR的值送入計數(shù)執(zhí)行單元CE中。要開始計數(shù),GATE門控信號必須是高電平,隨后每個時鐘CLK的下降沿都使計數(shù)執(zhí)行單元的內(nèi)容減1,減到0時,輸出端OUT變成高電平,并一直維持高電平,直到寫入新的計數(shù)值,開始下一輪的計數(shù)。計數(shù)初值一次有效,經(jīng)過一次計數(shù)過程后,必須重新寫入計數(shù)初值。當輸出端OUT變成高電平時,可利用OUT的上升沿作為中斷請求信號。方式0主要用于對外部事件計數(shù)。第五十頁,共九十五頁,2022年,8月28日圖6-11方式0計數(shù)過程時序圖第五十一頁,共九十五頁,2022年,8月28日(2)GATE門控信號的影響在計數(shù)過程中,可由GATE信號控制暫停計數(shù)。當GATE=0時,計數(shù)暫停,保持當前值,直到GATE信號恢復到高電平,經(jīng)過一個時鐘周期,計數(shù)執(zhí)行單元從當前值開始繼續(xù)執(zhí)行減1操作。GATE只影響計數(shù)執(zhí)行單元是否暫停減1操作,對輸出信號OUT無影響,OUT信號從計數(shù)開始變?yōu)榈碗娖?,一直保持到計?shù)結(jié)束,才變?yōu)楦唠娖?計數(shù)過程時序圖如圖6-11(b)所示。如果在門控信號GATE處于低電平時寫入新計數(shù)初值,則在下一個時鐘周期也將初值從初值寄存器CR寫入計數(shù)執(zhí)行單元CE,但不進行計數(shù)操作,當GATE變?yōu)楦唠娖綍r才開始計數(shù)。利用GATE信號可作為啟動定時的同步信號。(3)寫入新的初值對計數(shù)過程的影響第五十二頁,共九十五頁,2022年,8月28日在計數(shù)過程中也可以改變計數(shù)值,在寫入新的計數(shù)初值后,計數(shù)器將立即按新的計數(shù)值重新開始計數(shù),即改變計數(shù)值是立即有效的。當按新的計數(shù)值減1計數(shù)到0時,輸出OUT變成高電平。計數(shù)過程時序圖如圖6-11(c)所示。從計數(shù)開始,輸出OUT變?yōu)榈碗娖?,一直保持到計?shù)結(jié)束,并不因?qū)懥诵碌某踔?,影響輸出信號。第五十三頁,共九十五頁?022年,8月28日2.方式1——可重觸發(fā)的單穩(wěn)態(tài)觸發(fā)器方式1是在GATE門控信號的作用下才開始計數(shù),計數(shù)過程時序如圖6-12所示,下面對工作原理進行分析。(1)計數(shù)過程當CPU把方式1的控制字寫入控制寄存器后(的上升沿),OUT輸出變成高電平(圖6-12(a)中①虛線所示)(若原來為高電平,則繼續(xù)維持高電平);在CPU寫入計數(shù)初值后,此時計數(shù)執(zhí)行單元CE并不計數(shù),直到GATE門控信號上升沿到來,在下一個時鐘周期的下降沿才開始計數(shù),輸出OUT變?yōu)榈碗娖剑▓D6-12(a)中②虛線所示)。計數(shù)過程中OUT端一直維持低電平。當計數(shù)減到0時,輸出端OUT變?yōu)楦唠娖?,并一直維持高電平到下一次觸發(fā)之前。計數(shù)初值的設置也是一次有效,每輸入一次計數(shù)值,只產(chǎn)生一次計數(shù)觸發(fā)過程。計數(shù)過程時序圖如圖6-12(a)所示。第五十四頁,共九十五頁,2022年,8月28日圖6-12方式1計數(shù)過程時序圖第五十五頁,共九十五頁,2022年,8月28日(2)GATE門控信號的影響方式1中,門控信號的影響從兩個方面討論。一方面是計數(shù)結(jié)束后,若再來一個門控信號上升沿,則在下一個時鐘周期的下降沿又從初值開始計數(shù),而且不需要重新寫入計數(shù)初值,即門控脈沖可重新觸發(fā)計數(shù),同時OUT端輸出從高電平降為低電平,直到計數(shù)結(jié)束,再恢復到高電平??梢钥闯?,調(diào)整門控信號的觸發(fā)時刻,可調(diào)整OUT端輸出的高電平持續(xù)時間,即輸出單次脈沖的寬度由計數(shù)初值N決定,計數(shù)過程時序圖如圖6-12(b)所示。另一方面是在計數(shù)進行中,若來一個門控信號的上升沿,也要在下一個時鐘下降沿終止原來的計數(shù)過程,從初值起重新計數(shù)。在這個過程中,OUT輸出保持低電平不變,直到計數(shù)執(zhí)行單元內(nèi)容減為0時,OUT輸出才恢復為高電平。這樣,使OUT輸出低電平持續(xù)時間加長,即輸出單次脈沖的寬度加寬。第五十六頁,共九十五頁,2022年,8月28日(3)新的初值對計數(shù)過程的影響在計數(shù)過程中如果寫入新的初值,不會影響計數(shù)過程,只有在下一個門控信號到來后的第一個時鐘下降沿,才終止原來的計數(shù)過程,而按新值開始計數(shù)。OUT輸出的變化是高電平持續(xù)到開始計數(shù)前,低電平持續(xù)到計數(shù)過程結(jié)束,計數(shù)過程時序圖如圖6-12(c)所示。3.方式2——分頻器在方式2下,用門控信號達到同步計數(shù)的目的,方式2計數(shù)過程時序如圖6-13所示,下面對工作原理進行分析。第五十七頁,共九十五頁,2022年,8月28日(1)計數(shù)過程

圖6-13(a)所示,CPU寫入控制字后,時鐘CLK上升沿,OUT輸出變?yōu)楦唠娖剑▓D6-13(a)中①虛線所示),當計數(shù)初值被寫入初值寄存器后,下一個時鐘脈沖下降沿,計數(shù)初值被移入計數(shù)執(zhí)行單元,開始減1計數(shù),減到1時(不是減到0時),OUT輸出變?yōu)榈碗娖剑?jīng)過一個時鐘CLK周期,OUT輸出又變成高電平,并且計數(shù)器將自動按初值重新開始計數(shù)過程。

由圖6-13(a)可看出,采用方式2時,不用重新設置計數(shù)初值,計數(shù)器能連續(xù)工作,輸出端不斷輸出固定負脈沖。如果計數(shù)初值為N,則每輸入N個CLK脈沖,輸出一個負脈沖,負脈沖寬度等于1個CLK時鐘周期,兩負脈沖間的寬度等于N-1個時鐘周期,整個計數(shù)過程不用重新寫入計數(shù)值,重復周期為N倍的CLK周期,因此又稱此方式下的計數(shù)器為N分頻器或頻率發(fā)生器。第五十八頁,共九十五頁,2022年,8月28日圖6-13方式2計數(shù)過程時序圖第五十九頁,共九十五頁,2022年,8月28日(2)GATE門控信號的影響

由圖6-13(b)可看出,門控信號為低電平時終止計數(shù),而由低電平恢復為高電平后的第一個時鐘下降沿從初始值重新開始計數(shù)。由此可見GATE一直維持高電平時,計數(shù)器為一個N分頻器。GATE端每加一次從低電平到高電平的門控觸發(fā)信號,都將引起一次重新從計數(shù)初值寄存器向計數(shù)執(zhí)行單元寫入計數(shù)值的操作,輸出端OUT重新又得到一個不斷輸出負脈沖的脈沖信號,其寬度等于一個時鐘周期,兩負脈沖間的寬度等于N-1個時鐘周期。用門控信號實現(xiàn)對輸出端OUT信號的同步作用。第六十頁,共九十五頁,2022年,8月28日(3)新的初值對計數(shù)過程的影響

由圖6-13(c)可看出,如果在計數(shù)過程中改變初值,有兩種情況:一種是當GATE門控信號一直維持高電平時,新的初值不影響當前的計數(shù)過程,但在計數(shù)結(jié)束后,下一個計數(shù)周期按新的初值計數(shù);另一種是若寫入新的初值后,遇到門控信號的上升沿,則結(jié)束現(xiàn)行計數(shù)過程,從下一個時鐘下降沿開始按新的初始值進行計數(shù)。第二種情況是計數(shù)值未減到0,又重新按新的初值進行計數(shù),在此期間輸出端OUT一直維持高電平,這樣就可以隨時通過重新送計數(shù)值來改變輸出脈沖的頻率第六十一頁,共九十五頁,2022年,8月28日4.方式3——方波發(fā)生器方式3和方式2的工作過程類似,兩者的主要區(qū)別是輸出的脈沖寬度不同,方式3計數(shù)過程時序圖如圖6-14所示,下面對工作原理進行分析。圖6-14方式3計數(shù)過程時序圖第六十二頁,共九十五頁,2022年,8月28日(1)計數(shù)過程方式3計數(shù)過程分奇、偶兩種情況。①當初始值為偶數(shù)時,CPU寫入控制字后,在時鐘CLK的上升沿,OUT輸出變?yōu)楦唠娖?。當計?shù)初值寫入初值寄存器CR后,經(jīng)過一個時鐘周期,計數(shù)初值被移入計數(shù)執(zhí)行單元CE,下一個時鐘下降沿開始作減1計數(shù)。減到N/2時,OUT輸出變?yōu)榈碗娖?,計?shù)器執(zhí)行單元繼續(xù)執(zhí)行減1計數(shù),當減到0時,OUT輸出又變成高電平,計數(shù)器執(zhí)行單元重新從初值開始計數(shù)。只要門控信號GATE為1,此工作過程周而復始重復進行,在OUT輸出得一方波信號,故稱這種方式又稱為方波發(fā)生器,計數(shù)過程時序圖如圖6-14(a)所示。②當初始值為奇數(shù)時,在門控信號一直為高電平情況下,OUT輸出波形為連續(xù)的近似方波,高電平持續(xù)時間為(N+1)/2個脈沖,低電平持續(xù)時間為(N-1)/2個脈沖,計數(shù)過程時序圖如圖6-14(b)所示。。第六十三頁,共九十五頁,2022年,8月28日(2)GATE門控信號的影響當門控GATE=1時,允許計數(shù);當門控GATE=0時,禁止計數(shù)。在計數(shù)執(zhí)行過程中,當GATE變?yōu)榈碗娖綍r,若此時OUT輸出為低電平,則OUT從低電平變?yōu)楦唠娖剑鬙UT原來是高電平則保持不變,且計數(shù)器停止計數(shù)。當GATE恢復高電平,計數(shù)器從初值開始重新計數(shù),計數(shù)過程時序圖如圖6-14(c)所示。(3)新的初值對計數(shù)過程的影響新的初值寫入也分兩種情況。①當門控GATE=1時,在計數(shù)執(zhí)行過程中,新值寫入并不影響現(xiàn)行計數(shù)過程,只是在下一個計數(shù)過程中,按新值進行計數(shù);②在計數(shù)執(zhí)行過程中,加入一個GATE脈沖信號,停止現(xiàn)行計數(shù)過程,在門控信號上升沿后的第一個時鐘周期的下降沿,按新初值開始計數(shù),計數(shù)過程時序圖如圖6-14(d)所示。第六十四頁,共九十五頁,2022年,8月28日5.方式4——軟件觸發(fā)選通方式方式4為軟件觸發(fā)選通方式,其計數(shù)過程時序圖如圖6-15所示,下面對工作原理進行分析。(1)計數(shù)過程在方式4下,寫入控制字后,在時鐘上升沿,OUT輸出變成高電平,將計數(shù)初值寫入初值寄存器CR中。經(jīng)過一個CLK時鐘周期,計數(shù)初值被送入計數(shù)執(zhí)行單元CE,下一個時鐘下降沿開始減1計數(shù),減到0時,OUT輸出變?yōu)榈碗娖?,脈沖寬度為一個CLK時鐘周期,然后OUT自動恢復成高電平。下一次啟動計數(shù)時,必須重新寫入計數(shù)值。若設置計數(shù)初值為N,則在寫入計數(shù)初值后的N+1個CLK時鐘脈沖,才輸出一個負脈沖,負脈沖的寬度為1CLK周期。第六十五頁,共九十五頁,2022年,8月28日圖6-15方式4計數(shù)過程時序圖第六十六頁,共九十五頁,2022年,8月28日方式4不能自動重復計數(shù)(即這種方式計數(shù)是一次性的),每進行一次計數(shù)過程必須重裝初值一次,所以稱方式4為軟件觸發(fā)。OUT輸出低電平持續(xù)時間為一CLK時鐘周期,常用此負脈沖作為選通信號,所以又稱為軟件觸發(fā)選通方式,計數(shù)過程時序圖如圖6-15(a)所示。(2)GATE門控信號的影響當GATE門控信號為高電平時,允許計數(shù);當GATE門控信號為低電平時,禁止計數(shù)。需要注意兩點:①當GATE門控信號為低電平時停止計數(shù),GATE門控信號為高電平時并不是恢復計數(shù),而是重新從初值開始計數(shù)。②GATE的電平不會影響OUT輸出的電平,只有計數(shù)器減為0時,才使OUT輸出產(chǎn)生電平的變化,計數(shù)過程時序圖如圖6-15(b)所示。第六十七頁,共九十五頁,2022年,8月28日(3)新的初值對計數(shù)過程的影響在計數(shù)過程中,如果寫入新的計數(shù)初值,則立刻終止現(xiàn)行的計數(shù)過程,并在下一個時鐘下降沿按新的初值開始計數(shù),計數(shù)過程時序圖如圖6-15(c)所示。方式0和方式4都可用于定時和計數(shù),定時的時間=N×T。只是方式0在OUT端輸出正脈沖信號為定時時間到,方式4在OUT端輸出負脈沖信號為定時時間到。第六十八頁,共九十五頁,2022年,8月28日6.方式5——硬件觸發(fā)選通方式方式5為硬件觸發(fā)選通方式,完全由GATE端引入的觸發(fā)信號控制定時和計數(shù),其計數(shù)過程時序圖如圖6-16所示,下面對工作原理進行分析。(1)計數(shù)過程在方式5下,CPU寫入控制字后,在時鐘上升沿,OUT輸出變成高電平,寫入計數(shù)初值后,計數(shù)器并不立即開始計數(shù),當門控信號GATE的上升沿到來后,在下一個時鐘下降沿時,將計數(shù)初值移入計數(shù)執(zhí)行單元,才開始減1計數(shù),計數(shù)器減到0,OUT輸出變?yōu)榈碗娖?,持續(xù)一個時鐘周期又變?yōu)楦唠娖剑⒁恢北3指唠娖?,直至下一個門控信號GATE的上升沿的到第六十九頁,共九十五頁,2022年,8月28日圖6-16方式5計數(shù)過程時序圖第七十頁,共九十五頁,2022年,8月28日因此,采用方式5循環(huán)計數(shù)時,計數(shù)初值可自動重裝,但不計數(shù),計數(shù)過程的進行是靠門控信號觸發(fā)的,稱方式5又稱為硬觸發(fā)。若設置計數(shù)初值為N,則在GATE的上升沿到來后,經(jīng)過N+1個CLK時鐘脈沖,才輸出一個負脈沖,負脈沖的寬度為1個CLK周期,計數(shù)過程時序圖如圖6-16(a)所示。(2)GATE門控信號作用如果在計數(shù)的過程中,又來一個GATE門控信號的上升沿,則立即終止現(xiàn)行的計數(shù)過程,在下一個時鐘周期的下降沿,又從初值開始計數(shù)。如果在計數(shù)過程結(jié)束后,來一個GATE門控信號的上升沿,計數(shù)器會在下一個時鐘周期下降沿,從初值開始減1計數(shù),不用重新寫入初值。只要門控信號的上升沿到來,就會馬上觸發(fā)下一個計數(shù)過程。(3)寫入新的初值對計數(shù)過程的影響無論在計數(shù)的過程中,還是在計數(shù)結(jié)束之后,寫入新的初值都不會影響計數(shù)過程,必須在門控信號的上升沿到來后,才會發(fā)生下一個新的計數(shù)過程,計數(shù)的初值是按寫入新的初值進行。第七十一頁,共九十五頁,2022年,8月28日

7.六種工作方式小結(jié)通過對上面的6種工作方式的分析,可以看出門控信號和寫入新的初值會影響計數(shù)過程的進行,不同的工作方式,會得到不同的輸出波形。在8253的應用中,必須正確使用門控信號和寫入新的初值這種觸發(fā)方式,才能保證各計數(shù)器的正常操作;必須了解輸出波形的形態(tài),才能正確應用到各種控制場合。為此,把6種工作方式作如下小結(jié)。

(1)?OUT的輸出波形在六種工作方式中,只有方式0在寫入控制字后,OUT輸出為低電平,其他五種方式OUT輸出都為高電平。方式2、方式4和方式5都是輸出寬度為一個CLK周期的負脈沖,輸出波形都相同,但方式2是連續(xù)工作的,方式4是由軟件觸發(fā)的,方式5是由硬件門控脈沖觸發(fā)的。計數(shù)初值N與輸出波形的關系見表6-2。第七十二頁,共九十五頁,2022年,8月28日表6-2計數(shù)初值N與輸出波形的關系第七十三頁,共九十五頁,2022年,8月28日(2)GATE門控信號的作用一般情況下,GATE信號為低電平時禁止計數(shù),為高電平時允許計數(shù),方式1和方式5則需要有由低變高的上升沿觸發(fā)脈沖來啟動計數(shù)。GATE信號對各種工作方式的影響如表6-3所示。表6-3GATE信號作用第七十四頁,共九十五頁,2022年,8月28日(3)計數(shù)初值的設置任何一種工作方式,只有在寫入計數(shù)初值后才能開始計數(shù)。門控信號GATE保持為高電平,方式0、方式2、方式3和方式4在寫入計數(shù)初值后,計數(shù)過程就開始了;而方式1和方式5需要有外部GATE觸發(fā),才能開始計數(shù)。(4)計數(shù)過程中改變計數(shù)值的影響8253在計數(shù)過程中寫入新的計數(shù)初值,對計數(shù)過程的影響見表6-4所示。表6-4對計數(shù)過程的影響表第七十五頁,共九十五頁,2022年,8月28日6.4項目擴展與工程應用6.4.1項目4:電子琴1.項目要求與目的(1)項目要求:利用8086外接8253可編程定時器/計數(shù)器,用8255的PB口接7只按鍵,作為電子琴1、2、3、4、5、6、7數(shù)字鍵按鍵,編程完成按下數(shù)字鍵按鍵即發(fā)出相應的音調(diào)。(2)項目目的:●了解計算機發(fā)聲原理。●學習8086與8253的連接方法及編程方法。●學習8086對8255的控制方法及編程方法。第七十六頁,共九十五頁,2022年,8月28日2.項目電路連接與說明(1)項目電路連接:8253的片選孔用導線接至譯碼處208H~20FH插孔,CLK1接至1MHz頻率插孔,GATE1接至+5V電源插孔上,OUT1接喇叭的脈沖輸入。(2)項目說明:本項目中計數(shù)器1按方式3工作,即十六位二進制計數(shù)器。當計數(shù)設置好后,計數(shù)器就開始計數(shù)。用8253做定時器輸出音頻信號,控制喇叭發(fā)出聲音。利用定時器,可以發(fā)出不同頻率的脈沖,不同頻率的脈沖經(jīng)喇叭驅(qū)動電路放大濾波后,就會發(fā)出不同的音調(diào).各音階標稱頻率值如下所示。音階12345678頻率(Hz)440.00493.88554.37587.33659.26739.99830.61880.30第七十七頁,共九十五頁,2022年,8月28日3.項目電路原理框圖用8253做定時器輸出音頻信號,控制喇叭發(fā)出聲音。利用定時器,可以發(fā)出不同頻率的脈沖,不同頻率的脈沖經(jīng)喇叭驅(qū)動電路放大濾波后,就會發(fā)出不同的音調(diào)。電子琴電路原理框圖如圖6-17所示。電路由8086CPU芯片、8253芯片、8255芯片、按鈕開關和喇叭驅(qū)動電路等組成。第七十八頁,共九十五頁,2022年,8月28日 圖6-17電子琴電路原理框圖第七十九頁,共九十五頁,2022年,8月28日4.項目程序設計(1)程序流程圖編程完成按下數(shù)字鍵按鍵即發(fā)出相應的音調(diào)。電子琴程序流程圖如圖6-18所示。圖6-18電子琴程序流程圖第八十頁,共九十五頁,2022年,8月28日(2)程序清單電子琴程序清單如下所示。CODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAL,82H;8255的PB口輸入MOVDX,203H;8255控制口地址OUTDX,ALK1:MOVDX,201H;PB端口地址INAL,DX;讀開關的狀態(tài)TESTAL,01H;判是否是K1閉合JNZK2;不是轉(zhuǎn)K2MOVAX,2273;是K1閉合送“1”音頻數(shù)據(jù)1/440.00HzJMPDDDK2:INAL,DX;讀開關的狀態(tài)

第八十一頁,共九十五頁,2022年,8月28日TESTAL,02H;判是否是K2閉合

JNZK3;不是轉(zhuǎn)K3MOVAX,2024;是K2閉合送“2”音頻數(shù)據(jù)1/493.88HzJMPDDDK3:INAL,DX;讀開關的狀態(tài)

TESTAL,04H;判是否是K3閉合

JNZK4;不是轉(zhuǎn)K4MOVAX,1805;是K3閉合送“3”音頻數(shù)據(jù)1/554.37HzJMPDDDK4:INAL,DX;讀開關的狀態(tài)

TESTAL,08H;判是否是K4閉合

JNZK5;不是轉(zhuǎn)K5MOVAX,1704;是K4閉合送“4”音頻數(shù)據(jù)1/587.33HzJMPDDDK5:INAL,DX;讀開關的狀態(tài)

TESTAL,10H;判是否是K5閉合

JNZK6;不是轉(zhuǎn)K6第八十二頁,共九十五頁,2022年,8月28日MOVAX,1517;是K5閉合送“5”音頻數(shù)據(jù)1/659.26HzJMPDDDK6:INAL,DX;讀開關的狀態(tài)

TESTAL,20H;判是否是K6閉合

JNZK7;不是轉(zhuǎn)K7MOVAX,1353;是K6閉合送“6”音頻數(shù)據(jù)1/739.99HzJMPDDDK7:INAL,DX;讀開關的狀態(tài)

TESTAL,40H;判是否是K7閉合

JNZK8;不是轉(zhuǎn)K8MOVAX,1205;是K7閉合送“7”音頻數(shù)據(jù)1/830.61HzJMPDDDK8:INAL,DX;讀開關的狀態(tài)

TESTAL,80H;判是否是K8閉合

JNZK1;不是轉(zhuǎn)K1MOVAX,1136;是K8閉合送“8”音頻數(shù)據(jù)第八十三頁,共九十五頁,2022年,8月28日1/880.30HzDDD:CALLOUTTONECALLDELAY;延時

MOVAX,2;關閉發(fā)音

CALLOUTTONEJMPK1OUTTONEPROCNEAR;按音頻數(shù)據(jù)設置定

時器時間常數(shù)

PUSHAX;鍵碼壓棧

MOVAL,76H;計數(shù)器1,16位二

進制,方式3(方波)。

MOVDX,20BH;定時器控制口地址

OUTDX,ALPOPAX;鍵碼出棧

MOVDX,209H;定時器1端口地址

OUTDX,AL;寫時間常數(shù)低八位

MOVAL,AH;寫時間常數(shù)高八位第八十四頁,共九十五頁,2022年,8月28日OUTDX,ALRETOUTTONEENDPDELAYPROCNEAR;延時PUSHCXMOVCX,60000LOOP$;POPCXRETDELAYENDPCODEENDSENDSTART第八十五頁,共九十五頁,2022年,8月28日6.4.2項目5:用8253實現(xiàn)生產(chǎn)流水線上的工件計數(shù)

1.項目要求與目的(1)項目要求:用8253實現(xiàn)生產(chǎn)流水線上的工件計數(shù),每通過100個工件,揚聲器便發(fā)出頻率為1000Hz的音響信號,持續(xù)時間為5秒。(2)項目目的:●學習8253芯片引腳及編程方法?!駥W習8086與8253的連接方法?!窳私?253在工業(yè)上的應用。2.項目電路連接與說明(1)項目電路連接:8253的片選孔用導線接至譯碼處200H~207H插孔,8255的片選孔用導線接至譯碼處208H~20FH插孔,8259的片選孔用導線接至譯碼處210H~217H插孔;CLK0接至工件脈沖(正脈)提供插孔(也可以用直流電機的轉(zhuǎn)速產(chǎn)生脈沖),GATE0接至+5V電源插孔上,OUT0接至中斷芯片8259的IR0上;CLK1接至2MHz頻率插孔,GATE1接至8255的PA0上,OUT1接驅(qū)動電路到揚聲器,第八十六頁,共九十五頁,2022年,8月28日2)項目說明:

當工件從光源與光敏電阻之間通過時,光源被工件遮擋,光敏電阻阻值增大,在晶體管的基極產(chǎn)生一個正脈沖,隨之在晶體管的發(fā)射極將輸出一個正脈沖給8253計數(shù)通道0的計數(shù)輸入端CLK0;8253計數(shù)通道0工作于方式0,其門控制輸入端GATE0固定接+5V。當100個工件通過后,計數(shù)通道0減1計數(shù)至0,在其輸出端OUT0--產(chǎn)生一個正跳變信號,用此信號作為中斷請求信號;在中斷服務程序中,由8255A的PA0-啟動8253計數(shù)通道1工作,由OUT1端輸出1000Hz的方波信號給揚聲器驅(qū)動電路,持續(xù)5秒鐘后停止輸出。計數(shù)通道1工作于方式3(方波發(fā)生器),其門控信號GATE1由8255A的PA0控制,輸出的方波信號經(jīng)過驅(qū)動電路送給揚聲器。計數(shù)通道1的時鐘輸入端C

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論