在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于Keil的實驗仿真板的使用

            基于Keil的實驗仿真板的使用

            作者: 時間:2011-05-06 來源:網(wǎng)絡(luò) 收藏

            圖4 板2 數(shù)碼管和鍵盤部份的電路圖
            圖3 板的設(shè)置
            軟件實全教程(五)
            CLR StartEnd ;啟動時處于停止?fàn)顟B(tài)
            MOV LAMPCODE,#01H ;單燈流動的代碼
            LOOP: ACALL KEY ;調(diào)用鍵盤程序
            JNB F0,LNEXT ;如果無鍵按下,則繼續(xù)
            ACALL KEYPROC ;否則調(diào)用鍵盤處理程序
            LNEXT: ACALL LAMP ;調(diào)用燈顯示程序
            AJMP LOOP ;反復(fù)循環(huán),主程序到此結(jié)束
            ;延時程序,鍵盤處理中調(diào)用
            DELAY: MOV R7,#100
            D1: MOV R6,#100
            DJNZ R6,$
            DJNZ R7,D1
            RET
            KEYPROC:
            MOV A,B ;從B 寄存器中獲取鍵值
            JB ACC.2,KeyStart ;分析鍵的代碼,某位被按下,則該位為1
            JB ACC.3,KeyOver
            JB ACC.4,KeyUp
            JB ACC.5,KeyDown
            AJMP KEY_RET
            KeyStart:
            SETB StartEnd ;第一個鍵按下后的處理
            AJMP KEY_RET
            KeyOver:
            CLR StartEnd ;第二個鍵按下后的處理
            AJMP KEY_RET
            KeyUp:
            SETB UpDown ;第三個鍵按下后的處理
            AJMP KEY_RET
            KeyDown:
            CLR UpDown ;第四個鍵按下后的處理
            KEY_RET:
            RET
            KEY:
            CLR F0 ;清F0,表示無鍵按下。
            ORL P3,#00111100B ;將P3 口的接有鍵的四位置1
            MOV A,P3 ;取P3 的值
            ORL A,#11000011B ;將其余4 位置1
            CPL A ;取反
            JZ K_RET ;如果為0 則一定無鍵按下
            CALL DELAY ;否則延時去鍵抖
            ORL P3,#00111100B
            MOV A,P3
            ORL A,#11000011B
            軟件實全教程(五)
            CPL A
            JZ K_RET
            MOV B,A ;確實有鍵按下,將鍵值存入B 中
            SETB F0 ;設(shè)置有鍵按下的標(biāo)志
            ;以下的代碼是可以被注釋掉的,如果去掉注釋,就具有判斷鍵是否釋放的功能,否則
            沒有
            K_RET: ;ORL P3,#00111100B ;此處循環(huán)等待鍵的釋放
            ;MOV A,P3
            ;ORL A,#11000011B
            ;CPL A
            ;JZ K_RET1 ;讀取的數(shù)據(jù)取反后為0 說明鍵釋放了
            ;AJMP K_RET
            ;K_RET1:CALL DELAY ;消除后沿抖動
            RET
            D500MS: ;流水燈的延遲時間
            MOV R7,#255
            D51: MOV R6,#255
            DJNZ R6,$
            DJNZ R7,D51
            RET
            LAMP:
            JB StartEnd,LampStart ;如果StartEnd=1,則啟動
            MOV P1,#0FFH
            AJMP LAMPRET ;否則關(guān)閉所有顯示,返回
            LampStart:
            JB UpDown,LAMPUP ;如果UpDown=1,則向上流動
            MOV A,LAMPCODE
            RL A ;實際就是左移位而已
            MOV LAMPCODE,A
            MOV P1,A
            LCALL D500MS
            LCALL D500MS
            AJMP LAMPRET
            LAMPUP:
            MOV A,LAMPCODE
            RR A ;向下流動實際就是右移
            MOV LAMPCODE,A
            MOV P1,A
            LCALL D500MS
            LAMPRET:
            RET
            END
            將程序輸入并建立工程文件,設(shè)置工程文件,在Debug 標(biāo)簽頁中加入“-dledkey”,匯
            編、連接文件,按Ctrl+F5 開始調(diào)試,打開板,F5 功能鍵全速運(yùn)行,可以看到所
            軟件實全教程(五)
            有燈均不亮,點擊最上面的按鈕,立即會看到燈流動起來了,點擊第二個按鍵,燈將停止流
            動,再次點擊第一個按鈕,使燈流動起來,點擊第三個按鈕,可以發(fā)現(xiàn)燈流動的方向變了,
            點擊第四個按鈕,燈的流動方向又變回來了。如果沒有出現(xiàn)所描述的現(xiàn)象,可以單步、
            過程單步等調(diào)試手段進(jìn)行調(diào)試,在進(jìn)行調(diào)試時仿真板會隨時顯示出當(dāng)前的情況,是不是
            非常的直觀和方便呢?
            下面的一個例子是關(guān)于第二塊實驗仿真板的,演示點亮8 位數(shù)碼管。例9:
            ORG 0000h
            JMP MAIN
            ORG 30H
            MAIN:
            MOV SP,#5FH
            MOV R1,#08H
            MOV R0,#58H ;顯示緩沖區(qū)首地址
            MOV A,#2
            INIT:
            MOV @R0,A ;初始化顯示緩沖區(qū)
            INC A
            INC R0
            DJNZ R1,INIT ;將0-7 送顯示緩沖區(qū)
            LOOP:
            CALL DISPLAY
            JMP LOOP
            ;主程序到此結(jié)束
            DISPLAY:
            MOV R0,#7FH ;列選擇
            MOV R7,#08H ;共有8 個字符
            MOV R1,#58H ;顯示緩沖區(qū)首地址
            AGAIN:
            MOV A,@R1
            MOV DPTR,#DISPTABLE
            MOVC A,@A+DPTR
            MOV P0,A
            MOV P2,R0
            MOV A,R0
            RR A
            MOV R0,A
            INC R1
            DJNZ R7,AGAIN
            RET
            DISPTABLE: DB 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0FFH ;字形碼表
            END
            這一程序內(nèi)部RAM 中58H 到5FH 被當(dāng)成是顯示緩沖區(qū),主程序中用2-9 填充該顯示
            區(qū),然后調(diào)用顯示程序顯示2-9。這里是用了最簡單的逐位顯示的方式編寫的顯示程序。
            最后介紹一個小小技巧,將鼠標(biāo)移入按鈕區(qū)域,按下左鍵,按鈕顯示被按下,不要放開
            Keil 軟件實全教程(五)
            鼠標(biāo)左鍵,將光標(biāo)移出按鈕區(qū)域,松開左鍵,可以看到,按鈕仍處于按下狀態(tài),利用這一功
            能,在需要I/O 口長期處于低電平時,你就不必一直用手按著鼠標(biāo)的左鍵啦。

            本文引用地址:http://www.biyoush.com/article/150794.htm


            上一頁 1 2 下一頁

            關(guān)鍵詞: 使用 仿真 實驗 Keil 基于

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉