實現的接口技術和編程環境
壹、實驗目的
1,熟悉AEDK實驗儀ISA總線配置模式下實現的接口技術和編程環境。並了解另外兩種:單板機配置模式和串口監控配置模式。
2.學會通過60核總線、驅動、解碼器等在PC外部擴展新的接口芯片。
3.了解編程控制可編程接口的編程方法。
二、測試設備
硬件:PC兼容機
AEDK實驗儀器
軟件:操作系統MS-DOS或WINDOWS。
MASM..可執行程序的擴展名
LINK.EXE的調試和編輯等編輯器。
三、實驗內容
1,復習匯編語言和微機原理的相關內容,了解總線和端口地址的尋址方式(統壹尋址和獨立尋址)。熟悉CS信號的產生方法。
2.掌握匯編語言編輯、匯編、鏈接和調試程序的方法。精通調試程序的命令和使用。
3、熟悉實驗儀器面板的結構,掌握原理,以便更好地使用和做好開發工作。
四。要求和說明
1,遵守實驗室的規章制度,愛護實驗儀器(執行人機對號簽字記錄的方法);
2.成績構成:平時實驗和報告占70%,考試占65,438+00%,實驗儀器使用、管理和回收占20%(為培養良好的實驗作風,第壹次錯誤警告將以65,438+00分、20分、40分扣除總分);
3.本實驗使用8253計數器/定時器,端口地址為200H、201H、202H、203H,對應COUNT0、COUNT1、COUNT2和控制端口。
動詞 (verb的縮寫)匯編程序結構
數據段
。
。
。
數據結束
代碼段
假設CS:代碼,DS:數據
開始:
。
。
。
代碼結束
結束開始
六、源程序生成步驟
1.用編輯程序編輯源程序。
C & gt編輯文件名。ASM(文件名由用戶定義)
2.使用宏匯編程序MASM匯編源程序,生成目標程序。
C & gtMASM文件名。空對地導彈
如果組裝後沒有提示錯誤,按順序進行步驟3;否則,重復步驟1-2,記錄並分析錯誤原因。
3.使用鏈接程序鏈接
C & gt鏈接文件名。OBJ(分機。OBJ可以省略)
4.用調試器調試程序。
C & gt調試文件名。可執行程序的擴展名
調試過程中註意觀察和記錄各種現象。
5.正確連接硬件,指導老師檢查電路連接,打開實驗儀器電源開關,運行程序。使用DEBUG單步運行,觀察並記錄總線信號接口芯片片選信號CS在執行輸入、輸出、存儲器-寄存器傳輸、寄存器-存儲器傳輸指令時的現象和狀態。(建議畫波形圖)
七。報告要求
1,談談對這門實驗課的建設性建議,對教學方法的看法以及妳要達到的目標;
2.指定題目或者8253,8255,8251,8259,A/D,D/A等比較好的實驗方案可以在實驗課上做。如何看待這種教學改革?
實驗二8253定時器/計時器
壹、實驗目的
1.進壹步學習通過62核總線、驅動器、解碼器等在PC之外擴展新的接口芯片。
2.掌握8253計數器的編程原理,用示波器或LED觀察不同模式下的波形或頻率關系。
二、測試設備
硬件:PC兼容機
微型計算機實驗儀器
示波器
LED3
軟件:操作系統MS-DOS
MASM..可執行程序的擴展名
LINK.EXE
三、考試內容
1.用8253組成方波發生器和分頻器,完成如圖所示的連接。
1 & gt;連接實驗儀器的Q0-Q3端子之壹輸出的頻率為2.5 kHz-20 kHz(不同儀器不同)的8253的CLKO。
2 & gt,OUT0接CLK1,OUT1接CLK2,OUT0、OUT1、OUT2分別接LED陽極。
3 & gt,GATE0,GATE1和GATE2連接到+5v。
4 & gt·芯片選擇CS插孔連接到200 h ~ 207 h..可以選擇d觸發器和LED來檢測CS信號的狀態。連接方式見實驗壹。
2.要完成編程,將計數器0和1設置為模式3(方波),將定時器2設置為模式2(分頻)。計數器0的輸出脈沖用作計數器1的時鐘輸入,計數器1的輸出脈沖用作計數器2的時鐘輸入。修改程序中的初始計數參數改變方波寬度和分頻信號周期,用LED觀察計數器0、1、2的輸出頻率關系,畫出頻率關系圖的波形。
計數初始值=F in/F out = T in/T out
四、編程技巧
1和8253控制端口的地址是203H。
計數器0的地址是200H。
計數器1的地址是201H。
計數器2的地址是202H。
2.8253的控制字:
3、程序框圖
動詞 (verb的縮寫)參考程序列表
數據段
TS DB '觀察現象並記錄輸出波形關系',OAH,ODH,' $ '
數據結束
代碼段
假設CS:代碼,DS:數據
開始:MOV斧,數據
MOV DS,AX
LEA DX,TS
MOV啊,9
INT 21H
MOV DX,203H
MOV·阿爾,36H
輸出DX,AL
MOV DX,200H
MOV·阿爾
輸出DX,AL
輸出DX,AL
MOV DX,203H
MOV·阿爾,56H
輸出DX,AL
MOV DX,201H
MOV·阿爾,8歲
輸出DX,AL
MOV DX,203H
MOV·阿爾,94H
輸出DX,AL
MOV DX,202H
MOV·阿爾,6歲
輸出DX,AL
MOV啊,4CH
INT 21H
代碼結束
結束開始
六、測試步驟
1.用編輯程序編輯源程序。
C & gt編輯文件名。ASM(文件名由用戶定義)
註意:在編輯結束時,您必須在退出編輯之前保存已建立的源程序。
2.使用宏匯編程序MASM匯編源程序,生成目標程序。
C & gtMASM文件名。空對地導彈
如果組裝後沒有提示錯誤,按順序進行步驟3;否則,重復步驟1-2,記錄並分析錯誤原因。
3.使用鏈接程序鏈接
C & gt鏈接文件名。OBJ(分機。OBJ可以省略)
4.用調試器調試程序。
C & gt調試文件名。可執行程序的擴展名
調試過程中註意觀察和記錄各種現象。
5.指導老師檢查電路連接正確後,打開實驗儀器的電源開關,運行程序。使用DEBUG單步運行,在每個計數器寫入工作模式控制字和計數初始值後,觀察並記錄OUT端的現象和狀態。
計數器0計數器1計數器2
工作模式計數初始值輸出f或t工作模式初始值輸出f或t工作模式初始值輸出f或t
執行指令OUT0 OUT1 OUT2。
註意:記錄波形。
6.討論和改進
1 & gt;請在源程序中更改工作模式控制字並統計初始值,觀察分析運行結果。
2 & gtLED觀察和CRT觀察有什麽區別?為什麽?
3 & gt嘗試用壹對紅外發射接收管和8253計數器設計生產線的物理計數裝置,並將采集到的數據傳送給CPU進行處理。
4 & gt提出了改進該實驗的建議。
實驗3 8255並行接口(鍵盤控制)實驗
壹、實驗目的
1.學習在PC系統中擴展I/O接口的方法。掌握8255並行接口的編程原理,實現可編程接口設計的靈活性和方便性。
2.了解非編碼鍵盤的結構特點,學習掃描讀取鍵盤鍵值並在CRT上顯示的編程方法和硬件結構。
二、實驗設備
硬件:PC兼容機
微型計算機實驗儀器
軟件同實驗壹。
三、實驗內容
1.用8255並行接口控制壹個16鍵的小鍵盤(行掃描法或反轉法均可),按圖連線:
1 & gt;用導線將PA0—PA7連接到插孔RL0—RL7,控制鍵盤行數據。
2 & gt用導線將PB0和PB1連接到插孔Y0和Y1,以控制鍵盤列數據。拔下K10上的所有短路套管。
3 & gt,片選CS連接218h-21fh。
2.寫程序。運行程序時,鍵盤會交出控制權。按下鍵盤上的鍵後,計算機屏幕將顯示讀取的鍵名。當鍵盤按“F”時,它返回到DOS,鍵盤恢復控制。
四、編程技巧
1,識別鍵盤上關閉的按鍵,通常采用行掃描法或倒置法。
行掃描法使鍵盤上的壹行低,其他行高。然後讀取列值,如果列值中有壹列為低電平,則表示行列交叉處的鍵被按下,將列值+行值=鍵值與緩存中存儲的鍵值表進行比較,然後找出鍵名對應的字符,顯示在微機屏幕上或返回DOS;否則,掃描下壹行,直到掃描完所有行。
線反轉方法將線連接到並行端口,並在輸出模式下工作。列線連接到另壹個並行端口,工作在輸入模式。該程序使CPU從輸出端口向所有行線發送低電平,然後讀入列線的值。如果此時按下壹個鍵,肯定會使壹列行值為0。然後程序設置兩個並口的模式,使行線工作在輸入模式,列線工作在輸出模式,輸出剛從與列線相連的並口讀取的列線值,然後讀取行線的輸入值。然後,由於關閉鍵所在行線上的鍵壓,行值必須為0。因此,當按下壹個鍵時,可以讀取壹對唯壹的鍵值(列值+行值)。
2.編程時,每個鍵的鍵名可以由用戶定義,每個鍵對應的鍵碼(列值+行值)由界面排列決定。線和
列的交叉點數量就是鍵的數量,鍵名和鍵值都存儲在數據段的鍵表中。該程序通過查找表格來確定哪個鍵被按下。
動詞 (verb的縮寫)參考程序列表(反向方法)
數據段
表DW 0101H、0102H、0104H、0108H、0110H、0120H、0140H、0180H
DW 0201H,0202H,0204H,0208H,0210H,0220H,0240H,0280H
字符數據庫' 89ABCDEF01234567 '
TS DB '按鍵盤上的任意鍵,它將顯示在CRT上,按F鍵,程序將推出',0DH,0AH,' $ '
數據結束
代碼段
假設CS:代碼,DS:數據
主進程遠
開始:MOV斧,數據
MOV DS,AX
LEA DX,TS
MOV啊,9
INT 21H
KY:呼叫鍵
CMP DL,' F '
JNZ KY
MOV啊,4CH
INT 21H
浸水使柔軟
主ENDP
鑰匙靠近了
INI: MOV DX,21BH
MOV·阿爾,82H
輸出DX,AL
等待1:MOV DX,218H
MOV·阿爾,0
輸出DX,AL
MOV DX,219H
在阿爾,DX
MOV啊,艾爾
和AL,03H
CMP鋁,03H
JZ等待1
MOV·阿爾,啊
MOV啊,0
推斧
推斧
MOV CX,1000H
DLY:環DLY
MOV DX,21BH
MOV·阿爾,90H
輸出DX,AL
MOV DX,219H
爆破筒
輸出dx,al
MOV DX,218H
在阿爾,DX
波普·BX
MOV啊,BL
不是艾爾
MOV SI,偏移表
MOV DI,偏移字符
MOV CX,16
跳過:CMP AX,[SI]
JZ·DISP
十二月CX
JZ ini
添加SI,2
公司DI
JMP·斯基普
DISP:MOV
MOV啊,2
INT 21H
推送DX
MOV DX,21BH
MOV·阿爾,82H
輸出DX,AL
等待2:MOV DX,218H
MOV·阿爾,0
輸出DX,AL
MOV DX,219H
在阿爾,DX
和AL,03H
CMP鋁,03H
JNZ等待2
流行DX
浸水使柔軟
基ENDP
代碼結束
結束開始
六、實驗步驟
1.編輯、匯編、鏈接和調試源程序。
2.正確連接電路,並在教師檢查並確認無誤後,方可接通電源。
3.運行程序,用LED分別測量PA0—PA7、PB0—Pb 1的狀態。觀察並記錄實驗現象。
鍵盤:當沒有按鍵時,有壹個按鍵被按下。
Pa0-pa7pb0-pb1密鑰名稱pa0-pa7pb0-pb1
鍵盤:
4.討論和改進
1 & gt;用LED測量PA0—PA7是什麽現象,為什麽?
2 & gtLED測得的PB0和PB1有無按鍵的狀態有什麽區別?為什麽?
3 & gt當小鍵盤處於活動狀態時,可以使用鍵盤嗎?如果您在鍵盤上按16次,請記錄CRT發生的情況。
4 & gt16位密鑰可以用8位端口A和2位端口B控制..如果選擇8255接口,A組12位和B組12位可以控制多少個按鍵* *?8255能控制104標準鍵盤嗎?
5 & gt註釋源程序的各個模塊,並畫出流程圖。
實驗4 8259A中斷控制器實驗
壹、實驗目的
1,掌握8259A中斷控制器的工作原理,熟悉實驗涉及的8259A中中斷屏蔽寄存器IMR和中斷服務寄存器ISR的用法。
3.掌握外部中斷源的介紹,學習編寫中斷處理程序。
二、實驗設備
硬件:PC兼容機
微型計算機實驗儀器
軟件同實驗壹。
三、實驗內容
1.利用正負單脈沖作為外部中斷源,可以隨機產生中斷請求(也可以用8253計數器產生定時的外部中斷請求)。中斷請求通過PC/XT 62核心總線的IRQ2端子輸入到內部8259,8259向總線發送壹個INTA信號。總線響應後,給出INTA響應信號。切換到中斷服務程序。
2.寫壹個程序,要求主機每次響應外部中斷IRQ2時,啟動8255並行接口,輸入按鈕開關組的4位信號由PC7-4采集,從PC3-0輸出到4個led顯示。在每個中斷請求之前選擇按鈕開關組合,在中斷響應之後,LED顯示組合開關的狀態。十次中斷後,程序退出。
四、編程技巧
1.本實驗使用了PC機中的8259A芯片。當主機啟動時,8259A中斷控制寄存器的前5位已經初始化為00001。所以IRQ2的中斷號是0001010b = 0ah,IRQ5的中斷號是000168。主機為用戶保留IRQ2,其他外部中斷由系統時鐘、鍵盤等占用。因此,避免編程時系統已經使用的中斷請求號。只需清除IMR寄存器中IRQ2對應的位(使IC W3 = 1111101b),去除IRQ2的中斷屏蔽,允許IRQ2中斷。
2.PC中的8259A被初始化為正常結束模式。當外部中斷結束時,必須使用中斷結束命令將中斷服務寄存器ISR中的相應位清零。(MOV AL,20H OUT 20H,AL OCW2=00100000B).
3.程序退出時,關閉IRQ2中斷,將IMR中相應的位置設置為1(使OCW 1 = 1111111b)。
3.PC系統中8259A端口的地址:偶數地址20H,奇數地址21H。
動詞 (verb的縮寫)參考程序列表
數據段
TS 1 dB '結合按鈕開關設置代碼,按下單脈沖鍵,觀察LED顯示,註意上升沿或下降沿觸發',0DH,0AH,' $ '
Ts2db '並行接口8255 C采集數據並顯示,請觀察並記錄','$'
數據結束
代碼段
假設CS:代碼,DS:數據
開始:MOV AX,CS
MOV DS,AX
LEA DX,INTPROG
MOV啊,25H
MOV·阿爾,0AH
INT 21H
硬幣指示器 (coin-levelindicator的縮寫)命令行界面(Command Line Interface for batch scripting)
MOV DX,21H
在阿爾,DX
還有AL,11111011B
輸出DX,AL
MOV BX,10
MOV SI,0041H
性傳播感染
MOV斧,數據
MOV DS,AX
LEA DX,TS1
MOV啊,9
INT 21H
YY: NOP
JMP·YY
INTPROG:
MOV斧,數據
MOV DS,AX
TS2的LEA DX
MOV啊,9
INT 21H
MOV·CX,05H
MOV DL,20H
MOV啊,2
XH0: INT 21H
循環XH0
MOV DX,SI
MOV啊,2
INT 21H
MOV DL,0DH
INT 21H
MOV DL,0AH
INT 21H
MOV DX,21BH
MOV·阿爾,88小時
輸出DX,AL
MOV DX,21AH
在阿爾,DX
MOV CL,4
羅阿爾,CL
不是艾爾
輸出DX,AL
MOV DX,20H
MOV·阿爾,20H
輸出DX,AL
十二月BX
JNZ繼續
MOV DX,21H
在阿爾,DX
還是AL,04
輸出DX,AL
性傳播感染
MOV啊,4CH
INT 21H
繼續:公司SI
IRET
代碼結束
結束開始
六、實驗步驟
1.編輯、匯編、鏈接和調試源程序。
2.正確連接電路,並在教師檢查並確認無誤後,方可接通電源。
3.運行程序。CRT顯示提示後,選擇組合按鈕的代碼,按下加號按鈕,觀察CRT的顯示和LED顯示的PC3-0的代碼,分析INTR信號的上升沿或下降沿是否有效。觀察並記錄實驗現象。如何檢測?
4.觀察8259A中斷控制器的中斷請求寄存器IRR是否具有記錄中斷請求的功能。怎麽證明?
實驗5從存儲器直接DMA傳輸
壹、實驗目的
1.了解DMA的工作原理和DMA控制器8237a-5的使用方法。
2.通過在PC環境下編程掌握DMA數據傳輸,了解DMA工作順序。
二、實驗設備
硬件:PC兼容機
微型計算機實驗儀器
軟件同實驗壹。
三、實驗內容
1.寫壹個程序通過DMA讀取將PC內存60000h-61FFH的內容發送到實驗儀器的外存62256,再通過DMA寫入寫回70000-71FFH的區域。
2.使用74LS154集成4D觸發器檢測DREQ和DACK信號的狀態。
3.用調試程序填充60000h-61fffh的存儲區。DMA操作後,讀出70000h-71fffh區的數據,檢查並校驗發送的數據是否有錯誤。
四、實驗描述
1.在本實驗中,使用了PC中的DMA控制器,並且必須遵守PC的壹些約定條件:
DMA控制器8237-A在PC系統中。四個DMA通道中,通道0用於RAM刷新(刷新請求信號由系統中的8253計數器通道1產生,每15.13微秒產生壹次),通道1預留給用戶,通道2用於軟盤數據傳輸,通道3用於硬盤數據傳輸。8237-A的尋址範圍是00H—0FH,對應通道1的頁面地址是83H。
PC BIOS初始化時,控制寄存器設置為00H,即DREQ高電平有效,DACK低電平有效,優先級固定,定時正常,非擴展寫模式。所有四個通道都遵守這壹約定,因此建議不必設置控制寄存器的內容,以避免系統設置混亂。
2.使用DMA時,您應該註意:
1 & gt;確保通道0的RAM刷新正常運行,否則會崩潰。對於三種DMA傳輸模式,PC環境下只支持單字節傳輸模式,其他兩種模式都因為占用總線時間太長而崩潰,導致RAM無法及時刷新。系統設置了固定優先級模式,也是為了保證動態RAM刷新的優先級。由於ROM—BIOS已使用通道0進行動態RAM刷新,並且用戶不能更改它,盡管通道0和1具有內存到內存DMA傳輸功能,但PC不支持內存到內存DMA傳輸。
2 & gt軟件請求模式對應於塊傳輸模式。為了不影響RAM刷新,建議使用直接傳輸模式。傳輸多個字節時,要用循環程序實現。
2.短路套JP0、JP1、JP2、JP3、JP4跳轉到DMA側(左側),K11、K12撥到DMA側,HALT鍵也作為DMA按鈕使用。
3.總線信號DREQ1和DACK1分別連接到D觸發器的S端和R端,Q端連接到LED。
動詞 (verb的縮寫)程序列表
數據段
‘ts 1dB’按DMA(HALT)鍵,請求將存儲器源數據區的32KB數據直接傳送到外部存儲器62256(作為外設),觀察LED顯示的DREQ1和DACK1信號。’,0DH,0AH,' $ '
Ts2db '按下DMA(HALT)鍵,請求將外部存儲器62256(作為外設)中的32KB數據直接傳送到存儲器目標區,觀察LED顯示的DREQ1和DACK1信號。,0DH,0AH,' $ '
Ts3db' DMA直接傳輸完成,請進入DEBUG用D命令檢查內存目標區的32KB數據是否正確',0DH,0AH,' $ '
數據結束
棧段
STA DW 50 DUP(?)
頂部EQU長度STA
堆棧結束
代碼段
假設CS;代碼,DS:數據,SS:堆棧,ES:數據
開始:MOV斧,數據
MOV DS,AX
MOV斧,堆棧
MOV黨衛軍,斧頭
MOV SP,頂部
MOV·阿爾,5歲
出去啊,艾爾;設置通道1掩碼字
OUT 0CH,AL;清除順序觸發器
MOV艾爾,01001001B
OUT 0BH,AL;將模式字設置為單字節讀取傳輸
MOV·BX,0000小時
MOV湖
出02H,鋁
MOV有限公司
出02H,鋁
MOV·阿爾,06H
OUT 83H,AL;起始地址是6000h: 0。
MOV·阿爾
OUT 03H,AL
MOV阿爾,07FH
OUT 03H,AL;傳輸的字節數為7FFFH(32KB)。
MOV阿爾,01H
出去啊,艾爾
LEA DX,TS1
MOV啊,9
INT 21H
推斧
爆破筒
等待0:在鋁,08H
和鋁,02H
JZ等待0
MOV·艾爾,05H
出去啊,艾爾;設置通道1掩碼字
OUT 0CH,AL;清除順序觸發器
MOV阿爾,01000101B
OUT 0BH,AL;將模式字設置為單字節寫入傳輸。
MOV湖
出02H,鋁
出02H,鋁
MOV·阿爾,07H
OUT 83H,AL;目的地址是內存7000h: 0。
MOV·阿爾
OUT 03H,AL
MOV阿爾,7FH
OUT 03H,AL;傳輸字節為7FFFH(32KB)。
MOV艾爾,01
出去啊,艾爾;移除通道1的遮罩。
TS2的LEA DX
MOV啊,9
INT 21H
推斧
爆破筒
WAIT1:在AL,08H
和鋁,02H
JZ等待1
TS3的LEA DX
MOV啊,9
INT 21H
MOV啊,4CH
INT 21H
代碼結束
結束開始
六、實驗步驟
1.編輯、匯編、鏈接和調試源程序。
2.正確連接電路,並在教師檢查並確認無誤後,方可接通電源。
3.進入DEBUG,運行d命令檢查6000h: 0000—6000h: 7FFFH範圍內的數據,用f命令填充這個範圍內的數據。然後使用d命令檢查該區域是否被數據填充。
4.運行程序,根據程序提示按暫停鍵請求DMA傳輸,觀察DREQ1、DACK1、MEMR和IOW信號的狀態。存儲器中的數據被傳送到外部擴展存儲器62256。
5.根據程序提示,再次按下HALT鍵請求DMA傳輸,觀察DREQ1、DACK1、MEMW和IOR信號的狀態。外部擴展存儲器62256中數據被傳送到存儲器。
6.進入DEBUG運行d命令檢查7000h: 0000—7000h: 7FFFH範圍內的數據,並與源數據區的數據進行比較,看是否有錯誤。如果有,請分析原因。
實驗6 8251可編程串行接口的通信實驗
壹、實驗目的
1,掌握8251的芯片結構、工作原理和初始化編程。
2.了解串行通信的硬件環境、數據格式協議和數據交換協議。
3.學習PC通訊的編程方法。
二、測試設備
硬件:PC兼容機
微型計算機實驗儀器
4個LED4
74LS74或74LS175 IC 1芯片
軟件:操作系統MS-DOS
MASM..可執行程序的擴展名
LINK.EXE
三、實驗內容
1.編輯、組裝、鏈接和調試匯編程序。通過初始化8251,設置串行傳輸字符幀格式、波特率因子等數據格式和數據交換協議。
2.用查詢法編程,從鍵盤輸入數據,自動接收8251,觀察8251的串行傳輸並在CRT上顯示傳輸的數據。