音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

程序探討

作者:kindwyw 欄目:單片機
程序探討
請高手來探討,我想做個4*4鍵盤,和兩個數(shù)碼管,共用PD口進行鍵盤掃描和顯示用,同時PC口的0,1作為數(shù)碼位選,掃描的各個按鍵后去執(zhí)行相應(yīng)功能鍵,請幫看下面程序邏輯正確否? 掃描到按鍵后怎樣去執(zhí)行響應(yīng)功能子程序,請高手指點,謝謝
;---------------顯示子程序-------------

xsson:      movlw      00
            movwf      port_d             ;關(guān)顯示
            movlw      1fh
            xorwf      port_c,0
            btfsc      status,z            ;檢查一輪兩個數(shù)碼管顯示一遍否
            goto       skyson             ;一輪顯示完,轉(zhuǎn)鍵盤掃描子程序

jxxs_1:     comf        port_c,0           ;繼續(xù)輪流顯示
            btfsc       status,z           ;繼續(xù)判斷
            movlw       0e0h
            movwf       TEMP               ;字位控制字更新,顯示下一數(shù)碼管
            comf        TEMP,1       
            bsf         status,0
            rlf         TEMP,1
            btfss       status,c
            rlf         TEMP,1
            rlf         TEMP,1
            movf        TEMP,0
            movwf       port_c             ;新的字位控制送PC口
            movlw       xsadd              ;顯示數(shù)據(jù)的地址送FSR
            movwf       fsr
            call        xsbianma           ;求顯示代碼
            movwf       port_d             ;顯示代碼送PD口
            retlw       0
             
;----------------查表求7段字型代碼子程序--------------     
xsbianma:    
             comf       port_c,0           ;根據(jù)數(shù)位決定取數(shù)地址
             andlw      0f0h
             btfsc      status,z
             incf       fsr,1
             movf       0,w
             movwf      TEMP
             
             comf       port_c,0            ;根據(jù)顯示數(shù)位決定是高4位
             andlw      0cch                 ;還是低4位,并進行代碼轉(zhuǎn)換
             btfsc      status,z
             swapf      TEMP,1
             movlw      0fh
             andlw      TEMP,0
             
             andwf      pcl,1
            
             retlw      03fh           ;00111111    0
             retlw      006h           ;00000110    1
             retlw      05bh           ;00000101    2
             retlw      04fh           ;00000100    3
             retlw      066h           ;01100110    4
             retlw      06dh           ;01101101    5
 
2樓: >>參與討論
ximeng
呵呵!
你搞的這個東西很多書上都有,你可以參考一下!
再說了你搞個這么長的program,誰能有耐心看完!
就只有你自己慢慢調(diào)試了,你可以分步驟調(diào)試(功能一點一點的加)

3樓: >>參與討論
kindwyw
再次探討
樓上那位兄臺,能不能幫忙看,看我這個程序框加,如何插入轉(zhuǎn)按鍵功能子程序

4樓: >>參與討論
yuntian
建議
建議發(fā)一個流程圖清晰一點.那么長的程序誰有精神看呀?關(guān)鍵是要讓人家了解你的算法.

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
交流電機調(diào)速的問題?前輩請進
求教關(guān)系RC沖放電做AD
那位大蝦有交流電機的控制電路:
SPI發(fā)送程序,但是卻發(fā)送不出去啊,請高手指點
請教做過太陽能熱水器的朋友
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號