電子密碼鎖的設計與實現一、實驗目的 1.進一步掌握鍵盤掃描和LED顯示的程序設計。 2.了解按鍵消抖的方法。 3.綜合運用微機原理的軟硬件知識。 二、實驗內容與要求 1.基本要求 (1)具有密碼輸入功能,密碼最多為6位;(2)設置退格鍵,以便刪除輸入錯誤的密碼;(3)在輸入的密碼時數碼管上只顯示8,并根據輸入位數依次橫移;(4)設置確認鍵,當確認鍵按下后,判斷輸入密碼是否正確;(5)當輸入密碼正確時,點亮發光二極管;當輸入密碼不正確時,發光二極管不亮并且蜂鳴器報警,重新輸入,當三次密碼輸入不正確時,系統應鎖定鍵盤10s。2.提高要求 將用戶分為管理者和使用者,管理者擁有超級密碼,可以修改其他人的密碼。使用者不能修改密碼。 三、實驗報告要求 1.設計目的和內容 2.總體設計 3.硬件設計:原理圖(接線圖)及簡要說明 4.軟件設計框圖及程序清單5.設計結果和體會(包括遇到的問題及解決的方法) 四、總體設計 電子密碼鎖的原理是:從鍵盤輸入一組密碼,CPU把該密碼和設置密碼比較,對則將鎖打開(不同鎖的控制方式不一樣,比如加電控制電磁鐵抽回,從而打開),錯則要求重新輸入,并記錄錯誤次數,如果三次錯誤,則被強制鎖定并報警,除非超級密碼或者其他的手段打開,比如延時一段時間。 初步設計思路如下: 1.輸入密碼用矩形鍵盤,包括數字鍵和功能鍵,功能鍵包括退格鍵和確認鍵。 2.LED數碼管顯示輸入密碼,但是只是輸出顯示符號8 。采用動態掃描輸出。 3.用發光二極管模擬鎖的情況,鎖關時發光二極管滅,打開時發光二極管亮。 4.輸入密碼錯誤時報警,3次輸入錯誤時鍵盤鎖定10s,鍵盤無法接收數據。 軟件的設計主要包括矩形鍵盤鍵值的讀取、LED動態掃描輸出程序、密碼判斷程序和報警程序。 五、硬件設計 根據設計思路,硬件電路可通過實驗平臺上的一些功能模塊電路組成,由于實驗平臺上的各個功能模塊已經設計好,用戶在使用時只要設計模塊間電路的連接,因此,硬件電路的設計及實現相對簡單。完整系統的硬件連接如圖1所示。硬件電路由LED數碼管顯示模塊、按鍵模塊、發光二極管電路和蜂鳴器模塊組成。各個模塊的詳細說明:1.LED數碼管模塊實驗平臺上提供一組六個LED數碼管。插孔CS1用于數碼管段選的輸出選通,插孔CS2用于數碼管位選信號的輸出選通。本設計用6個數碼管來動態顯示時分秒,動態顯示的定時時間由8253定時/計數器來實現。8253主要是實現每位顯示時間1ms,由8253的計數器0來實現。Clk0接實驗平臺分頻電路輸出Q6,f=46875hz。GATE0接8255的PA0,由8255的PA0輸出來控制計數器的起停。OUT0接8259的IRQ2,定時完成請求中斷,進入中斷服務程序。軟件在中斷服務程序中LED數碼管顯示。
標簽: 電子密碼鎖
上傳時間: 2013-10-16
上傳用戶:15070202241
PC機之間串口通信的實現一、實驗目的 1.熟悉微機接口實驗裝置的結構和使用方法。 2.掌握通信接口芯片8251和8250的功能和使用方法。 3.學會串行通信程序的編制方法。 二、實驗內容與要求 1.基本要求主機接收開關量輸入的數據(二進制或十六進制),從鍵盤上按“傳輸”鍵(可自行定義),就將該數據通過8251A傳輸出去。終端接收后在顯示器上顯示數據。具體操作說明如下:(1)出現提示信息“start with R in the board!”,通過調整乒乓開關的狀態,設置8位數據;(2)在小鍵盤上按“R”鍵,系統將此時乒乓開關的狀態讀入計算機I中,并顯示出來,同時顯示經串行通訊后,計算機II接收到的數據;(3)完成后,系統提示“do you want to send another data? Y/N”,根據用戶需要,在鍵盤按下“Y”鍵,則重復步驟(1),進行另一數據的通訊;在鍵盤按除“Y”鍵外的任意鍵,將退出本程序。2.提高要求 能夠進行出錯處理,例如采用奇偶校驗,出錯重傳或者采用接收方回傳和發送方確認來保證發送和接收正確。 三、設計報告要求 1.設計目的和內容 2.總體設計 3.硬件設計:原理圖(接線圖)及簡要說明 4.軟件設計框圖及程序清單5.設計結果和體會(包括遇到的問題及解決的方法) 四、8251A通用串行輸入/輸出接口芯片由于CPU與接口之間按并行方式傳輸,接口與外設之間按串行方式傳輸,因此,在串行接口中,必須要有“接收移位寄存器”(串→并)和“發送移位寄存器”(并→串)。能夠完成上述“串←→并”轉換功能的電路,通常稱為“通用異步收發器”(UART:Universal Asynchronous Receiver and Transmitter),典型的芯片有:Intel 8250/8251。8251A異步工作方式:如果8251A編程為異步方式,在需要發送字符時,必須首先設置TXEN和CTS#為有效狀態,TXEN(Transmitter Enable)是允許發送信號,是命令寄存器中的一位;CTS#(Clear To Send)是由外設發來的對CPU請求發送信號的響應信號。然后就開始發送過程。在發送時,每當CPU送往發送緩沖器一個字符,發送器自動為這個字符加上1個起始位,并且按照編程要求加上奇/偶校驗位以及1個、1.5個或者2個停止位。串行數據以起始位開始,接著是最低有效數據位,最高有效位的后面是奇/偶校驗位,然后是停止位。按位發送的數據是以發送時鐘TXC的下降沿同步的,也就是說這些數據總是在發送時鐘TXC的下降沿從8251A發出。數據傳輸的波特率取決于編程時指定的波特率因子,為發送器時鐘頻率的1、1/16或1/64。當波特率指定為16時,數據傳輸的波特率就是發送器時鐘頻率的1/16。CPU通過數據總線將數據送到8251A的數據輸出緩沖寄存器以后,再傳輸到發送緩沖器,經移位寄存器移位,將并行數據變為串行數據,從TxD端送往外部設備。在8251A接收字符時,命令寄存器的接收允許位RxE(Receiver Enable)必須為1。8251A通過檢測RxD引腳上的低電平來準備接收字符,在沒有字符傳送時RxD端為高電平。8251A不斷地檢測RxD引腳,從RxD端上檢測到低電平以后,便認為是串行數據的起始位,并且啟動接收控制電路中的一個計數器來進行計數,計數器的頻率等于接收器時鐘頻率。計數器是作為接收器采樣定時,當計數到相當于半個數位的傳輸時間時再次對RxD端進行采樣,如果仍為低電平,則確認該數位是一個有效的起始位。若傳輸一個字符需要16個時鐘,那么就是要在計數8個時鐘后采樣到低電平。之后,8251A每隔一個數位的傳輸時間對RxD端采樣一次,依次確定串行數據位的值。串行數據位順序進入接收移位寄存器,通過校驗并除去停止位,變成并行數據以后通過內部數據總線送入接收緩沖器,此時發出有效狀態的RxRDY信號通知CPU,通知CPU8251A已經收到一個有效的數據。一個字符對應的數據可以是5~8位。如果一個字符對應的數據不到8位,8251A會在移位轉換成并行數據的時候,自動把他們的高位補成0。 五、系統總體設計方案根據系統設計的要求,對系統設計的總體方案進行論證分析如下:1.獲取8位開關量可使用實驗臺上的8255A可編程并行接口芯片,因為只要獲取8位數據量,只需使用基本輸入和8位數據線,所以將8255A工作在方式0,PA0-PA7接實驗臺上的8位開關量。2.當使用串口進行數據傳送時,雖然同步通信速度遠遠高于異步通信,可達500kbit/s,但由于其需要有一個時鐘來實現發送端和接收端之間的同步,硬件電路復雜,通常計算機之間的通信只采用異步通信。3.由于8251A本身沒有時鐘,需要外部提供,所以本設計中使用實驗臺上的8253芯片的計數器2來實現。4:顯示和鍵盤輸入均使用DOS功能調用來實現。設計思路框圖,如下圖所示: 六、硬件設計硬件電路主要分為8位開關量數據獲取電路,串行通信數據發送電路,串行通信數據接收電路三個部分。1.8位開關量數據獲取電路該電路主要是利用8255并行接口讀取8位乒乓開關的數據。此次設計在獲取8位開關數據量時采用8255令其工作在方式0,A口輸入8位數據,CS#接實驗臺上CS1口,對應端口為280H-283H,PA0-PA7接8個開關。2.串行通信電路串行通信電路本設計中8253主要為8251充當頻率發生器,接線如下圖所示。
上傳時間: 2013-12-19
上傳用戶:小火車啦啦啦
新穎實用的單片機雙積分A/D轉換電路和軟件:摘 要: 通過對雙積分A/ D 轉換過程及其原理的分析,結合8031 單片機定時計數器的特點,設計出一種新的A/ D 轉換電路. 詳細介紹了這種轉換電路的硬件原理及工作過程,給出了實用的硬件電路與軟件設計框圖. 通過比較分析,可以看出這種A/ D 轉換電路性能價格比較高,軟件編程簡單,并且轉換速度和精度優于一般的A/ D 轉換電路. 這種設計思路為數模轉換器(A/ D) 的升級提高指出一個明確的方向.關鍵詞:單片機; 定時/ 計數器; A/ D 轉換; 雙積分 雙積分A/ D 及定時計數器原理:我們先分析雙積分A/ D 轉換的工作原理. 如圖1 所示,積分器先以固定時間T 對待測的輸入模擬電壓Vi 進行正向積分,積分電容C 積累的電荷為
上傳時間: 2014-01-18
上傳用戶:hewenzhi
單片機系統常用軟件抗干擾措施:可靠性設計是一項系統工程,單片機系統的可靠性必須從軟件、硬件以及結構設計等方面全面考慮。硬件系統的可靠性設計是單片機系統可靠性的根本,而軟件系統的可靠性設計起到抑制外來干擾的作用。軟件系統的可靠性設計的主要方法有:開機自檢、軟件陷阱(進行程序“跑飛”檢測)、設置程序運行狀態標記、輸出端口刷新、輸入多次采樣、軟件“看門狗”等。通過軟件系統的可靠性設計,達到最大限度地降低干擾對系統工作的影響,確保單片機及時發現因干擾導致程序出現的錯誤,并使系統恢復到正常工作狀態或及時報警的目的。一、開機自檢開機后首先對單片機系統的硬件及軟件狀態進行檢測,一旦發現不正常,就進行相應的處理。開機自檢程序通常包括對RAM、ROM、I/O口狀態等的檢測。1 檢測RAM檢查RAM讀寫是否正常,實際操作是向RAM單元寫“00H”,讀出也應為“00H”,再向其寫“FFH”,讀出也應為“FFH”。如果RAM單元讀寫出錯,應給出RAM出錯提示(聲光或其它形式),等待處理。2 檢查ROM單元的內容對ROM單元的檢測主要是檢查ROM單元的內容的校驗和。所謂ROM的校驗和是將ROM的內容逐一相加后得到一個數值,該值便稱校驗和。ROM單元存儲的是程序、常數和表格。一旦程序編寫完成,ROM中的內容就確定了,其校驗和也就是唯一的。若ROM校驗和出錯,應給出ROM出錯提示(聲光或其它形式),等待處理。3 檢查I/O口狀態首先確定系統的I/O口在待機狀態應處的狀態,然后檢測單片機的I/O口在待機狀態下的狀態是否正常(如是否有短路或開路現象等)。若不正常,應給出出錯提示(聲光或其它形式),等待處理。4 其它接口電路檢測除了對上述單片機內部資源進行檢測外,對系統中的其它接口電路,比如擴展的E2PROM、A/D轉換電路等,又如數字測溫儀中的555單穩測溫電路,均應通過軟件進行檢測,確定是否有故障。只有各項檢查均正常,程序方能繼續執行,否則應提示出錯。
上傳時間: 2013-11-02
上傳用戶:名爵少年
交通燈控制器的設計與實現一、實驗目的1. 了解交通燈管理的基本工作原理。2. 熟悉8253計數器/定時器、8259A中斷控制器和8255A并行接口的工作方式及應用編程。3. 掌握多位LED顯示的方法。 二、 實驗內容與要求設計一個用于十字路口的交通燈控制器。1.基本要求: 1) 東西和南北方向各有一組紅,黃,綠燈用于指揮交通,紅,黃,綠的持續時間分別為25s,5s,20s。2) 當有緊急情況(如消防車)時,兩個方向均為紅燈亮,計時停止,當特殊情況結束后,控制器恢復原來狀態,正常工作。3) 一組數碼管,以倒計時方式顯示兩個方向允許通行或禁止通行的時間。2.提高部分:1) 實時修改交通燈的持續時間。2) 根據不同時段對主要交通方向的信號進行調整。3) 可以使用LCD顯示提示信息。 三、實驗報告要求 1.設計目的和內容 2.總體設計 3.硬件設計:原理圖(接線圖)及簡要說明 4.軟件設計框圖及程序清單 5.設計結果和體會(包括遇到的問題及解決的方法) 四、總體設計交通燈的工作過程如下:設十字路口的1、3為南,北方向,2、4為東西方向,初始態為4個路口的紅燈全亮。之后,1、3路口的綠燈亮,2、4路口的紅燈亮,1、3路口方向通車,2個路口的LED數碼管開始倒計時25秒。延遲20秒后,1、3路口的綠燈熄滅,而1,3路口的黃燈開始閃爍(1HZ)。閃爍5次后,1、3路口的紅燈亮,同時2、4路口的綠燈亮,2、4路口方向開始通車,2個路口的LED數碼管重新開始倒計時25秒。延遲20秒時間后,2、4路口的綠燈熄滅,而黃燈開始閃爍。閃爍5次后,再切換到1、3路口方向。之后,重復上述過程。當有緊急情況時,2個方向都紅燈亮,倒計時停止,車輛禁止通行,當緊急情況結束后,控制器恢復以前的狀態繼續工作。 在設計中采用6個發光二極管來模擬2個路口的黃紅綠燈,每個路口用2個數碼管來顯示通行或禁止剩余的時間。緊急情況用一個單脈沖發生單元申請中斷來模擬,緊急情況結束后,再發一個中斷來恢復以前的狀態。 根據前面的介紹,本設計硬件由定時模塊、發光二極管模塊、數碼管顯示模塊和緊急中斷模塊組成。定時模塊采用硬件定時和軟件定時相結合的方法,用8253定時/計數器定時100ms,再用軟件計時實現所需的定時。發光二極管模塊由8255控制發光二極管來實現。數碼管顯示模塊由實驗平臺上的LED顯示模塊實現。緊急中斷模塊是由單脈沖發生單元和8279中斷控制器組成。 程序主要是由定時子程序、發光二極管顯示子程序、數碼管顯示子程序和中斷服務程序組成。包括對8253、8255以及8259等可編程器件的編程。 五、硬件設計 本課題的設計可通過實驗平臺上的一些功能模塊電路組成,由于各模塊電路內部已經連接,用戶在使用時只要設計模塊間電路的連接,因此,硬件電路的設計及實現相對簡單。完整系統的硬件連接如圖1所示。硬件電路由定時模塊、發光二極管模塊、數碼管顯示模塊和緊急中斷模塊組成。 定時模塊是由8253的計數器0來實現定時100ms。Clk0接實驗平臺分頻電路輸出Q6,f=46875hz。GATE0接8255的PA0,由8255輸出來控制計數器的起停。OUT0接8259的IRQ2,定時完成申請中斷,進入中斷服務程序。 發光二極管顯示模塊由8255輸出來控制發光二極管的亮滅。8255輸出為低電平時,對應的發光二極管就點亮,否則就熄滅。8255的接口電路如圖2所示。交通燈的對應關系如下:L7 L6 L5 L2 L1 L0PC7 PC6 PC5 PC2 PC1 PC013紅燈 13黃燈 13綠燈 24紅燈 24黃燈 24綠燈 實驗平臺上提供一組六個LED數碼管。插孔CS1用于數碼管段選的輸出選通,插孔CS2用于數碼管位選信號的輸出選通。本設計用4個數碼管來倒計時。 緊急中斷模塊是由單脈沖發生單元和8259中斷控制器,單脈沖發生單元主要用來請求中斷,然后做出緊急情況處理。
標簽: 交通燈控制器
上傳時間: 2013-10-07
上傳用戶:小小小熊
7.1 并行接口概述并行接口和串行接口的結構示意圖并行接口傳輸速率高,一般不要求固定格式,但不適合長距離數據傳輸7.2 可編程并行接口芯片82C55 7.2.1 8255的基本功能 8255具有2個獨立的8位I/O口(A口和B口)和2個獨立的4位I/O(C口上半部和C口下半部),提供TTL兼容的并行接口。作為輸入時提供三態緩沖器功能,作為輸出時提供數據鎖存功能。其中,A口具有雙向傳輸功能。8255有3種工作方式,方式0、方式1和方式2,能使用無條件、查詢和中斷等多種數據傳送方式完成CPU與I/O設備之間的數據交換。B口和C口的引腳具有達林頓復合晶體管驅動能力,在1.5V時輸出1mA電流,適于作輸出端口。C口除用做數據口外,當8255工作在方式1和方式2時,C口的部分引腳作為固定的聯絡信號線。
標簽: 并行接口
上傳時間: 2013-10-25
上傳用戶:oooool
3.1 總線與接口概述 3.1.1 總線和接口及其標準的概念 總線:是在模塊和模塊之間或設備與設備之間的一組進行互連和傳輸信息的信號線,信息包括指令、數據和地址。 總線標準 指芯片之間、擴展卡之間以及系統之間,通過總線進行連接和傳輸信息時,應該遵守的一些協議與規范。 接口標準 外設接口的規范,涉及接口信號線定義、信號傳輸速率、傳輸方向和拓撲結構,以及電氣特性和機械特性等多個方面。 3.1.2 總線的分類 1) 按總線功能或信號類型劃分為: 數據總線:雙向三態邏輯,線寬表示了總線數據傳輸的能力。地址總線:單向三態邏輯,線寬決定了系統的尋址能力。控制總線:就某根來說是單向或雙向。控制總線最能體現總線特點,決定總線功能的強弱和適應性。2) 按總線的層次結構分為: CPU總線:微機系統中速度最快的總線,主要在CPU內部,連接CPU內部部件,在CPU周圍的小范圍內也分布該總線,提供系統原始的控制和命令。局部總線:在系統總線和CPU總線之間的一級總線,提供CPU和主板器件之間以及CPU到高速外設之間的快速信息通道。系統總線:也稱為I/O總線,是傳統的通過總線擴展卡連接外部設備的總線。由于速度慢,其功能已經被局部總線替代。通信總線:也稱為外部總線,是微機與微機,微機與外設之間進行通信的總線。3.1.3 總線的主要性能參數1.總線頻率:MHz表示的工作頻率,是總線速率的一個重要參數。2.總線寬度:指數據總線的位數。3.總線的數據傳輸率 總線的數據傳輸率=(總線寬度/8位)×總線頻率 例:PCI總線的總線頻率為33.3MHz,總線寬度為64位的情況下,總線數據傳輸率為266MB/s 。
上傳時間: 2013-11-17
上傳用戶:shen954166632
18-2. D/A轉換器基本知識18-3. 光導智能小車硬件實現18-4. ADC0832基本應用方法18-5. 光導智能小車軟件實現A/D轉換器的主要技術指標分辨率 使輸出數字量變化一個相鄰數碼所需輸入模擬電壓的變化量。常 用二進制的位數表示。 例如:12位ADC的分辨率就是12位,一個10V滿刻度的12位ADC能分辨 輸入電壓變化最小是: 10V×1/212=2.4mV量化誤差 ADC把模擬量變為數字量,用數字量近似表示模擬量,這個過程稱為量化。量化誤差是ADC的有限位數對模擬量進行量化而引起的誤差。A/D轉換器的主要技術指標偏移誤差 指輸入信號為零時,輸出信號不為零的值,所以有時又稱為零值誤差。滿刻度誤差 滿刻度誤差又稱為增益誤差。指滿刻度輸出數碼所對應的實際輸入電壓與理想輸入電壓之差。線性度 線性度有時又稱為非線性度,指轉換器實際的轉換特性與理想直線的最大偏差。A/D轉換器的主要技術指標絕對精度 在一個轉換器中,任何數碼所對應的實際模擬量輸入與理論模擬輸入之差的最大值,稱為絕對精度。對于ADC而言,可以在每一個階梯的水平中點進行測量,它包括了所有的誤差。轉換速率 指ADC能夠重復進行數據轉換的速度,即每秒轉換的次數。而完成一次A/D轉換所需的時間(包括穩定時間),則是轉換速率的倒數。
上傳時間: 2013-11-25
上傳用戶:banlangen
微型51/AVR 編程器套件裝配說明書 請您在動手裝配這個編程器之前,務必先看完本說明書,避免走彎路。 1.收到套件后請對照元器件列表檢查一下,元件、配件是否齊全? Used Part Type Designator ==== ================ ========== 1 1k R6 1 1uf 50V C11 5 2k2 R2 R3 R4 R5 R11 1 10K*8 RN1 2 11.0592MHZ Q1 Q2 1 12V,0.5W D2 2 15k R7 R8 2 21k R9 R10 4 33p C6 C7 C8 C9 1 47uf 25V C10 1 74HC164 IC6 2 78L05 IC4 IC5 1 100uf 25V C12 1 220R R1 1 AT89C51 IC2 1 B40C800(W02) D1 2 BS170 T1 T2 1 BS250 T3 1 DB9/F J2 1 J1X2 J1 1 LED GN5 D3 1 LM317L IC1 1 TLC2272 IC7 1 ZIF40 IC3 5 1uf C1 C2 C3 C4 C5 另外,套件配有1.5米串行電纜一根和配套的PCB一塊,不含電源。編程器使用的15V交流電源或12V直流電源需要自己配套。2.裝配要點:先焊接阻容元件,3個集成電路插座(IC2,IC7,IC6)其次是晶振, 全橋,穩壓IC 等,然后焊接J2,最后焊接T1,T2,T3三只場效應管。焊接場效應管時務必按照以下方法:拔去電烙鐵的電源,使用電烙鐵余溫去焊接三只場效應管,否則靜電很容易損壞管子。這是裝配成功的關鍵。這三只管子有問題,最典型的現象是不能聯機。由于電源插座封裝比較特殊,國內無法配套上,已改用電源線接線柱,可直接焊接在PCB板焊盤上,如下圖1所示(在下圖中兩個紅色圓圈內指示的焊盤),然后在連接到套件中配套的電源插座上。最近有朋友反映用15V交流比較麻煩,還要另外配變壓器。如果要使用12V的直流電,無需將全橋焊上,將兩個接線柱分別焊接在全橋的正負輸出位置的焊盤上即可,如下圖2所示,藍色圓圈內指示的焊盤,連接電源的時候要注意正負極,不要接錯了。方形焊盤是正極。40腳ZIF插座焊接前,應該將BR1飛線焊接好。注意:由于焊盤比較小,注意焊接溫度,不要高溫長時間反復焊接,會導致焊盤脫落。
上傳時間: 2013-12-31
上傳用戶:caiguoqing
微型計算機課程設計論文—通用微機發聲程序的匯編設計 本文講述了在微型計算機中利用可編程時間間隔定時器的通用發聲程序設計,重點講述了程序的發聲原理,節拍的產生,按節拍改變的動畫程序原理,并以設計一個簡單的樂曲評分程序為引子,分析程序設計的細節。關鍵字:微機 8253 通用發聲程序 動畫技術 直接寫屏 1. 可編程時間間隔定時器8253在通用個人計算機中,有一個可編程時間間隔定時器8253,它能夠根據程序提供的計數值和工作方式,產生各種形狀和各種頻率的計數/定時脈沖,提供給系統各個部件使用。本設計是利用計算機控制發聲的原理,編寫演奏樂曲的程序。 在8253/54定時器內部有3個獨立工作的計數器:計數器0,計數器1和計數器2,每個計數器都分配有一個斷口地址,分別為40H,41H和42H.8253/54內部還有一個公用的控制寄存器,端地址為43H.端口地址輸入到8253/54的CS,AL,A0端,分別對3個計數器和控制器尋址. 對8353/54編程時,先要設定控制字,以選擇計數器,確定工作方式和計數值的格式.每計數器由三個引腳與外部聯系,見教材第320頁圖9-1.CLK為時鐘輸入端,GATE為門控信號輸入端,OUT為計數/定時信號輸入端.每個計數器中包含一個16位計數寄存器,這個計數器時以倒計數的方式計數的,也就是說,從計數初值逐次減1,直到減為0為止. 8253/54的三個計數器是分別編程的,在對任一個計數器編程時,必須首先講控制字節寫入控制寄存器.控制字的作用是告訴8253/54選擇哪個計數器工作,要求輸出什么樣的脈沖波形.另外,對8253/54的初始化工作還包括,向選定的計數器輸入一個計數初值,因為這個計數值可以是8為的,也可以是16為的,而8253/5的數據總線是8位的,所以要用兩條輸出指令來寫入初值.下面給出8253/54初始化程序段的一個例子,將計數器2設定為方式3,(關于計數器的工作方式參閱教材第325—330頁)計數初值為65536. MOV AL,10110110B ;選擇計數器2,按方式3工作,計數值是二進制格式 OUT 43H,AL ; j將控制字送入控制寄存器 MOV AL,0 ;計數初值為0 OUT 42H,AL ;將計數初值的低字節送入計數器2 OUT 42H,AL ;將計數初值的高字節送入計數器2 在IBM PC中8253/54的三個時鐘端CLK0,CLK1和CLK2的輸入頻率都是1.1931817MHZ. PC機上的大多數I/O都是由主板上的8255(或8255A)可編程序外圍接口芯片(PPI)管理的.關于8255A的結構和工作原理及應用舉例參閱教材第340—373頁.教材第364頁的”PC/XT機中的揚聲器接口電路”一節介紹了揚聲器的驅動原理,并給出了通用發聲程序.本設計正是基于這個原理,通過編程,控制加到揚聲器上的信號的頻率,奏出樂曲的.2.發聲程序的設計下面是能產生頻率為f的通用發聲程序:MOV AL, 10110110B ;8253控制字:通道2,先寫低字節,后寫高字節 ;方式3,二進制計數OUT 43H, AL ;寫入控制字MOV DX, 0012H ;被除數高位MOV AX, 35DEH ;被除數低位 DIV ID ;求計數初值n,結果在AX中OUT 42H, AL ;送出低8位MOV AL, AHOUT 42H,AL ;送出高8位IN AL, 61H ;讀入8255A端口B的內容MOV AH, AL ;保護B口的原狀態OR AL, 03H ;使B口后兩位置1,其余位保留OUT 61H,AL ;接通揚聲器,使它發聲
上傳時間: 2013-10-17
上傳用戶:sunjet