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

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

        avr單片機流水燈匯編程序及電路圖

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


        這是電路圖
         

        本程序使用的avr單片機型號是m16 實現流水燈效果
        下面是匯編程序源碼:
         

        /*
         * LEDlight.asm
         * 運行環境  atmelage16 4M晶振 流水燈共陽極
         * 由于引腳輸出電流20mA  輸入電流最大能達到40mA
         *  Created: 2014/3/13 13:08:20
         *   Author: Wujie
         */ 
         .include "m16def.inc" ;包含atmelage16定義文件
         .def     temp1=r16 ;定義標識符temp1表示寄存器r16
         .def     count=r17 ;定義標識符count表示寄存器r17

         
        .org $0000 ;上單復位后第一條執行語句地址
        rjmp reset ;第一條語句跳轉到程序入口,跳過中斷向量區
        .org $002A ;主程序入口地址
        reset: ;主程序標識符
        ldi r20,high(RAMEND) ;high獲取RAMEND高字節的立即數,將立即數裝入r20
        out sph,r20 ;將獲取到的堆棧高字節立即數送堆棧寄存器SP高字節中
        ldi r20,low(RAMEND) ;low獲取RAMEND低位立即數,將立即數裝入r20
        out spl,r20 ;將獲取到的堆棧低字節立即數送堆棧寄存器SP低字節中
        ser temp1 ;將temp1置位,等于是將temp1設置為0b11111111
        sec ;將C標志位設置為1,下面將帶進位位移
        out ddrc,temp1 ;將端口C全部設置為輸出模式
        out portc,temp1 ;將引腳C全部設置為高電平,即全部熄滅
        ldi r20,197 ;設置1秒延時
         
        ldi count,0b01111111 ;將最左邊LED點亮

         
        loop: ;循環閃爍
        out portc,count ;通過count來判斷
        rcall delay                                        ;調用延時函數
        rol count                                        ;帶進位循環左移            前面sec將標志位C設置為了1,即移位后填充為1
        rjmp loop                                          ;集訓循環閃爍

         

         
        delay: push r20
        del3:         push r20
        del2:         push r20
        del1:         dec r20
        brne    del1
        pop r20
        dec r20
        brne    del2
        pop r20
        dec r20
        brne    del3
        pop r20
        ret
        關閉窗口

        相關文章

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