?? scn2681初始化實例.txt
字號:
;2681/2691 功能程序
;本程序通過讀回MR1中的值來驗證數據總線是否完好,
;如果第一個測試通過,則通過將256個字符寫入到發送器(A & B),
;并讀取接收器(A &B)的內容來驗證,通過這種方式來測試信道‘A’,然后是‘B’。
;
INIT: MOVE.B #$1A,CRA
MOVE.B #$30,CRA ;復位TX
MOVE.B #$20,CRA ;復位RX
MOVE.B #$13,MR1A ;無奇偶性,8位
MOVE.B #7,MR2A ;正常,停止 = 1
MOVE.B #$66,CSRA ;TXC = RXC = 1200波特
MOVE.B #$10,CRA ;復位指針,禁用TX-RX
MOVE.B MR1A,D1 ;讀取MR1A
MOVE.B #$13,D0
CMP.B D0,D1 ;比較數據值
BEQ TEST1 ;如果匹配則數據總線完好
TRAP #15 ;如果失敗則停止
;
;這次測試發送數據FF通過00 THRA,然后將它們讀回。
;RX數據只與通道‘A’的TX數據進行比較。
;注意:對于后面的兩個測試,用繼電器將TX短接到RX上。
TEST1: MOVE.B #1,RELAY ;短接TX到RX,CTS到RTS
MOVE.B #$50,CRA ;復位中止狀態
MOVE.B #$20,CRA ;復位接收器
MOVE.B #$30,CRA ;復位發送器
MOVE.B #$45,CRA ;清除錯誤,啟用TX-RX
MOVE.W #$100,D7 ;設置第一個發送字符
TEST1A:SUBI.B #1,D7 ;D7減1,直到D7 = 0
BEQ RELAY2 ;如果D7 = 0,到下一個測試
MOVE.B D7,THRA ;發送下一個字符到發送器
WAIT1:BTST #0,SRA ;接收器準備好?
BEQ WAIT1
MOVE.B RHRA,D1 ;獲取接收到的字符
CMP.B D7,D1 ;發送的字符 = 接收到的字符?
BEQ TEST1A ;如果是,重復運行
TRAP #15 ;如果失敗,則停止
;
;這個測試利用測試1中檢查信道‘A’的相同方法來檢查信道‘B’。
;只有數據格式已經發生變化。(由于2691沒有地址A2,
;這個測試是對串行信道的一次簡單的重復測試)。
TEST2: MOVE.B #$1A,CRB ;禁用TX-RX,復位MR指針
MOVE.B #7,MRB1 ;奇校驗,8位
MOVE.B #$0F,MR2B ;普通,2個停止位
MOVE.B #$0BB,CSRB ;9600波特
MOVE.B #$50,CRB ;復位中止狀態
MOVE.B #$30,CRB ;復位TX
MOVE.B #$20,CRB ;復位RX
MOVE.B #$45,CRB ;清除錯誤,啟用TX & RX
MOVE.W #$100,D7
TEST2A:SUBI.B #1,D7 ;D7減1
BEQ STOPIT ;如果D7 = 0,停止發送字符
MOVE.B D7,THRB ;如果D7 > 0,寫TX保持寄存器
WAIT2:BTST #0,SRB ;測試RX是否準備好
BEQ WAIT2 ;如果未準備就緒,循環
MOVE.B RHRB,D1 ;收取接收到的字符
CMP.B D7,D1 ;比較TX字符與RX字符
BEQ TEST2A ;如果比較匹配,再次發送
STOPIT:TRAP #15 ;結束線程
END INIT
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -