8253譯碼電路設計以及初始化編程講解

先驗知識回顧:知識點不清晰的時候可以查詢相關知識點。
https://blog.csdn.net/qq_42604176/article/details/105810973

需掌握的主要知識點

1、譯碼電路設計
2、初始化編程

例題1

在以 8086構成的最大方式系統中,有一片8254的端口地址分別為301H、303H、305H和307H,給定的外部時鐘為512kHz。 要求:、
(1)利用計數器0產生周期為1ms的周期信號,請編寫初始化程序;利用這一計數器能產生的最低信號頻率為_______, 這時的時常數CR。=________;
思路:
1、分析采用哪種方式
根據要求產生周期信號,采用方式2/3:分頻器/周期性方波輸出;
2、計算時常數CR0
CR0=輸出信號周期/外部時鐘周期=1ms/(1/512k)=512
3、了解該計數器的最大分頻次數,計算最大分頻次數
最大分頻次數是62256次,這樣可以獲取最低頻率:512k/62256=8.22Hz

MOV DX,307H;DX指向控制寄存器
MOV AL,0011 0110B;配置字:選擇通道0, CR/OL使用16位,方式3,2進制計數
OUT DX,AL;	字配置完成
MOV DX,301H;DX指向通道0
MOV AX,512;設置時常數
OUT DX,AL;
XCHG AL,AH;
OUT DX,AL;	配置完成

(2)利用計數器1和2產生如圖9. 17所示的周期信號,并編寫初始化程序;
產生信號
產生這種非方波的周期信號,使用方式2,但是在方式2下,低電平時間僅為一個時鐘周期。因此,利用一個計數通道無法實現。現在采用計數器1和計數器2聯合,先利用計數器1產生周期為1.5ms的周期信號,然后將輸出OUT1信號作為計數器2的時鐘輸入CLK2。
對于計數器1,工作方式可以選擇方式2/3,一般選擇方式3,這樣可以使產生的信號近似對稱,其時常數CR1=1.5ms/(1/512k)=768,采用16位的時常數表示。
對于計數器2,工作方式只能選擇方式2,其時間常數CR2=(3s+1.5ms)/1.5ms=2001,所以也需要16位時常數表示。

;配置計數器1
MOV DX,307H;DX指向控制寄存器
MOV AL,0111 0110B;配置字:選擇通道1, CR/OL使用16位,方式3,2進制計數
OUT DX,AL;	字配置完成
MOV DX,303H;DX指向通道1
MOV AX,768;設置時常數
OUT DX,AL;
XCHG AL,AH;
OUT DX,AL;	配置完成;配置計數器2
MOV DX,307H;DX指向控制寄存器
MOV AL,1011 0100B;配置字:選擇通道2, CR/OL使用16位,方式2,2進制計數
OUT DX,AL;	字配置完成
MOV DX,305H;DX指向通道2
MOV AX,2001;設置時常數
OUT DX,AL;
XCHG AL,AH;
OUT DX,AL;	配置完成

(3)畫出8253的端口譯碼電路(地址線只使用Ao~Ag)及其連接圖。
譯碼電路地址要求:

A2A1ADDR(二進制)ADDR(16進制)
0011,0000,0001301H
0111,0000,0011303H
1011,0000,0101305H
1111,0000,0111307H

注意由于是奇地址,數據線和A0所做出的的更改:
電路

例題2

設8253的端口地址為260H ~ 263H,外部時鐘信號為1MHz,要求產生如圖所示的周期波形,畫出8253的連接圖,并編寫初始化程序段。
題目
分析:
產生的信號低電平時間比高電平寬的多,所以不能直接采用方式2實現。如果可以增加外部器件,則可以在上一題的基礎上,將OUT端信號非門取反。
1、由于要采用方式3,產生周期:1s+12ms=1012ms的方波信號,題目給定的外部時鐘周期為1MHz,這時候需要的分頻系數(時常數)為:1012ms/1us=1012000,顯然這個超過了65536(2^16),所以通過一個計數通道無法實現,所以采用計數器0和計數器1聯合產生。CR0=1000,CR1=1012,這樣OUT0周期為1ms。
2、利用計數器2的方式1(可編程單穩脈沖)實現單脈沖形成一次作為要求產生信號的低電平,時常數CR2=1s/1ms-1=1000-1=999,計數器0 的OUT0信號作為計數器2的時鐘輸入信號,OUT1作為計數器2的硬件觸發信號,確保周期為1012ms。這里注意,計數器的方式1的時常數確定的是輸出低電平的時長,也就是所謂的單脈沖寬度.

MOV DX,263H;寫計數器0方式控制字
MOV AL, 0011 0110B;計數器016位,方式三,二進制
OUT DX,AL;
MOV DX,260H;寫計數器0的時常數
MOV AX,1000;
OUT DX,AL;
XCHG AL,AH;
OUT DX,AL;
MOV DX,263H;寫計數器1方式控制字
MOV AL,0111 0110B;計數器116位,方式三,二進制
OUT DX,AL;
MOV DX,261H;寫計數器1時常數
MOV AX,1012;
OUT DX,AL;
XCHG AL,AH;
OUT DX,AL;
MOV DX,263H;寫計數器2方式控制字
MOV AL,1011 0010B;計數器216位,方式1,二進制
OUT DX,AL;
MOV DX,262H;寫計數器2時常數
MOV AX,999;
OUT DX,AL;
XCHG AL,AH;
OUT DX,AL;

連接圖
OUT0:輸出的是周期為1ms的方波
OUT1:輸出的是周期為1012ms的方波,也就是說每1012ms產生一個上升沿,這確定了計數器2的方式1一個周期寬度
OUT2:輸出的是周期為1012ms,低電平時長為1000ms的脈沖。
我覺得最需要關注的兩個連接點就是:OUT0->CLK1,OUT1->GATE2

例題3

在8088最小系統中,8253 的端口地址為284H~287H.系統提供的時鐘為IMHz,要求在OUT0輸出周期為20微秒的方波,在OUTI輸出周期為200微秒,其中每周期為負的時間是180微秒的信號。請編寫8253的初始化程序。
分析:這一題和上一題的思路很相似,主要的就是不需要聯合。
1
通道0產生方波,可以使用方式3產生。
時常數CR0=輸出信號周期/外部時鐘周期=20us/(1/1M)=20;
通道2產生方波,可以使用方式3產生。
時常數CR2=輸出信號周期/外部時鐘周期=200us/(1/1M)=200;
通道1,采用方式1,時常數,CR1=180/20-1=8;

;配置計數器0
MOV DX,287H;DX指向控制寄存器
MOV AL,0001 0110B;配置字:選擇通道0, CR/OL使用低8位,方式3,2進制計數
OUT DX,AL;	字配置完成
MOV DX,284H;DX指向通道0
MOV AL,20;設置時常數
OUT DX,AL;配置完成
MOV DX,287H;寫計數器2控制方式字
MOV AL,1001 0110B;
OUT DX,AL;
MOV DX,286H;寫計數器2時常數
MOV AL,200;
OUT DX,AL;
MOV DX,287H;
MOV AL,0101 0010B;
OUT DX,AL;
MOV DX,285H;
MOV AL,8;
OUT DX,AL;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/378530.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/378530.shtml
英文地址,請注明出處:http://en.pswp.cn/news/378530.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java安卓寫文件路徑,如何使用gradle作為構建系統,平臺Android配置Protobuf(Java)文件的輸出路徑?...

我正在努力解決以下問題:我有2個基于maven的java項目和1個基于gradle的Android項目 . 布局如下:Workspace/├── MavenProj1/├── MavenProj2/├── AndroidGradleProject1/├── Protos/所有這些的包結構很常見,比方說 com.example.* 所…

Java System類exit()方法及示例

系統類exit()方法 (System class exit() method) exit() method is available in java.lang package. exit()方法在java.lang包中可用。 exit() method is used to exit the currently running JVM (Java Virtual Machine). exit()方法用于退出當前正在運行的JVM(Java虛擬機)。…

基于圖像處理的數碼印花噴墨墨滴形狀規范的研究(Python+OpenCV+Mysql)

大體思路:由于墨滴的不同參數會對墨滴的形態產生一定的影響,故如果通過研究墨滴的形態則通過海量的數據就可以大概確定墨滴的各項參數指標的范圍。通過OpenCV對墨滴的噴出的形狀進行圖像處理,對墨滴圖像進行一系列的分析,通過一系…

ASP.NET 主題(Themes)FAQ

1、主題是什么 主題由一組元素組成:外觀、級聯樣式表 (CSS)、圖像和其他資源。主題將至少包含外觀。主題是在網站或 Web 服務器上的特殊目錄中定義的。主題是一組Web Control的屬性設置的集合,提供一種簡單的方法設置控件的樣式屬性。 主題只在Web Contr…

Head First HTML與CSS、XHTML++筆記(第四章 WEB鎮之旅 第五章 認識媒體)

第四章 鏈接&#xff08;詳解<a>元素&#xff09; 目標錨 在目標位置 <h2><a id"chai">contentTest</a></h2> 在需要鏈接位置 <a href"index.html#chai">See</a> 鏈接到自身的目標錨 <a href"#top"…

Opencv實戰【4】——圖片動漫化處理

博主聯系方式&#xff1a; QQ:1540984562 微信&#xff1a;wxid_nz49532kbh9u22 QQ交流群&#xff1a;750313950 目錄動漫化風格的特點處理手段代碼實現效果總結動漫化風格的特點 &#xff08;1&#xff09;動漫中的細節相對少&#xff1b; &#xff08;2&#xff09;動漫中的邊…

nextshort_Java掃描儀的nextShort()方法與示例

nextshort掃描器類的nextShort()方法 (Scanner Class nextShort() method) Syntax: 句法&#xff1a; public short nextShort();public short nextShort(int rad);nextShort() method is available in java.util package. nextShort()方法在java.util包中可用。 nextShort() …

php 生成css文件怎么打開,php生成html文件的多種步驟介紹

//定義日期函數functiongetdatetime(){$datetimegetdate();$strReturn$datetime["year"]."-";$strReturn$strReturn.$datetime["mon"]."-";$strReturn$strReturn.$datetime["mday"];return$strReturn;}//定義時間函數(文件名…

08-KNN手寫數字識別

標簽下載地址 文件內容備注train-images-idx3-ubyte.gz訓練集圖片&#xff1a;55000張訓練圖片&#xff0c;5000張驗證圖片train-labels-idx1-ubyte.gz訓練集圖片對應的數字標簽t10k-images-idx3-ubyte.gz測試集圖片&#xff1a;10000張圖片t表示test&#xff0c;測試圖片&…

MFC odbc訪問遠程數據庫

首先&#xff0c;MFC通過ODBC訪問數據庫&#xff0c;主要使用兩個類&#xff0c;一個是CDataBase&#xff0c;一個是CRecordset。第一個是用于建立數據庫連接的&#xff0c;第二個是數據集&#xff0c;用來查詢的。步驟如下&#xff1a;1.實例化一個CDataBase對象&#xff0c;并…

微機原理——擴展存儲器設計

目錄【1】存儲器的層次結構【2】存儲器的分類【3】SRAM1、基本原理&#xff1a;2、結構&#xff1a;3、芯片參數與引腳解讀&#xff1a;4、CPU與SRAM的連接方式【4】DRAM1、基本原理&#xff1a;2、結構3、芯片引腳解讀&#xff1a;【5】存儲器系統設計【6】存儲器擴展設計&…

floatvalue 重寫_Java Number floatValue()方法與示例

floatvalue 重寫Number類floatValue()方法 (Number Class floatValue() method) floatValue() method is available in java.lang package. floatValue()方法在java.lang包中可用。 floatValue() method is used to return the value denoted by this Number object converted …

array_column php什么版本可以用,array_column兼容php5.5以下版本

gistfile1.txt// ----------------------------------------------------------------------// |獲取二維數組中指定的一列&#xff0c;PHP5.5以后有專用函數array_column()// ----------------------------------------------------------------------// |param array $arr// …

。net學習之控件的使用注意點

jQuery使用 1、自定義屬性的使用<script>$(#xwjj_i_main br[brinfoPd_KangQiao_Subject_Xwjj_br_1]).hide();</script> 2、ready代碼塊$(document).ready(function(){ //你的代碼}); 3、簡單的特效hide&#xff08;&#xff09;$("a").click(function()…

09-CNN手寫數字識別

CNN卷積神經網絡的本質就是卷積運算 維度的調整&#xff1a; tf.reshape(imageInput,[-1,28,28,1]) imageInput為[None,784]&#xff0c;N行* 784維 調整為 M28行28列*1通道 即&#xff1a;二維轉化為四維數據 參數一&#xff1a;等價于運算結果M 參數二&#xff1a;28 28 表示…

【轉】左值與右值

出處&#xff1a;http://www.embedded.com/electronics-blogs/programming-pointers/4023341/Lvalues-and-Rvalues C and C enforce subtle differences on the expressions to the left and right of the assignment operator If youve been programming in either C or C for…

Opencv將處理后的視頻保存出現的問題

問題描述&#xff1a; 代碼運行過程中&#xff0c;imshow出來的每幀的效果圖是正確的&#xff0c;但是按照網上的方法保存下來卻是0kb&#xff0c;打開不了。 參考的網上的一些方法&#xff0c;均是失敗的&#xff0c;具體原因我也不清楚&#xff1a; 1、例如我這樣設置&#x…

Java Number shortValue()方法與示例

Number類shortValue()方法 (Number Class shortValue() method) shortValue() method is available in java.lang package. shortValue()方法在java.lang包中可用。 shortValue() method is used to return the value denoted by this Number object converted to type short (…

MATLAB可以打開gms文件嗎,gms文件擴展名,gms文件怎么打開?

.gms文件類型&#xff1a;Gesture and Motion Signal File擴展名為.gms的文件是一個數據文件。文件說明&#xff1a;Low-level, binary, minimal but generic format used to organize and store Gesture and Motion Signals in a flexible and optimized way; gesture-related…

黑白圖片顏色反轉并保存

將圖像的黑白顏色反轉并保存 import cv2 # opencv讀取圖像 img cv2.imread(rE:\Python-workspace\OpenCV\OpenCV/YY.png, 1) cv2.imshow(img, img) img_shape img.shape # 圖像大小(565, 650, 3) print(img_shape) h img_shape[0] w img_shape[1] # 彩色圖像轉換為灰度圖…