<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                這次實驗使用到了`mini-mcu`的中斷,中間寄存器,數碼管顯示,led燈控制,獨立按鍵掃描式檢測,數碼管響應獨立按鍵。 代碼如下: ``` ;系統時鐘為12MHz ;目標硬件為 小腳丫FPGA step-maxo2-c,這個型號是U盤模式,流文件會下載到mcu,每次上電由mcu配置FPGA ;----------------------------------------------------------------- ; 功能說明 : 在不操作的情況下,流水燈會一直跑,同時數碼管每秒加1, ; 滿99后歸零 ; 按下按鍵1 : 數碼管下一次將從 01 開始計數 ; 按下按鍵2 : 數碼管下一次將從 02 開始計數 ; 按下按鍵3 : 數碼管下一次將從 03 開始計數 ; 按下按鍵4 : 數碼管下一次將從 04 開始計數 ;----------------------------------------------------------------- constant sw_port,00 ;定義按鍵四段撥碼開關 【按鍵 : 開關 】 ;輸出 constant seg_port,00 ;定義數碼管地址 constant led_port,01 ;定義led_port為常量01 constant rgb_port,02 ; rgb燈 ;定義以一些變量 constant var_seg,00 ;數碼管 constant var_led,01 ; led start: load sA,FE ; led等控制 output sA,led_port store sA,var_led load sB,66 ; 初始化數碼管顯示 store sB,var_seg output sB,seg_port load sC,00000111'b ; ' rgb 滅 output sC,rgb_port ;rgb不亮 input sD,sw_port ; 讀一次io口 enable interrupt ;使能中斷 ;一下loop循環是掃描式按鍵檢測的主循環 loop: input sD,sw_port load sE,sD and sE,10 ; //準備判斷key1的狀態 compare sE,00 jump z,key1 ;按下了準備key1函數 load sE,sD and sE,20 ; //準備判斷key2的狀態 compare sE,00 jump z,key2 ;按下了準備key2函數 load sE,sD and sE,40 ; //準備判斷key3的狀態 compare sE,00 jump z,key3 ;按下了準備key3函數 load sE,sD and sE,80 ; //準備判斷key4的狀態 compare sE,00 jump z,key4 ;按下了準備key4函數 jump loop ;回去繼續掃描 ;-------------------------------------------- ;掃描式按鍵檢測響應 ;-------------------------------------------- key1: call delay_10ms ;按鍵消抖,延時10ms input sE,sw_port and sE,10 compare sE,00 jump nz,loop load sE,00 store sE,var_seg ;按下了key1讓數碼管顯示01 jump loop key2: call delay_10ms input sE,sw_port and sE,20 compare sE,00 jump nz,loop load sE,01 store sE,var_seg ;按下了key2讓數碼管顯示02 jump loop key3: call delay_10ms input sE,sw_port and sE,40 compare sE,00 jump nz,loop load sE,02 store sE,var_seg ;按下了key3讓數碼管顯示03 jump loop key4: call delay_10ms input sE,sw_port and sE,80 compare sE,00 jump nz,loop load sE,03 store sE,var_seg ;按下了key4讓數碼管顯示04 jump loop ;-------------------------------------------- ;12MHz的系統時鐘下延時10ms ;-------------------------------------------- delay_10ms: LOAD s2, 00 ; ==> 10000 *1.2 LOAD s1, 2e LOAD s0, e0 jump software_delay ;-------------------------------------------- ;12MHz的系統時鐘下延時200ms ;-------------------------------------------- delay_200ms: LOAD s2, 03 ; LOAD s1, a9 LOAD s0, 80 jump software_delay software_delay: LOAD s0, s0 ;pad loop to make it 10 clock cycles (5 instructions), if clk 12MHz --> 1/1.2 us SUB s0, 01 SUBCY s1, 00 SUBCY s2, 00 JUMP NZ, software_delay RETURN ;-------------------------------------------- ;數碼管計數器 0--99 循環計數顯示 ;該函數會在中斷中被調用 ;-------------------------------------------- seg_add: fetch sC, var_seg add sC,01 ;數碼管顯示值加1 load sB,sC and sB,0f ; compare sB,0a ;低四位是否等于10 jump nz,seg_add_return ;不等于10就準備返回顯示,否則整體加6 add sC,06 load sB,sC and sB,f0 compare sB,a0 ;高4位是否等于10 jump nz,seg_add_return ;不等于10就準備返回顯示,否則整體歸零,準備重新計數 load sC,00 seg_add_return: output sC,seg_port store sC,var_seg return ;-------------------------------------------- ;led流水燈循環點亮 ;該函數會在中斷中被調用 ;-------------------------------------------- led_dis: fetch sA,var_led RR sA output sA,led_port store sA,var_led return ;中斷入口地址 -- 此處必須這樣寫,我寫的腳本如果檢測到你使能了中斷會默認去這個地址找 ;找到后將地址動態連接到前面程序的地址后面 ADDRESS 3FF ISR: disable interrupt ;關閉中斷響應,準備處理中斷的事情 call led_dis ; led call seg_add ; seg display returni enable ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看