專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

簡單流水燈的實現(xiàn)

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2013年01月01日   【字體:
(1)流水燈的匯編語言實現(xiàn)

             ORG       0000H         ;程序從0地址開始

START:      MOV      A,#0FEH        ; ACC賦值為11111110

LOOP:       MOV      P1,A           ;將累加器A的值賦值給P1                                                                                                                                                                                                                                                                             

            RR          A           ; ACC的內(nèi)容右移

            CALL     DELAY       ;調(diào)用延時子程序

            LJMP     LOOP          ;跳到LOOP處執(zhí)行

;延時子程序(12MHz晶振)===================

DELAY:      MOV      R7,#255      ;R7寄存器加載200次數(shù)

D1:         MOV      R6,#250      ;R6寄存器加載250次數(shù)

lp:         DJNZ     R6,lp        ;本行執(zhí)行R6次,也可以用

;DJNZ     R6,$ 代替

            DJNZ     R7,D1          ;D1循環(huán)執(zhí)行R7次

            RET                            ;返回主程序

            END                           ;結(jié)束程序

(2)流水燈的C語言實現(xiàn)

#include<reg51.h>

#include <intrins.h>

#define uint unsigned int

#define uchar unsigned char

uchar a;

void delay(uint z)//最大值65535

{

while(z--);

}

void main()

{

a=0xfe;//11111110

P1=a;//P10亮

   while(1)

   {

    a=_crol_(a,1);//11111101

P1=a;

   delay(30000);

   }

}

 
關(guān)閉窗口

相關(guān)文章