<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

        avr單片機LED燈循環位移匯編程序

        作者:huqin   來源:本站原創   點擊數:  更新時間:2014年03月17日   【字體:

        本程序中使用的avr單片機是m16芯片,可以讓8個led實現循環移位的效果/*
         * loopLEDLight.asm
         *
         *  Created: 2014/3/14 9:47:20
         *   Author: Wujie
         */

         .include "m16def.inc"
         .def temp1=r20
         .def count=r17

         .org $0000
        rjmp main
         .org $002A
         main:
        ldi r16,high(RAMEND)
        out sph,r16
        ldi r16,low(RAMEND)
        out spl,r16
        ser temp1
        out ddrc,temp1
        out portc,temp1
        ldi count,0b01111111
        ldi r16,197

        loop:
        out portc,count
        rcall delay
        rcall loopdis 
        rjmp loop
        ;循環位移
        loopdis:
        ldi r21,7 ;r21裝入立即數7,后面或將count右移7位
        push count ;將count保存起來后面會使用
        lsl count ;將count左移一位
        mov r18,count ;左位移一的立即數裝入r18
        pop count ;還原count
        dis: lsr count ;右位移7次count值改變為右移7次的值
        dec r21
        brne dis
        or count,r18 ;左移一次與右移7次進行求或 即左循環一次
        ret

        delay: push r16
        del3: push r16
        del2:         push        r16
            del1: dec r16
        brne         del1
        pop r16
        dec r16
        brne     del2
        pop r16
        dec r16
        brne del3
        pop r16
        ret
        /*寄存器與寄存器直接的傳遞使用mov*/

         

        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮