在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Keil的實(shí)驗(yàn)仿真板的制作

            基于Keil的實(shí)驗(yàn)仿真板的制作

            作者: 時(shí)間:2012-07-07 來(lái)源:網(wǎng)絡(luò) 收藏


            圖4 板2 數(shù)碼管和鍵盤(pán)部份的電路圖
            圖3 板的設(shè)置
            軟件實(shí)全教程(五)
            CLR StartEnd ;啟動(dòng)時(shí)處于停止?fàn)顟B(tài)
            MOV LAMPCODE,#01H ;單燈流動(dòng)的代碼
            LOOP: ACALL KEY ;調(diào)用鍵盤(pán)程序
            JNB F0,LNEXT ;如果無(wú)鍵按下,則繼續(xù)
            ACALL KEYPROC ;否則調(diào)用鍵盤(pán)處理程序
            LNEXT: ACALL LAMP ;調(diào)用燈顯示程序
            AJMP LOOP ;反復(fù)循環(huán),主程序到此結(jié)束
            ;延時(shí)程序,鍵盤(pán)處理中調(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 ;第一個(gè)鍵按下后的處理
            AJMP KEY_RET
            KeyOver:
            CLR StartEnd ;第二個(gè)鍵按下后的處理
            AJMP KEY_RET
            KeyUp:
            SETB UpDown ;第三個(gè)鍵按下后的處理
            AJMP KEY_RET
            KeyDown:
            CLR UpDown ;第四個(gè)鍵按下后的處理
            KEY_RET:
            RET
            KEY:
            CLR F0 ;清F0,表示無(wú)鍵按下。
            ORL P3,#00111100B ;將P3 口的接有鍵的四位置1
            MOV A,P3 ;取P3 的值
            ORL A,#11000011B ;將其余4 位置1
            CPL A ;取反
            JZ K_RET ;如果為0 則一定無(wú)鍵按下
            CALL DELAY ;否則延時(shí)去鍵抖
            ORL P3,#00111100B
            MOV A,P3
            ORL A,#11000011B
            軟件實(shí)全教程(五)
            CPL A
            JZ K_RET
            MOV B,A ;確實(shí)有鍵按下,將鍵值存入B 中
            SETB F0 ;設(shè)置有鍵按下的標(biāo)志
            ;以下的代碼是可以被注釋掉的,如果去掉注釋?zhuān)途哂信袛噫I是否釋放的功能,否則
            沒(méi)有
            K_RET: ;ORL P3,#00111100B ;此處循環(huán)等待鍵的釋放
            ;MOV A,P3
            ;ORL A,#11000011B
            ;CPL A
            ;JZ K_RET1 ;讀取的數(shù)據(jù)取反后為0 說(shuō)明鍵釋放了
            ;AJMP K_RET
            ;K_RET1:CALL DELAY ;消除后沿抖動(dòng)
            RET
            D500MS: ;流水燈的延遲時(shí)間
            MOV R7,#255
            D51: MOV R6,#255
            DJNZ R6,$
            DJNZ R7,D51
            RET
            LAMP:
            JB StartEnd,LampStart ;如果StartEnd=1,則啟動(dòng)
            MOV P1,#0FFH
            AJMP LAMPRET ;否則關(guān)閉所有顯示,返回
            LampStart:
            JB UpDown,LAMPUP ;如果UpDown=1,則向上流動(dòng)
            MOV A,LAMPCODE
            RL A ;實(shí)際就是左移位而已
            MOV LAMPCODE,A
            MOV P1,A
            LCALL D500MS
            LCALL D500MS
            AJMP LAMPRET
            LAMPUP:
            MOV A,LAMPCODE
            RR A ;向下流動(dòng)實(shí)際就是右移
            MOV LAMPCODE,A
            MOV P1,A
            LCALL D500MS
            LAMPRET:
            RET
            END
            將程序輸入并建立工程文件,設(shè)置工程文件,在Debug 標(biāo)簽頁(yè)中加入“-dledkey”,匯
            編、連接文件,按Ctrl+F5 開(kāi)始調(diào)試,打開(kāi)板,使用F5 功能鍵全速運(yùn)行,可以看到所
            軟件實(shí)全教程(五)
            有燈均不亮,點(diǎn)擊最上面的按鈕,立即會(huì)看到燈流動(dòng)起來(lái)了,點(diǎn)擊第二個(gè)按鍵,燈將停止流
            動(dòng),再次點(diǎn)擊第一個(gè)按鈕,使燈流動(dòng)起來(lái),點(diǎn)擊第三個(gè)按鈕,可以發(fā)現(xiàn)燈流動(dòng)的方向變了,
            點(diǎn)擊第四個(gè)按鈕,燈的流動(dòng)方向又變回來(lái)了。如果沒(méi)有出現(xiàn)所描述的現(xiàn)象,可以使用單步、
            過(guò)程單步等調(diào)試手段進(jìn)行調(diào)試,在進(jìn)行調(diào)試時(shí)仿真板會(huì)隨時(shí)顯示出當(dāng)前的情況,是不是
            非常的直觀和方便呢?
            下面的一個(gè)例子是關(guān)于第二塊實(shí)驗(yàn)仿真板的,演示點(diǎ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 個(gè)字符
            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。這里是用了最簡(jiǎn)單的逐位顯示的方式編寫(xiě)的顯示程序。
            最后介紹一個(gè)小小技巧,將鼠標(biāo)移入按鈕區(qū)域,按下左鍵,按鈕顯示被按下,不要放開(kāi)
            Keil 軟件實(shí)全教程(五)
            鼠標(biāo)左鍵,將光標(biāo)移出按鈕區(qū)域,松開(kāi)左鍵,可以看到,按鈕仍處于按下?tīng)顟B(tài),利用這一功
            能,在需要I/O 口長(zhǎng)期處于低電平時(shí),你就不必一直用手按著鼠標(biāo)的左鍵啦。

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

            上一頁(yè) 1 2 下一頁(yè)

            評(píng)論


            相關(guān)推薦

            技術(shù)專(zhuān)區(qū)

            關(guān)閉