單片機(jī)原理及其嵌入式應(yīng)用實(shí) 驗(yàn)ppt課件_第1頁(yè)
單片機(jī)原理及其嵌入式應(yīng)用實(shí) 驗(yàn)ppt課件_第2頁(yè)
單片機(jī)原理及其嵌入式應(yīng)用實(shí) 驗(yàn)ppt課件_第3頁(yè)
單片機(jī)原理及其嵌入式應(yīng)用實(shí) 驗(yàn)ppt課件_第4頁(yè)
單片機(jī)原理及其嵌入式應(yīng)用實(shí) 驗(yàn)ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩286頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、單片機(jī)原理及其嵌入式運(yùn)用單片機(jī)原理及其嵌入式運(yùn)用實(shí)實(shí) 驗(yàn)驗(yàn) 根本實(shí)驗(yàn) 綜合實(shí)例根本實(shí)驗(yàn)根本實(shí)驗(yàn) 程序框架程序框架 開(kāi)關(guān)量輸入輸出開(kāi)關(guān)量輸入輸出(IO)實(shí)驗(yàn)實(shí)驗(yàn) 串行通訊及串行通訊及AD轉(zhuǎn)換實(shí)驗(yàn)轉(zhuǎn)換實(shí)驗(yàn) 鍵盤(pán)編程實(shí)驗(yàn)鍵盤(pán)編程實(shí)驗(yàn) 液晶顯示實(shí)驗(yàn)液晶顯示實(shí)驗(yàn) 數(shù)碼管顯示實(shí)驗(yàn)數(shù)碼管顯示實(shí)驗(yàn) FLASH編程實(shí)驗(yàn)編程實(shí)驗(yàn) 定時(shí)器溢出中斷實(shí)驗(yàn)定時(shí)器溢出中斷實(shí)驗(yàn) 定時(shí)器輸入中斷捕捉定時(shí)器輸入中斷捕捉實(shí)驗(yàn)實(shí)驗(yàn)程序框架程序框架 實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)?zāi)康?實(shí)驗(yàn)器材實(shí)驗(yàn)器材 硬件接線硬件接線 軟件功能軟件功能 程序清單程序清單 備注闡明備注闡明實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)?zāi)康?了解程序根本框架了解程序根本框架實(shí)驗(yàn)器材實(shí)驗(yàn)器材: :1.SD-

2、1型在線編程實(shí)驗(yàn)儀型在線編程實(shí)驗(yàn)儀2.導(dǎo)線假設(shè)干導(dǎo)線假設(shè)干硬件接線硬件接線:VCCPTC3PTA7PTA6PTA5PTA4PTA3PTA2PTA1PTA0PTC0PTC1PTC2MOTOROLA GP32 MCU PTC4PTB7PTB6PTB5PTB4PTB3PTB2PTB1PTB0軟件功能軟件功能: PTAPTA口的模擬量輸出,控制指示燈口的模擬量輸出,控制指示燈 程序執(zhí)行指示燈閃爍程序執(zhí)行指示燈閃爍程序清單:程序清單: 文件闡明文件闡明 口地址定義口地址定義 數(shù)據(jù)區(qū)定義數(shù)據(jù)區(qū)定義 主程序主程序 系統(tǒng)初始化及中斷矢量系統(tǒng)初始化及中斷矢量 延時(shí)子程序延時(shí)子程序* *-文件闡明文件闡明-* *

3、文件名文件名:PrgFrame.ASM :PrgFrame.ASM * *硬件銜接硬件銜接:PTA.1:PTA.1接指示燈接指示燈 * *程序描畫(huà)程序描畫(huà): :指示燈指示燈PTA.1PTA.1閃爍閃爍 * *目的目的: :第一個(gè)第一個(gè)Motorola MCUMotorola MCU程序框架程序框架 * *闡明闡明: :提供提供Motorola MCUMotorola MCU的編程框架,供教學(xué)入門(mén)運(yùn)用的編程框架,供教學(xué)入門(mén)運(yùn)用 * *-* *-口地址定義口地址定義-PTA EQU $0000 ;APTA EQU $0000 ;A口數(shù)據(jù)存放器口數(shù)據(jù)存放器DDRA EQU $0004 ;ADDRA

4、EQU $0004 ;A口數(shù)據(jù)方向存放器口數(shù)據(jù)方向存放器RAMstartAddr equ $0040 ;RAMRAMstartAddr equ $0040 ;RAM的起始地址因芯片不同可以更改的起始地址因芯片不同可以更改FlashStartAddr equ $8000 ;FlashStartAddr equ $8000 ;程序開(kāi)場(chǎng)地址因芯片不同可以更改程序開(kāi)場(chǎng)地址因芯片不同可以更改* *數(shù)據(jù)區(qū)定義變量名定義數(shù)據(jù)區(qū)定義變量名定義 org RAMstartAddr ;RAM org RAMstartAddr ;RAM的起始地址的起始地址N1 rmb 1 ;N1 rmb 1 ;變量變量N1,N1,緩

5、沖運(yùn)用緩沖運(yùn)用* *主程序主程序 org FlashStartAddr ; org FlashStartAddr ;程序起始地址程序起始地址MainInit: ;MainInit: ;復(fù)位后程序從此開(kāi)場(chǎng)執(zhí)行復(fù)位后程序從此開(kāi)場(chǎng)執(zhí)行 ; ;系統(tǒng)初始化系統(tǒng)初始化 SEI ; SEI ;制止一切中斷制止一切中斷 LDHX #$023F ; LDHX #$023F ;堆棧初始化,放入堆棧初始化,放入GP32GP32的的RAMRAM最高端最高端 TXS TXS JSR Init0 ; JSR Init0 ;調(diào)系統(tǒng)初始化子程序調(diào)系統(tǒng)初始化子程序Init0Init0,初始學(xué)習(xí)時(shí)跳過(guò)此處,初始學(xué)習(xí)時(shí)跳過(guò)此處 ;

6、I/O ;I/O初始化初始化 BSET 1,DDRA ; BSET 1,DDRA ;設(shè)置設(shè)置PTA.1PTA.1為輸出為輸出 BSET 1,PTA ; BSET 1,PTA ;初始時(shí),初始時(shí),PTA.1PTA.1指示燈指示燈 暗暗 MainLoop: ;MainLoop: ;程序總循環(huán)入口程序總循環(huán)入口 BCLR 1,PTA ;PTA.1 BCLR 1,PTA ;PTA.1指示燈指示燈“亮亮 MOV #$2,N1 ; MOV #$2,N1 ;延時(shí)子程序延時(shí)子程序DelaySubDelaySub的時(shí)間長(zhǎng)度入口的時(shí)間長(zhǎng)度入口 JSR DelaySub ; JSR DelaySub ;調(diào)用延時(shí)子程序

7、調(diào)用延時(shí)子程序 BSET 1,PTA ; BSET 1,PTA ;初始時(shí),初始時(shí),PTA.1PTA.1指示燈指示燈 暗暗 MOV #$4,N1 ; MOV #$4,N1 ;延時(shí)子程序延時(shí)子程序DelaySubDelaySub的時(shí)間長(zhǎng)度入口的時(shí)間長(zhǎng)度入口 JSR DelaySub ; JSR DelaySub ;調(diào)用延時(shí)子程序調(diào)用延時(shí)子程序 ;- ;- JMP MainLoop ; JMP MainLoop ;轉(zhuǎn)總循環(huán)入口處轉(zhuǎn)總循環(huán)入口處Init0: ;Init0: ;系統(tǒng)初始化系統(tǒng)初始化Init0Init0子程序子程序 LDA #%00000001 ; LDA #%00000001 ;初始化初

8、始化CONFIG2CONFIG2 STA $001E STA $001E LDA #%00111101 ; LDA #%00111101 ;初始化初始化CONFIG1CONFIG1 STA $001F STA $001F CLR $0036 ; CLR $0036 ;初始化初始化PTCLPTCL MOV #$01,$0036 MOV #$01,$0036 MOV #$01,$0038 MOV #$01,$0038 MOV #$2C,$0039 MOV #$2C,$0039 MOV #$80,$003A MOV #$80,$003A BSET 5,$0036 BSET 5,$0036 BSET

9、7,$0037 BSET 7,$0037 BSET 4,$0036 BSET 4,$0036 RTS RTS* *-中斷矢量中斷矢量- - ORG $FFFE ; ORG $FFFE ;復(fù)位矢量復(fù)位矢量 DW MainInit DW MainInit延時(shí)子程序DelaySub: ;延時(shí)0.1秒 PSHH ;保據(jù)存放器HX PSHX DelaySub1: LDHX #$FFFF DelaySub2: PSHA ;維護(hù)存放器A LDA #$FFDelaySub3: DBNZA DelaySub3 PULA DBNZX DelaySub2 DBNZA DelaySub1 PULX PULH RTS開(kāi)

10、關(guān)量輸入輸出開(kāi)關(guān)量輸入輸出(IO)實(shí)驗(yàn)實(shí)驗(yàn) 實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)?zāi)康?實(shí)驗(yàn)器材實(shí)驗(yàn)器材 硬件接線硬件接線 程序功能程序功能 程序清單程序清單 備注闡明備注闡明A.3-0A.7-4-A.3-0 COMA COMA STA PTA STA PTA LDA PTB ; LDA PTB ;取開(kāi)關(guān)取開(kāi)關(guān)PTB0PTB0形狀形狀,0-,0-閉合閉合 AND #%00000001 ; AND #%00000001 ;剩下剩下PTB0PTB0位位 STA TmpVar ; STA TmpVar ;放入變量放入變量TmpVarTmpVar NOP NOP LDA PTC ; LDA PTC ;取開(kāi)關(guān)取開(kāi)關(guān)PTC0PTC

11、0形狀形狀,0-,0-閉合閉合 AND #%00000001 ; AND #%00000001 ;剩下剩下PTC0PTC0位位 NOP NOP ADD TmpVar ; ADD TmpVar ;經(jīng)過(guò)此運(yùn)算經(jīng)過(guò)此運(yùn)算 假設(shè)假設(shè)A=0,A=0,兩個(gè)均閉合兩個(gè)均閉合 ; ;假設(shè)假設(shè)=1,=1,有一個(gè)閉合有一個(gè)閉合;=2,;=2,均未閉合均未閉合 CBEQA #$0,Light0 ; CBEQA #$0,Light0 ;比較比較, ,相等轉(zhuǎn)移相等轉(zhuǎn)移,A=0,A=0轉(zhuǎn)向轉(zhuǎn)向Light0Light0 NOP NOP CBEQA #$1,Light1 ;A=1 CBEQA #$1,Light1 ;A=1轉(zhuǎn)

12、轉(zhuǎn)Light1Light1 NOP ;A=2, NOP ;A=2,兩排均不亮兩排均不亮 LDA #$FF ; LDA #$FF ;兩排燈均不亮兩排燈均不亮 1- 1-不亮不亮 STA PTB STA PTB STA PTC STA PTC BRA IO_End ; BRA IO_End ;轉(zhuǎn)轉(zhuǎn)IO_END,IO_END,延時(shí)延時(shí)Light0:Light0: LDA #$00 ; LDA #$00 ;兩排燈均亮兩排燈均亮 0- 0-亮亮 STA PTB STA PTB STA PTC STA PTC BRA IO_End ; BRA IO_End ;無(wú)條件轉(zhuǎn)無(wú)條件轉(zhuǎn)IO_ENDIO_ENDLig

13、ht1:Light1: LDA Light_BC ; LDA Light_BC ;兩排燈之一亮兩排燈之一亮 0- 0-亮亮 STA PTB ; STA PTB ;驅(qū)動(dòng)驅(qū)動(dòng)B B口燈口燈 NEGA ; NEGA ;求補(bǔ)命令求補(bǔ)命令 STA PTC ; STA PTC ;驅(qū)動(dòng)驅(qū)動(dòng)B B口燈口燈 STA Light_BC ; STA Light_BC ;保管形狀保管形狀I(lǐng)O_End:IO_End: LDA #$FE ; LDA #$FE ;延時(shí)延時(shí)Delay1:Delay1: LDX #$FC LDX #$FCDelay2:Delay2: NOP NOP NOP NOP NOP NOP DBNZX

14、Delay2 DBNZX Delay2 DBNZA Delay1 DBNZA Delay1 BRA Start ; BRA Start ;無(wú)條件轉(zhuǎn)開(kāi)場(chǎng)處無(wú)條件轉(zhuǎn)開(kāi)場(chǎng)處* *-* *-子程序子程序-* *Init0: ;Init0: ;系統(tǒng)初始化系統(tǒng)初始化Init0Init0子程序子程序 LDA #%00000001 ; LDA #%00000001 ;初始化初始化CONFIG2CONFIG2 STA $001E STA $001E LDA #%00111101 ; LDA #%00111101 ;初始化初始化CONFIG1CONFIG1 STA $001F STA $001F CLR $003

15、6 ; CLR $0036 ;初始化初始化PTCLPTCL MOV #$01,$0036 MOV #$01,$0036 MOV #$01,$0038 MOV #$01,$0038 MOV #$2C,$0039 MOV #$2C,$0039 MOV #$80,$003A MOV #$80,$003A BSET 5,$0036 BSET 5,$0036 BSET 7,$0037 BSET 7,$0037 BSET 4,$0036 BSET 4,$0036 RTS RTS* *-復(fù)位矢量復(fù)位矢量- - ORG $FFFE ; ORG $FFFE ;復(fù)位矢量復(fù)位矢量 DW MainInit DW Ma

16、inInit備注闡明: 僅作為根本教學(xué)例程僅作為根本教學(xué)例程串行通訊及串行通訊及ADAD轉(zhuǎn)換實(shí)驗(yàn)轉(zhuǎn)換實(shí)驗(yàn) 實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)?zāi)康?實(shí)驗(yàn)器材實(shí)驗(yàn)器材 硬件接線硬件接線 VB界面界面 軟件功能軟件功能 程序清單程序清單 備注闡明備注闡明實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)?zāi)康?A/DA/D轉(zhuǎn)換,轉(zhuǎn)換,單片機(jī)異步串行通訊單片機(jī)異步串行通訊 實(shí)驗(yàn)器材實(shí)驗(yàn)器材: :1.SD-1型在線編程實(shí)驗(yàn)儀型在線編程實(shí)驗(yàn)儀2.導(dǎo)線假設(shè)干導(dǎo)線假設(shè)干硬件接線硬件接線:VCCPTC3PTA7PTA6PTA5PTA4PTA3PTA2PTA1PTA0PTC0PTC1PTC2MOTOROLA GP32 MCU PTC4PTB7PTB6PTB5PTB4PTB3

17、PTB2PTB1PTB0VCCVB界面:界面:軟件功能軟件功能: 由由PORTBPORTB口的模擬量輸入,經(jīng)過(guò)單片機(jī)的口的模擬量輸入,經(jīng)過(guò)單片機(jī)的A/DA/D轉(zhuǎn)換器采集轉(zhuǎn)換器采集8 8路數(shù)據(jù),并放在路數(shù)據(jù),并放在ADBUFADBUF開(kāi)開(kāi)場(chǎng)的地址中。場(chǎng)的地址中。 再在再在INBUFINBUF中放開(kāi)關(guān)量。中放開(kāi)關(guān)量。 發(fā)發(fā)8686給給PCPC機(jī)作為握手信號(hào),進(jìn)展通訊測(cè)機(jī)作為握手信號(hào),進(jìn)展通訊測(cè)試,試,PCPC機(jī)判別后確認(rèn),發(fā)機(jī)判別后確認(rèn),發(fā)8686作為確認(rèn)信作為確認(rèn)信號(hào),單片機(jī)收到號(hào),單片機(jī)收到8686后,把模擬量后,把模擬量0-70-7和開(kāi)和開(kāi)關(guān)量送關(guān)量送PCPC機(jī)顯示。機(jī)顯示。程序清單:程序清

18、單: 文件闡明文件闡明 口地址定義口地址定義 SCI存放器存放器 A/D存放器存放器 數(shù)據(jù)區(qū)定義數(shù)據(jù)區(qū)定義 主程序主程序 A/D轉(zhuǎn)換轉(zhuǎn)換 串行通訊輸出串行通訊輸出 串行通訊輸入串行通訊輸入 從從PC機(jī)接納數(shù)據(jù),機(jī)接納數(shù)據(jù),并存儲(chǔ)后送并存儲(chǔ)后送PTA輸輸出出 把在把在INBUF和和ADBUFF的數(shù)據(jù)送的數(shù)據(jù)送PC機(jī)輸出機(jī)輸出 中斷矢量中斷矢量* *-文件闡明文件闡明-* * *文件名:文件名:sci.assci.as* *硬件銜接:硬件銜接:PORTAPORTA口輸出它的口輸出它的PTA7-0PTA7-0接接OUTOUT的的7-07-0號(hào)號(hào)* *指示燈指示燈A0A0作為運(yùn)轉(zhuǎn)指示不受其它數(shù)據(jù)控制作

19、為運(yùn)轉(zhuǎn)指示不受其它數(shù)據(jù)控制PORTBPORTB作為作為ADAD輸入銜接,輸入銜接,* *PORTBPORTB口為模擬量輸入口口為模擬量輸入口,PORTC,PORTC的的C0-4C0-4接接ININ的的5 5個(gè)撥位開(kāi)關(guān)個(gè)撥位開(kāi)關(guān)0-40-4作為開(kāi)關(guān)作為開(kāi)關(guān)* *輸入串行口與微機(jī)串行口相接輸入串行口與微機(jī)串行口相接96009600,N N,8 8,1 1* *程序描畫(huà):程序描畫(huà):1.1.由由PORTBPORTB口的模擬量輸入,經(jīng)過(guò)單片機(jī)的口的模擬量輸入,經(jīng)過(guò)單片機(jī)的A/DA/D轉(zhuǎn)換器采集轉(zhuǎn)換器采集8 8* *路數(shù)據(jù),并放在路數(shù)據(jù),并放在ADBUFADBUF開(kāi)場(chǎng)的地址中開(kāi)場(chǎng)的地址中* * 2. 2.

20、再在再在INBUFINBUF中放開(kāi)關(guān)量中放開(kāi)關(guān)量* * 3. 3.發(fā)發(fā)8686給給PCPC機(jī)作為握手信號(hào),進(jìn)展通訊測(cè)試機(jī)作為握手信號(hào),進(jìn)展通訊測(cè)試,PC,PC機(jī)判別后確機(jī)判別后確* * 認(rèn)認(rèn), ,發(fā)發(fā)8686作為確認(rèn)信號(hào),單片機(jī)收到作為確認(rèn)信號(hào),單片機(jī)收到8686后后, ,把模擬量把模擬量 0-7 0-7和和* * 開(kāi)關(guān)量送開(kāi)關(guān)量送PCPC機(jī)顯示機(jī)顯示* *目的:目的:A/DA/D轉(zhuǎn)換,單片機(jī)異步串行通訊轉(zhuǎn)換,單片機(jī)異步串行通訊 * *-* * *-口地址定義口地址定義-PTA EQU $0000 ;APTA EQU $0000 ;A口數(shù)據(jù)存放器口數(shù)據(jù)存放器PTB EQU $0001 ;BPT

21、B EQU $0001 ;B口數(shù)據(jù)存放器口數(shù)據(jù)存放器PTC EQU $0002 ;CPTC EQU $0002 ;C口數(shù)據(jù)存放器口數(shù)據(jù)存放器PTD EQU $0003 ;DPTD EQU $0003 ;D口數(shù)據(jù)存放器口數(shù)據(jù)存放器DDRA EQU $0004 ;ADDRA EQU $0004 ;A口數(shù)據(jù)方向存放器口數(shù)據(jù)方向存放器DDRB EQU $0005 ;BDDRB EQU $0005 ;B口數(shù)據(jù)方向存放器口數(shù)據(jù)方向存放器DDRC EQU $0006 ;CDDRC EQU $0006 ;C口數(shù)據(jù)方向存放器口數(shù)據(jù)方向存放器DDRD EQU $0007 ;DDDRD EQU $0007 ;D口數(shù)

22、據(jù)方向存放器口數(shù)據(jù)方向存放器DDRE EQU $0008 ;EDDRE EQU $0008 ;E口數(shù)據(jù)存放器口數(shù)據(jù)存放器* *-SCI-SCI存放器存放器-SCS1 EQU $0016 ;SCISCS1 EQU $0016 ;SCI形狀存放器形狀存放器1 1B-SCTE EQU 7 ;B-SCTE EQU 7 ;發(fā)送緩沖區(qū)空標(biāo)志位發(fā)送緩沖區(qū)空標(biāo)志位B-TC EQU 6 ;B-TC EQU 6 ;發(fā)送完成標(biāo)志位發(fā)送完成標(biāo)志位B-SCRF EQU 5 ;B-SCRF EQU 5 ;接納器滿標(biāo)志位接納器滿標(biāo)志位SCDR EQU $0018 ;SCISCDR EQU $0018 ;SCI數(shù)據(jù)存放器數(shù)據(jù)

23、存放器* *-A/D-A/D存放器存放器-ADSCR EQU $003C ;A/DADSCR EQU $003C ;A/D轉(zhuǎn)換形狀和控制存放器轉(zhuǎn)換形狀和控制存放器B-COCO EQU 7 ;B-COCO EQU 7 ;轉(zhuǎn)換完成標(biāo)志位轉(zhuǎn)換完成標(biāo)志位ADR EQU $003D ;A/DADR EQU $003D ;A/D轉(zhuǎn)換數(shù)據(jù)存放器轉(zhuǎn)換數(shù)據(jù)存放器ADCLK EQU $003E ;A/DADCLK EQU $003E ;A/D轉(zhuǎn)換輸入時(shí)鐘存放器轉(zhuǎn)換輸入時(shí)鐘存放器RAMstartAddr equ $0040 ;RAMRAMstartAddr equ $0040 ;RAM的起始地址因芯片不同可以更的起

24、始地址因芯片不同可以更改改FlashStartAddr equ $8000 ;FlashStartAddr equ $8000 ;程序開(kāi)場(chǎng)地址因芯片不同可以更程序開(kāi)場(chǎng)地址因芯片不同可以更改改* *-數(shù)據(jù)區(qū)定義變量定義數(shù)據(jù)區(qū)定義變量定義- - ORG RAMstartAddr ;RAM ORG RAMstartAddr ;RAM的起始地址的起始地址INBUF RMB 1 ;1INBUF RMB 1 ;1字節(jié)存放字節(jié)存放5 5位開(kāi)關(guān)量位開(kāi)關(guān)量ADBUF RMB 8 ;8ADBUF RMB 8 ;8字節(jié)存放字節(jié)存放8 8路路A/DA/D轉(zhuǎn)換轉(zhuǎn)換結(jié)果結(jié)果ONOFF RMB 1 ;1ONOFF RMB

25、1 ;1字節(jié)存放從字節(jié)存放從PCPC的數(shù)據(jù)的數(shù)據(jù) TMPVAR RMB 1 ;TMPVAR RMB 1 ;暫存運(yùn)用暫存運(yùn)用* *-主程序主程序- - ORG FlashStartAddr ; ORG FlashStartAddr ;程序起始地址程序起始地址MainInit:MainInit: NOP NOP LDA #$3E ;A/D LDA #$3E ;A/D初始化初始化2 2分頻、運(yùn)用內(nèi)部總線時(shí)分頻、運(yùn)用內(nèi)部總線時(shí)鐘鐘 STA ADCLK STA ADCLK LDA #$FF ; LDA #$FF ;定義定義PORTAPORTA輸出輸出 STA DDRA STA DDRA LDA #$00

26、 LDA #$00 STA PTA STA PTA STA ONOFF ;ONOFF=0 STA ONOFF ;ONOFF=0 LDA #$00 ; LDA #$00 ;定義定義PORTBPORTB,PORTCPORTC作為輸入作為輸入 STA DDRB STA DDRB STA DDRC STA DDRC* *-A/D-A/D轉(zhuǎn)換轉(zhuǎn)換-Main: Main: NOP ; NOP ;循環(huán)獲得循環(huán)獲得8 8路路ADAD值值 LDHX #$0 ;H LDHX #$0 ;H:X=0X=0GA-REPEAT:GA-REPEAT: TXA ;X TXA ;X存放器送到累加器存放器送到累加器 STA AD

27、SCR ; STA ADSCR ;選定一路選定一路A/DA/D,啟動(dòng)轉(zhuǎn)換,啟動(dòng)轉(zhuǎn)換 BRCLR 7,ADSCR, BRCLR 7,ADSCR,* * ; ;等待等待A/DA/D轉(zhuǎn)換完成轉(zhuǎn)換完成 LDA ADR ;A/D LDA ADR ;A/D轉(zhuǎn)換結(jié)果給轉(zhuǎn)換結(jié)果給A A STA ADBUF,X ;A STA ADBUF,X ;A給給ADBUF+XADBUF+X,儲(chǔ)存數(shù)據(jù),儲(chǔ)存數(shù)據(jù) AIX #1 ; AIX #1 ;下一存儲(chǔ)單元下一存儲(chǔ)單元 CPX #$08 ; CPX #$08 ;判別判別8 8路轉(zhuǎn)換能否完成路轉(zhuǎn)換能否完成 BNE GA-REPEAT ; BNE GA-REPEAT ;循環(huán)循環(huán)

28、8 8次轉(zhuǎn)換次轉(zhuǎn)換8 8個(gè)通道模擬個(gè)通道模擬量量* *-串行通訊輸出串行通訊輸出-GET-IN:GET-IN: LDA PTC ;5 LDA PTC ;5位開(kāi)關(guān)量采集位開(kāi)關(guān)量采集 STA INBUF ; STA INBUF ;暫放暫放INBUFINBUF NOP NOP LDA #$56 ; LDA #$56 ;把把86861616進(jìn)制數(shù)進(jìn)制數(shù)5656為握為握 ; ;手信號(hào)送出到手信號(hào)送出到PCPC中中 BRCLR 7,SCS1, BRCLR 7,SCS1,* * ; ;等待以前數(shù)據(jù)全部發(fā)出,等待以前數(shù)據(jù)全部發(fā)出, ;SCTE ;SCTE置置1 1,發(fā)送緩沖區(qū)空,發(fā)送緩沖區(qū)空 STA SCDR

29、 ; STA SCDR ;發(fā)送緩沖區(qū)空時(shí),發(fā)送緩沖區(qū)空時(shí), ; ;可向可向SCISCI數(shù)據(jù)存放器送數(shù)數(shù)據(jù)存放器送數(shù) * *-串行通訊輸入串行通訊輸入- NOP NOP LDHX #0 LDHX #0WS-REPE1:WS-REPE1: BRSET 5,SCS1,WS-RECE1 ; BRSET 5,SCS1,WS-RECE1 ;測(cè)試測(cè)試SCRFSCRF位,位, ; ;判別接納緩沖器能否滿判別接納緩沖器能否滿 NOP NOP NOP NOP AIX #1 ; AIX #1 ;延時(shí)等待延時(shí)等待 CPHX #$FFFF CPHX #$FFFF BNE WS-REPE1 BNE WS-REPE1 BR

30、A DISP1 ; BRA DISP1 ;超時(shí)退出超時(shí)退出WS-RECE1:WS-RECE1: LDA SCDR ; LDA SCDR ;讀取收到的數(shù)據(jù)讀取收到的數(shù)據(jù) CMP #$56 ; CMP #$56 ;判別能否為確認(rèn)信號(hào)判別能否為確認(rèn)信號(hào)86 86 BNE DISP1 ; BNE DISP1 ;不是退出,是就開(kāi)場(chǎng)通不是退出,是就開(kāi)場(chǎng)通訊訊 NOP NOP LDHX #0 LDHX #0WS-REPE2:WS-REPE2: BRSET 5,SCS1,WS-RECE2 ; BRSET 5,SCS1,WS-RECE2 ;測(cè)試測(cè)試SCRFSCRF位,位, ; ;判別接納緩沖器能否滿判別接納緩沖

31、器能否滿 NOP NOP NOP NOP AIX #1 ; AIX #1 ;延時(shí)等待延時(shí)等待 CPHX #$6688 CPHX #$6688 BNE WS-REPE2 ; BNE WS-REPE2 ;超時(shí)退出超時(shí)退出 BRA DISP1 BRA DISP1* *-從從PCPC機(jī)接納數(shù)據(jù),并儲(chǔ)存后送機(jī)接納數(shù)據(jù),并儲(chǔ)存后送PTAPTA輸出輸出-* *-A.0A.0不受影響不受影響-WS-RECE2WS-RECE2 LDA SCDR LDA SCDR NOP NOP AND #$FE ;A0=0 AND #$FE ;A0=0 STA TMPVAR ; STA TMPVAR ;暫時(shí)緩存暫時(shí)緩存 LDA

32、 ONOFF LDA ONOFF AND #$1 ; AND #$1 ;留下留下A.0A.0 ORA TMPVAR ; ORA TMPVAR ;處置接納的數(shù)據(jù),放在處置接納的數(shù)據(jù),放在A A中中 STA ONOFF ; STA ONOFF ;儲(chǔ)存接納數(shù)據(jù)在儲(chǔ)存接納數(shù)據(jù)在ONOFFONOFF中中 NOP ; NOP ;送送A/DA/D值值* *-把在把在INBUFINBUF和和ADBUFFADBUFF的數(shù)據(jù)送的數(shù)據(jù)送PCPC機(jī)輸出機(jī)輸出- LDHX #$0 LDHX #$0SA-REPEAT:SA-REPEAT: LDA INBUF,X LDA INBUF,X BRCLR 7,SCS1, BRC

33、LR 7,SCS1,* * ;SCTE ;SCTE置置1 1, ; ;發(fā)送緩沖區(qū)空發(fā)送緩沖區(qū)空 STA SCDR ;A STA SCDR ;A給給SCDRSCDR,發(fā)送出去,發(fā)送出去 AIX #1 AIX #1 CPX #$09 ;9 CPX #$09 ;9個(gè)數(shù)據(jù)輸出個(gè)數(shù)據(jù)輸出 BNE SA-REPEAT BNE SA-REPEATDISP1:DISP1: NOP NOP LDA ONOFF LDA ONOFF EOR #$1 ; EOR #$1 ;把原把原A.0A.0取反,使燈閃爍取反,使燈閃爍 STA ONOFF STA ONOFF STA PTA STA PTA BRA MAIN BRA

34、 MAIN* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *-中斷矢量中斷矢量- - ORG $FFFE ; ORG $FFFE ;復(fù)位矢量復(fù)位矢量 DW MainInit: DW MainInit:備注闡明備注闡明: 單片機(jī)與單片機(jī)與PCPC機(jī)運(yùn)用串行異機(jī)運(yùn)用串行異步通訊。在此程序下,經(jīng)過(guò)步通訊。在此程序下,經(jīng)過(guò)PCPC機(jī)下的機(jī)下的VB6.0VB6.0控制程序構(gòu)成一定控制程序構(gòu)成一定功能的微機(jī)控制系統(tǒng)。功能的微機(jī)控制系統(tǒng)。鍵盤(pán)編程實(shí)驗(yàn)鍵盤(pán)編程實(shí)驗(yàn) 實(shí)驗(yàn)?zāi)?/p>

35、的實(shí)驗(yàn)?zāi)康?實(shí)驗(yàn)器材實(shí)驗(yàn)器材 硬件接線硬件接線 軟件功能軟件功能 程序清單程序清單 備注闡明備注闡明實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)?zāi)康?鍵盤(pán)查詢,鍵盤(pán)中斷,鍵盤(pán)查詢,鍵盤(pán)中斷,鍵值識(shí)別,鍵盤(pán)編碼鍵值識(shí)別,鍵盤(pán)編碼. .實(shí)驗(yàn)器材實(shí)驗(yàn)器材: :1.SD-1型在線編程實(shí)驗(yàn)板型在線編程實(shí)驗(yàn)板2.導(dǎo)線假設(shè)干導(dǎo)線假設(shè)干硬件接線硬件接線: :紅線為學(xué)生接線紅線為學(xué)生接線PTC3PTA7PTA6PTA5PTA4PTA3PTA2PTA1PTA0PTC0PTC1PTC2MOTOROLA GP32 MCUPTC4內(nèi)置電阻內(nèi)置電阻VCC 2 DE 鍵值表鍵值表: : 1 EE 3 BE 4 7E 5 ED 6 DD 7 DD 8 7D

36、 9 EB 0 DB A BB B 7B C E7 D D7 E B7 F 77鍵值鍵值定義定義軟件功能軟件功能: : 開(kāi)場(chǎng)運(yùn)轉(zhuǎn)時(shí),指示燈開(kāi)場(chǎng)運(yùn)轉(zhuǎn)時(shí),指示燈7 7亮,等待鍵盤(pán)按鍵。亮,等待鍵盤(pán)按鍵。 按下按下“D D鍵進(jìn)入運(yùn)轉(zhuǎn)形狀,指示燈鍵進(jìn)入運(yùn)轉(zhuǎn)形狀,指示燈7 7閃爍。閃爍。 在指示燈在指示燈7 7閃爍形狀,按閃爍形狀,按“0-90-9恣意一鍵,恣意一鍵,指示燈指示燈3-03-0顯示對(duì)應(yīng)的二進(jìn)制值顯示對(duì)應(yīng)的二進(jìn)制值0 0為燈為燈亮,亮,1 1為燈暗,如為燈暗,如1 1的二進(jìn)制為的二進(jìn)制為00010001,顯,顯示應(yīng)為示應(yīng)為“亮亮亮暗,按亮亮亮暗,按“A-FA-F恣意一恣意一鍵,指示燈鍵,指示

37、燈3-03-0全暗。全暗。程序清單程序清單: : 程序闡明程序闡明 口地址定義口地址定義 數(shù)據(jù)區(qū)定義數(shù)據(jù)區(qū)定義 主程序主程序 鍵盤(pán)中斷初始化鍵盤(pán)中斷初始化子程序子程序 掃描讀鍵值子程序掃描讀鍵值子程序 鍵盤(pán)中斷子程序鍵盤(pán)中斷子程序 鍵盤(pán)轉(zhuǎn)化為詳細(xì)值鍵盤(pán)轉(zhuǎn)化為詳細(xì)值子程序子程序 延時(shí)程序子程序延時(shí)程序子程序 中斷矢量中斷矢量* *-程序闡明程序闡明-* * *文件名:文件名:key.asmkey.asm* *運(yùn)用運(yùn)用4 4* *4 4鍵盤(pán)實(shí)現(xiàn)輸入控制鍵盤(pán)實(shí)現(xiàn)輸入控制* *硬件銜接:硬件銜接:* * PTA7-4 PTA7-4接接4 4根鍵盤(pán)列線根鍵盤(pán)列線X4-1X4-1,PTA3-0PTA3-0

38、接接4 4根鍵盤(pán)行線根鍵盤(pán)行線* * Y4-1Y4-1* * PTC4 PTC4接指示燈接指示燈7 7OUT7OUT7,PTC3-0PTC3-0分別接指示燈分別接指示燈3-03-0OUT3-0OUT3-0* *程序描畫(huà):程序描畫(huà):1.1.開(kāi)場(chǎng)運(yùn)轉(zhuǎn)時(shí),指示燈開(kāi)場(chǎng)運(yùn)轉(zhuǎn)時(shí),指示燈7 7亮,等待鍵盤(pán)按鍵亮,等待鍵盤(pán)按鍵* * 2. 2.按下按下“D D鍵進(jìn)入運(yùn)轉(zhuǎn)形狀,指示燈鍵進(jìn)入運(yùn)轉(zhuǎn)形狀,指示燈7 7閃爍閃爍* * 3. 3.在指示燈在指示燈7 7閃爍形狀,按閃爍形狀,按“0-90-9恣意一鍵,指示燈恣意一鍵,指示燈3-03-0* *顯示對(duì)應(yīng)的二進(jìn)制值顯示對(duì)應(yīng)的二進(jìn)制值0 0為燈亮,為燈亮,1 1為燈

39、暗,如為燈暗,如1 1的二進(jìn)制為的二進(jìn)制為00010001* *顯示應(yīng)為顯示應(yīng)為“亮亮亮暗,按亮亮亮暗,按“A-FA-F恣意一鍵,指示燈恣意一鍵,指示燈3-03-0全暗。全暗。* *目的:鍵盤(pán)查詢,鍵盤(pán)中斷,鍵值識(shí)別,鍵盤(pán)編碼目的:鍵盤(pán)查詢,鍵盤(pán)中斷,鍵值識(shí)別,鍵盤(pán)編碼* *-* *-口地址定義口地址定義-DDRA EQU $0004 ;A口數(shù)據(jù)方向存放器口數(shù)據(jù)方向存放器PTA EQU $0000 ;A口數(shù)據(jù)存放器口數(shù)據(jù)存放器PTAPUE EQU $000D ;A口上拉電阻允許存放器口上拉電阻允許存放器DDRC EQU $0006 ;C口數(shù)據(jù)方向存放器口數(shù)據(jù)方向存放器PTC EQU $0002

40、 ;C口數(shù)據(jù)存放器口數(shù)據(jù)存放器INTKBSCR EQU $001A ;鍵盤(pán)形狀和控制存放器鍵盤(pán)形狀和控制存放器INTKBIER EQU $001B ;鍵盤(pán)中斷允許存放器鍵盤(pán)中斷允許存放器* *-數(shù)據(jù)區(qū)定義變量定義數(shù)據(jù)區(qū)定義變量定義- ORG $0090 ORG $0090TMPVAR1 RMB 1 ;TMPVAR1 RMB 1 ;變量變量TMPVAR1TMPVAR1,緩沖運(yùn)用,緩沖運(yùn)用TMPVAR2 RMB 1 ;TMPVAR2 RMB 1 ;變量變量TMPVAR2TMPVAR2,緩沖運(yùn)用,緩沖運(yùn)用KBVALUE RMB 1 ;KBVALUE RMB 1 ;存放鍵盤(pán)按鍵值存放鍵盤(pán)按鍵值PTCS

41、TATE RMB 1 ;PTCPTCSTATE RMB 1 ;PTC口形狀變量口形狀變量RAMstartAddr equ $0040 ;RAMRAMstartAddr equ $0040 ;RAM的起始地址因芯片不同可以的起始地址因芯片不同可以更改更改FlashStartAddr equ $8000 ;FlashStartAddr equ $8000 ;程序開(kāi)場(chǎng)地址因芯片不同可以程序開(kāi)場(chǎng)地址因芯片不同可以更改更改* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

42、ORG FlashStartAddr ; ORG FlashStartAddr ;程序起始地址程序起始地址* *-主程序主程序-MainInit:MainInit: NOP NOP LDA #$00 ; LDA #$00 ;定義定義C C口之前復(fù)位口之前復(fù)位PTCPTC STA PTC STA PTC LDA #%00011111 ; LDA #%00011111 ;定義定義C C口口4-04-0為輸出為輸出 STA DDRC ;C STA DDRC ;C口接指示燈口接指示燈 STA PTC ; STA PTC ;初始時(shí)指示燈熄滅初始時(shí)指示燈熄滅 BCLR 4,PTC ;PTC4 BCLR 4

43、,PTC ;PTC4為為0 0,指示燈,指示燈7 7點(diǎn)亮點(diǎn)亮 ; ;表示進(jìn)入開(kāi)場(chǎng)形狀表示進(jìn)入開(kāi)場(chǎng)形狀;-A;-A口接鍵盤(pán),查詢等待按鍵口接鍵盤(pán),查詢等待按鍵- - LDA #$00 ; LDA #$00 ;定義定義A A口前復(fù)位口前復(fù)位PTAPTA STA PTA STA PTA LDA #%00001111 LDA #%00001111 STA DDRA STA DDRA LDA #%11110000 LDA #%11110000 STA PTAPUE STA PTAPUEMainIni1:MainIni1: JSR KBA ; JSR KBA ;獲得鍵值在獲得鍵值在A A中中 STA KB

44、VALUE ; STA KBVALUE ;鍵值放在鍵值放在KBVALUEKBVALUE中中 ; ;作為作為KBdefKBdef的入口的入口 JSR KBdef ; JSR KBdef ;詳細(xì)值在詳細(xì)值在A A中中 cmp #$46 ;ASCII cmp #$46 ;ASCII“F“F能否為能否為$46$46 BNE MainIni1 ; BNE MainIni1 ;不是等待不是等待“F“F鍵鍵;-;-設(shè)置鍵盤(pán)中斷設(shè)置鍵盤(pán)中斷-JSR KBInit ;JSR KBInit ;已按已按“F“F鍵,進(jìn)入運(yùn)轉(zhuǎn)形狀,鍵,進(jìn)入運(yùn)轉(zhuǎn)形狀, ; ;執(zhí)行鍵盤(pán)中斷初始化子程序執(zhí)行鍵盤(pán)中斷初始化子程序 BCLR 1

45、,INTKBSCR ; BCLR 1,INTKBSCR ;開(kāi)放鍵盤(pán)中斷開(kāi)放鍵盤(pán)中斷 CLI CLI ;-開(kāi)場(chǎng)總循環(huán)處置鍵盤(pán)開(kāi)場(chǎng)總循環(huán)處置鍵盤(pán)-Start: NOP;-使燈閃爍使燈閃爍- BCLR 4,PTC ;PTA4=0,電亮指示燈,電亮指示燈7 LDA #$08 JSR Delaysub BSET 4,PTC ;PTA4=1,熄滅指示燈,熄滅指示燈7 LDA #$08 JSR Delaysub JSR Kbde ; JSR Kbde ;執(zhí)行鍵盤(pán)轉(zhuǎn)化為詳細(xì)值子程序,執(zhí)行鍵盤(pán)轉(zhuǎn)化為詳細(xì)值子程序, ; ;轉(zhuǎn)成鍵定義值轉(zhuǎn)成鍵定義值 CMP #$39 ; CMP #$39 ;測(cè)試能否是測(cè)試能否是0-

46、90-9 BHI Start1 ; BHI Start1 ;大于大于ASCIIASCII“9 9到到Start1Start1 SUB #$30 ; SUB #$30 ;數(shù)字實(shí)踐值數(shù)字實(shí)踐值=ASCII=ASCII值值-$30-$30 STA PTC ; STA PTC ;送送PTCPTC口口, ,由指示燈由指示燈3-03-0顯示顯示 BRA Start BRA StartStart1:Start1: LDA #$FF ; LDA #$FF ;大于大于ASCIIASCII“9 9, ,消滅指示燈消滅指示燈 STA PTC STA PTC JMP Start ; JMP Start ;繼續(xù)循環(huán)處置

47、繼續(xù)循環(huán)處置* *- -鍵盤(pán)中斷初始化子程序從鍵盤(pán)中斷初始化子程序從KBInitKBInit開(kāi)場(chǎng)開(kāi)場(chǎng)-* *功能:對(duì)被定義為鍵盤(pán)中斷的引腳初始化,但未開(kāi)放鍵盤(pán)中斷功能:對(duì)被定義為鍵盤(pán)中斷的引腳初始化,但未開(kāi)放鍵盤(pán)中斷* *占用占用CPUCPU內(nèi)存放器:內(nèi)存放器:A A* *-KBInit:KBInit: LDA #$00 ; LDA #$00 ;定義定義A A口之前復(fù)位口之前復(fù)位PTAPTA STA PTA STA PTA LDA #%00001111 ; LDA #%00001111 ;定義定義A A口口7-47-4輸入作為列,輸入作為列, ;3-0 ;3-0輸出作為行輸出作為行 STA D

48、DRA STA DDRA LDA #%11110000 ; LDA #%11110000 ;定義定義A A口口7-47-4有上拉電阻有上拉電阻 STA PTAPUE STA PTAPUE BSET 1,INTKBSCR ; BSET 1,INTKBSCR ;屏蔽鍵盤(pán)中斷屏蔽鍵盤(pán)中斷 LDA #%11110000 ; LDA #%11110000 ;允許允許KBIE7-4PINKBIE7-4PIN中斷進(jìn)入中斷進(jìn)入 STA INTKBIER STA INTKBIER BSET 2,INTKBSCR ; BSET 2,INTKBSCR ;去除鍵盤(pán)中斷去除鍵盤(pán)中斷 RTS RTS* *-掃描讀鍵值子程

49、序從掃描讀鍵值子程序從KBAKBA開(kāi)場(chǎng)開(kāi)場(chǎng)-* *功能功能: :掃描一次接在掃描一次接在PTAPTA口的口的4 4* *4 4鍵盤(pán)鍵盤(pán)PTA7-4PTA7-4接接4 4根鍵盤(pán)根鍵盤(pán)* *X4-1X4-1,PTA3-0PTA3-0接接4 4根鍵盤(pán)行線根鍵盤(pán)行線Y4-1Y4-1上的按鍵使上的按鍵使* *用行掃描法,鍵值放在用行掃描法,鍵值放在A A中中, ,假設(shè)無(wú)按鍵,假設(shè)無(wú)按鍵,A A中值中值$FF$FF* *占用內(nèi)存:占用內(nèi)存:TMPVAR1TMPVAR1緩沖運(yùn)用緩沖運(yùn)用* *出口:出口:A=A=鍵值鍵值* *-KBA:KBA: MOV #%11111110,TMPVAR1 ; MOV #%1

50、1111110,TMPVAR1 ;第一根行線為第一根行線為0 0 LDX #$04 ; LDX #$04 ;掃描掃描4 4根行線根行線KB1:KB1: LDA PTA ; LDA PTA ;取取PTAPTA給給A A ORA #%00001111 ;PTA7-4 ORA #%00001111 ;PTA7-4保管原態(tài),保管原態(tài),PTA3-0PTA3-0為為1 1 AND TMPVAR1 ; AND TMPVAR1 ;令令PTAn=0PTAn=0,n=0n=0,1 1,2 2,3 3 STA PTA ; STA PTA ;處置后給處置后給PTAPTA以便查詢以便查詢 NOP NOP NOP NOP

51、 LDA PTA ; LDA PTA ;查第查第n n列上能否有鍵按下列上能否有鍵按下 AND #%11110000 ; AND #%11110000 ;保管保管PTA7-4PTA7-4列值,令低列值,令低PTA3-0=0PTA3-0=0 CBEQA #$F0,KB2 ;A CBEQA #$F0,KB2 ;A等于等于$F0$F0,本行線沒(méi)鍵按下,本行線沒(méi)鍵按下 ;A ;A不等于不等于$F0,$F0,本行有鍵按下本行有鍵按下 LDA PTA ;A LDA PTA ;A放鍵值放鍵值 BRA KB3 ; BRA KB3 ;轉(zhuǎn)到轉(zhuǎn)到KB3KB3終了中斷終了中斷KB2:KB2: SEC ; SEC ;令

52、令C=1C=1 ROL TMPVAR1 ; ROL TMPVAR1 ;使下一個(gè)行線為使下一個(gè)行線為0 0,查下一行,查下一行 DBNZX KB1 ; DBNZX KB1 ;對(duì)行線循環(huán)對(duì)行線循環(huán) LDA #$FF ; LDA #$FF ;沒(méi)有鍵被按下為沒(méi)有鍵被按下為$FF$FFKB3:RTSKB3:RTS* *-鍵盤(pán)中斷子程序從鍵盤(pán)中斷子程序從KBintKBint開(kāi)場(chǎng)開(kāi)場(chǎng)-* *功能:鍵盤(pán)中斷程序,鍵值放入內(nèi)存功能:鍵盤(pán)中斷程序,鍵值放入內(nèi)存KBVALUEKBVALUE中中* *調(diào)用子程序:掃描法讀鍵值子程序調(diào)用子程序:掃描法讀鍵值子程序KBAKBA,* * 鍵盤(pán)中斷初始化子程序鍵盤(pán)中斷初始化子

53、程序KBInitKBInit* *出口:第出口:第0 0頁(yè)內(nèi)存單元頁(yè)內(nèi)存單元KBVALUEKBVALUE中為鍵值中為鍵值* *-Bint:Bint: PSHH ; PSHH ;維護(hù)維護(hù)H H SEI SEI BSET 1,INTKBSCR ; BSET 1,INTKBSCR ;制止鍵盤(pán)中斷制止鍵盤(pán)中斷;-;-以下為中斷程序義務(wù)以下為中斷程序義務(wù)- - JSR KBA ; JSR KBA ;調(diào)子程序調(diào)子程序KBAKBA,鍵值放在,鍵值放在A A中中 STA KBVALUE ; STA KBVALUE ;放入內(nèi)存放入內(nèi)存KBVALUEKBVALUE;-;-以上為中斷程序義務(wù)以上為中斷程序義務(wù)- -

54、 PULH ;H PULH ;H出棧出棧 JSR KBInit ; JSR KBInit ;調(diào)用鍵盤(pán)中斷初始化子程序調(diào)用鍵盤(pán)中斷初始化子程序 BCLR 1,INTKBSCR ; BCLR 1,INTKBSCR ;開(kāi)放鍵盤(pán)中斷開(kāi)放鍵盤(pán)中斷 CLI CLI RTI RTI* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *-鍵盤(pán)轉(zhuǎn)化為詳細(xì)值子程序從鍵盤(pán)轉(zhuǎn)化為詳細(xì)值子程序從KBdefKBdef開(kāi)場(chǎng)開(kāi)場(chǎng)-* *功能:鍵值轉(zhuǎn)為鍵盤(pán)外表詳細(xì)的字符

55、或符號(hào)代表值功能:鍵值轉(zhuǎn)為鍵盤(pán)外表詳細(xì)的字符或符號(hào)代表值* *入口:內(nèi)存第入口:內(nèi)存第0 0頁(yè)中頁(yè)中KBVALUEKBVALUE為鍵值,運(yùn)用鍵值編號(hào)表為鍵值,運(yùn)用鍵值編號(hào)表* *占用占用CPUCPU存放器:存放器:X X存放相對(duì)地址存放相對(duì)地址* *出口:出口:A=A=鍵定義值鍵定義值* *-KBdef:KBdef: LDHX #$0000 LDHX #$0000 KBkey1:KBkey1: LDA KBTABLE,X LDA KBTABLE,X BEQ KBkey3 ;=0 BEQ KBkey3 ;=0,表示表中未定義此鍵值,表示表中未定義此鍵值 CMP KBVALUE ; CMP KBV

56、ALUE ;與與KBVALUEKBVALUE入口鍵值相比較入口鍵值相比較 BNE KBkey2 ; BNE KBkey2 ;不等,未找到轉(zhuǎn)不等,未找到轉(zhuǎn)KBkey2KBkey2 INCX ; INCX ;找到地址加找到地址加1 1 LDA KBTABLE,X ; LDA KBTABLE,X ;取鍵定義值給取鍵定義值給A A BRA KBkeyr BRA KBkeyrKBkey2:KBkey2: INCX INCX INCX INCX BRA KBkey1 BRA KBkey1KBkey3:KBkey3: LDA #$FF ; LDA #$FF ;未定義鍵用未定義鍵用FFFF標(biāo)志標(biāo)志KBkeyr

57、: RTSKBkeyr: RTSKBTABLE FCB $EE,1,$DE,2,$BE,3,$7E,4KBTABLE FCB $EE,1,$DE,2,$BE,3,$7E,4 FCB $ED,5,$DD,6,$BD,7,$7D,8 FCB $ED,5,$DD,6,$BD,7,$7D,8 FCB $EB,9,$DB,0,$BB,A,$7B,B FCB $EB,9,$DB,0,$BB,A,$7B,B FCB $E7,C,$D7,D,$B7,E,$77,F FCB $E7,C,$D7,D,$B7,E,$77,F FCB $00 FCB $00* * * * * * * * * * * * * * *

58、* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *-程序延時(shí)程序子程序程序延時(shí)程序子程序DelaysubDelaysub-* *功能功能: :程序方法延時(shí),延時(shí)長(zhǎng)短由入口程序方法延時(shí),延時(shí)長(zhǎng)短由入口A A中的數(shù)值決議中的數(shù)值決議* *入口:入口:A=A=延時(shí)長(zhǎng)度延時(shí)長(zhǎng)度* *占用內(nèi)存占用內(nèi)存: :無(wú)無(wú)* *占用存放器占用存放器:A:A* *-Delaysub:Delaysub: PSHH PSHH PSHX PSHX Delay1:Delay1: LDHX #$5588 LDHX #$5588Delay2:De

59、lay2: NOP NOP AIX #-1 AIX #-1 CPHX #$0000 CPHX #$0000 BNE Delay2 BNE Delay2 DBNZA Delay1 DBNZA Delay1 PULX PULX PULH PULH RTS RTS* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *-中斷矢量中斷矢量- ORG $FFE0 ; ORG $FFE0 ;鍵盤(pán)中斷矢量鍵盤(pán)中斷矢量 DW KBint DW KBint ORG $FFFE ; ORG

60、 $FFFE ;復(fù)位矢量復(fù)位矢量 DW MainInit DW MainInit液晶顯示實(shí)驗(yàn)液晶顯示實(shí)驗(yàn) 實(shí)驗(yàn)?zāi)康?實(shí)驗(yàn)器材 硬件接線 VB界面 軟件功能 程序清單 備注闡明1.6ms1.6ms CLR-LCD-2-MS: ;CLR-LCD-2-MS: ;延時(shí)延時(shí) AIX #-1 AIX #-1 CPHX #0 CPHX #0 LDA #%00000110 ; LDA #%00000110 ;輸入方式設(shè)置輸入方式設(shè)置: :數(shù)據(jù)讀寫(xiě)操作后數(shù)據(jù)讀寫(xiě)操作后, , ;AC ;AC自動(dòng)增自動(dòng)增1,1,顯示不動(dòng)顯示不動(dòng), ,光標(biāo)左光標(biāo)左 JSR LCDCOMMAND JSR LCDCOMMAND LDA

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論