色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機 散轉表程序的使用

          單片機 散轉表程序的使用

          作者: 時間:2016-11-23 來源:網(wǎng)絡 收藏
          使用散轉表可以盡可能的減少程序的編寫,方便。

          減少判斷次數(shù)。

          本文引用地址:http://cafeforensic.com/article/201611/320137.htm程序名:散轉程序試驗
          ;說明: 開使后led1亮,按下任何按鍵,寄存器r0從零加起,根據(jù)r0內(nèi)容,程序散轉到
          ;相應處執(zhí)行,以點亮不同的led
          ;入口: p3.0--p3.3
          ;出口: P0
          ;練習日期:2007--06--17 好心情

          ;修正日期:2007--06--18
          ;修正內(nèi)容:將原來用ljmp的部分換為ajmp,將R0結束值改為08
          ;**************************************************************************
          org 0000h
          ljmp main
          org 0030h
          main: mov p0, #07fh ;初始化p0口,led1點亮
          mov r0, #00h ;初始化R0,使R0置1
          ;**********************按鍵檢測********************************************
          st: mov P3, #0Fh ;設置P3口,為檢測按鍵做準備,將p3低3位置0
          mov a, p3 ;讀p3口狀態(tài)
          cjne a, #0fh, F1 ;判斷是否有按鍵按下,若有則跳到F1 處(比較轉移,比較a與#0fh的大小
          ;若不相等,責轉移,否則順序往下執(zhí)行,如果第一個數(shù)大于第二個數(shù),則CY
          ;清零,否則置1,不影響其它操作位,3字節(jié)指令
          acall del
          ajmp st
          ;**********************去抖動***********************************************
          F1: acall del ;延時
          cjne a, #0fh, f2 ;再次判斷按鍵,若按下,則區(qū)按鍵處理程序,否則為干擾
          ajmp st
          ;**********************按鍵處理*********************************************mov
          F2: inc r0 ;r0加1
          cjne r0, #08h, F3 ;判斷R0是否=8,若等于,則順序執(zhí)行并將R0,清0,否則跳轉到散轉程序
          mov r0, #00h ;R0清零
          ajmp main
          ;**********************散轉處理*********************************************
          F3: mov DPTR, #TAB ;將數(shù)據(jù)表地址傳送到DPTR
          mov a, R0 ;將偏移量送入a
          clr c ;清零進位位
          rlc a ;累加器a內(nèi)容左移,(相當于*2)
          jnc nadd ;若cy為零,則跳轉到NADD,否則順序執(zhí)行
          inc dph ;若cy為1時,DPH+1(因為DPTR為16位地址,a為8位,在此處加一,相當于DPTR低8位
          ;向高8位進位)修正地址
          NADD: jmp @a+DPTR ;散裝指令,將a中的無符號數(shù)與數(shù)據(jù)指針DPTR的16位相加,相加之和做為下一條指令的
          ;地址送入PC中,不改變a和dptr,也不影響標志位,采用變址方式實現(xiàn)無條件轉移
          ;其特點時轉移地址可以在程序中加以改變
          ;***********************數(shù)據(jù)表************************************************
          TAB: nop
          nop ;空指令,修正地址
          ajmp pb1
          ajmp pb2
          ajmp pb3
          ajmp pb4
          ajmp pb5
          ajmp pb6
          ajmp pb7


          ;***********************延時***************************************************
          del: mov R1, #014h
          d1: mov R2, #0FFH
          d2: mov r5, #01fh
          djnz R5, $
          djnz R2, d2
          djnz R1, d1
          ret
          ;***********************顯示**************************************************
          pb1: mov p0, #03fh
          acall del
          ljmp st
          pb2: mov p0, #01fh
          acall del
          ljmp st
          pb3: mov p0, #0fh
          acall del
          ajmp st
          pb4: mov p0, #07h
          acall del
          ajmp st
          pb5: mov p0, #03h
          acall del
          ajmp st
          pb6: mov p0, #01h
          acall del
          ajmp st
          pb7: mov p0, #00h
          acall del
          ajmp st
          end



          關鍵詞: 單片機散轉表程

          評論


          技術專區(qū)

          關閉