新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 一種單片機控制的指令轉換器的設計

一種單片機控制的指令轉換器的設計

作者: 時間:2012-03-22 來源:網絡 收藏


2.7 分頻電路

本文引用地址:http://m.butianyuan.cn/article/171804.htm

分頻電路由12MHz晶振、74LS14、74LS92計數器(用于12倍分頻)、74LS90計數器(用于10倍分頻)組成,其主要目的是產生 的時鐘信號,供串口擴展芯片8251的 使用,同時產生 的CLK信號,供8251內部時鐘使用。

2.8 檢測電路

為了便于維護、管理,本系統(tǒng)了系統(tǒng)自我檢測功能模塊,各由三極管和發(fā)光二極管組成的四組檢測電路分別接至89C51的P14~P17,用于指示系統(tǒng)自檢、來自發(fā)送裝置的數據接收檢測、發(fā)送應答數據至發(fā)送裝置的檢測及發(fā)送指令數據至指令接收裝置的檢測4種狀態(tài)。

3 軟件

軟件是信號的關鍵組成部分,本系統(tǒng)采用了KEIL C51集成開發(fā)環(huán)境。KEIL C51標準C編譯器為89C51微器的軟件開發(fā)提供了C語言環(huán)境,同時保留了匯編代碼高效、快速的特點。

3.1 8251初始化編程

8251是一個可編程的多功能通訊接口,所以在使用時必須對它進行初始化編程,確定它的具體工作方式。例如:規(guī)定工作在同步方式還是異步方式、傳送的波特率、字符格式等。初始化編程必須在系統(tǒng)RESET以后,在USART工作以前進行,即USART不論工作于任何方式,都必須經過初始化。本系統(tǒng)中,兩片 8251都進行收發(fā)工作。

對于8251(Ⅰ),收發(fā)數據的速率為9600bps,接收器、發(fā)送器的時鐘頻率為153.6KHz,所以波特率系數為異步×16,字符長度為8位,無奇偶校驗位,異步方式,一個起始位,一個停止位。8251(Ⅰ)的方式選擇字、命令字分別為#4EH、#37H。

對于8251(Ⅱ),收發(fā)數據的速率為2400bps,接收器、發(fā)送器的時鐘頻率為153.6KHz,所以波特率系數為異步×64,字符長度為8位,無奇偶校驗位,異步方式,一個停止位。8251(Ⅱ)的方式選擇字、命令字分別為#4FH、#37H。

8251(Ⅰ)、8251(Ⅱ)的字和狀態(tài)寄存器的地址分別為#1FFFH、#3FFFH,下面以8251(Ⅰ)為例給出初始化編程:
MOV DPTR,#1FFFH ;送方式
MOV A,#4EH
MOV @DPTR,A ;送命令指令
MOV A,#37H
MOV @DPTR,A

3.2 8259A初始化編程

前面已經提過,由于8259A與89C51的接口信號不能完全兼容,因此必須對89C51輸出的控制信號進行相應的變換后再對8259A進行控制。在軟件方面需要解決的問題是:當CPU進入中斷響應周期,送來第①個 應答負脈沖時,89C51不能接收8259A送來的CALL指令機器碼(兩者CALL指令機器碼不兼容),在中斷程序中將其廢掉,然后在第②、③個 應答負脈沖期間,用2條MOVX A,@R0指令讀出8259A中斷矢量低8位送DPL,高8位送DPH,通過DPTR,再用跳轉指令轉至中斷源對應的中斷服務程序的入口執(zhí)行,時序圖見圖3-1。

27.gif

8259A中斷控制程序包括:初始化主程序,解決89C51中斷初始化和8259A的初始化;中斷服務程序以及為各個中斷源服務的子程序,解決如何從8259A讀入中斷矢量地址并轉中斷處理程序,最后結束中斷并返回,下面給出程序。

設8259A選擇中斷優(yōu)先級固定,全嵌套工作方式,因此只需要填寫ICW1、ICW2。IR0設定為邊沿觸發(fā)中斷方式。中斷源輸入IR0的中斷矢量為0260H,IR1以及以后的中斷矢量依次加4。

28.gif



評論


相關推薦

技術專區(qū)

關閉