一種單片機(jī)控制的指令轉(zhuǎn)換器的設(shè)計(jì)
2.7 分頻電路本文引用地址:http://www.ex-cimer.com/article/171804.htm
分頻電路由12MHz晶振、74LS14、74LS92計(jì)數(shù)器(用于12倍分頻)、74LS90計(jì)數(shù)器(用于10倍分頻)組成,其主要目的是產(chǎn)生 的時(shí)鐘信號(hào),供串口擴(kuò)展芯片8251的 使用,同時(shí)產(chǎn)生 的CLK信號(hào),供8251內(nèi)部時(shí)鐘使用。
2.8 檢測(cè)電路
為了便于維護(hù)、管理,本系統(tǒng)設(shè)計(jì)了系統(tǒng)自我檢測(cè)功能模塊,各由三極管和發(fā)光二極管組成的四組檢測(cè)電路分別接至89C51的P14~P17,用于指示系統(tǒng)自檢、來自指令發(fā)送裝置的指令數(shù)據(jù)接收檢測(cè)、發(fā)送應(yīng)答數(shù)據(jù)至指令發(fā)送裝置的檢測(cè)及發(fā)送指令數(shù)據(jù)至指令接收裝置的檢測(cè)4種狀態(tài)。
3 軟件設(shè)計(jì)
軟件是信號(hào)轉(zhuǎn)換器的關(guān)鍵組成部分,本系統(tǒng)采用了KEIL C51集成開發(fā)環(huán)境。KEIL C51標(biāo)準(zhǔn)C編譯器為89C51微控制器的軟件開發(fā)提供了C語言環(huán)境,同時(shí)保留了匯編代碼高效、快速的特點(diǎn)。
3.1 8251初始化編程
8251是一個(gè)可編程的多功能通訊接口,所以在使用時(shí)必須對(duì)它進(jìn)行初始化編程,確定它的具體工作方式。例如:規(guī)定工作在同步方式還是異步方式、傳送的波特率、字符格式等。初始化編程必須在系統(tǒng)RESET以后,在USART工作以前進(jìn)行,即USART不論工作于任何方式,都必須經(jīng)過初始化。本系統(tǒng)中,兩片 8251都進(jìn)行收發(fā)工作。
對(duì)于8251(Ⅰ),收發(fā)數(shù)據(jù)的速率為9600bps,接收器、發(fā)送器的時(shí)鐘頻率為153.6KHz,所以波特率系數(shù)為異步×16,字符長(zhǎng)度為8位,無奇偶校驗(yàn)位,異步方式,一個(gè)起始位,一個(gè)停止位。8251(Ⅰ)的方式選擇字、命令字分別為#4EH、#37H。
對(duì)于8251(Ⅱ),收發(fā)數(shù)據(jù)的速率為2400bps,接收器、發(fā)送器的時(shí)鐘頻率為153.6KHz,所以波特率系數(shù)為異步×64,字符長(zhǎng)度為8位,無奇偶校驗(yàn)位,異步方式,一個(gè)停止位。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初始化編程
前面已經(jīng)提過,由于8259A與89C51的接口信號(hào)不能完全兼容,因此必須對(duì)89C51輸出的控制信號(hào)進(jìn)行相應(yīng)的變換后再對(duì)8259A進(jìn)行控制。在軟件方面需要解決的問題是:當(dāng)CPU進(jìn)入中斷響應(yīng)周期,送來第①個(gè) 應(yīng)答負(fù)脈沖時(shí),89C51不能接收8259A送來的CALL指令機(jī)器碼(兩者CALL指令機(jī)器碼不兼容),在中斷程序中將其廢掉,然后在第②、③個(gè) 應(yīng)答負(fù)脈沖期間,用2條MOVX A,@R0指令讀出8259A中斷矢量低8位送DPL,高8位送DPH,通過DPTR,再用跳轉(zhuǎn)指令轉(zhuǎn)至中斷源對(duì)應(yīng)的中斷服務(wù)程序的入口執(zhí)行,時(shí)序圖見圖3-1。
8259A中斷控制程序包括:初始化主程序,解決89C51單片機(jī)中斷初始化和8259A的初始化;中斷服務(wù)程序以及為各個(gè)中斷源服務(wù)的子程序,解決如何從8259A讀入中斷矢量地址并轉(zhuǎn)中斷處理程序,最后結(jié)束中斷并返回,下面給出程序。
設(shè)8259A選擇中斷優(yōu)先級(jí)固定,全嵌套工作方式,因此只需要填寫ICW1、ICW2。IR0設(shè)定為邊沿觸發(fā)中斷方式。中斷源輸入IR0的中斷矢量為0260H,IR1以及以后的中斷矢量依次加4。
評(píng)論