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

STC單片機(jī)I/O口控制程序(兩個(gè)不同的跑馬燈效果)

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2013年12月08日   【字體:
STC公司的單片機(jī)主要是基于8051內(nèi)核,是新一代增強(qiáng)型單片機(jī),指令代碼完全兼容傳統(tǒng)8051,速度快8~12倍,帶ADC,4路PWM,雙串口,有全球唯一ID號(hào),加密性好,抗干擾強(qiáng).控制靈活!且價(jià)格便宜!也就幾塊錢吧!但你讓她發(fā)揮出了性能,就不止幾塊錢了哦!單片機(jī)叫什么?o(∩_∩)o...微型計(jì)算機(jī)···
                                                                                       ORG  000H   ;起始地址
                                                                             START:         ;開(kāi)始
                                                                                          MOV R2,#10;設(shè)置循環(huán)次數(shù)
                                                                                    D0:
                                                                                         MOV  R0,#8  ;設(shè)置左移次數(shù)
                                                                                          MOV  A,#07FH;向A寄存器輸入初始值
                   
                                                                                           D2: RL  A;將A中數(shù)據(jù)向左移一位
                                                                                                    CALL DL;調(diào)入延時(shí)
                                                                                                MOV P1,A;輸出到P1口
                                                                                               DJNZ  R0,D2;檢測(cè)是否左移八次,否則繼續(xù)執(zhí)行左移命令
                                                                                                   MOV  R1,#7;設(shè)置右移次數(shù)
                                                                                         D3: RR   A;將A中數(shù)據(jù)向右移一位
                                                                                                CALL DL;調(diào)入延時(shí)
                                                                                                MOV P1,A;將A中數(shù)據(jù)輸出到P1口
                                                                                                MOV P0,A;并聯(lián)輸出至P0口
                                                                                                DJNZ R1,D3;檢測(cè)是否右移了七次,否則繼續(xù)執(zhí)行右移命令
                                                                                                 DJNZ R2,D0;檢測(cè)是否循環(huán)了十次,否則繼續(xù)循環(huán)
                                                                                                  MOV A,#0FFH;向A中載入新數(shù)據(jù)
                                                                                              D4:SUBB A,#01;執(zhí)行減法運(yùn)算
                                                                                                     CALL  DL1;調(diào)入延時(shí)程序1
                                                                                                      MOV R3,A;將A中數(shù)據(jù)傳送給R3
                                                                                                     MOV  P1,R3;將R3(寄存器)中數(shù)據(jù)輸出至P1口
                                                                                                    DJNZ R3,D4;檢測(cè)R3是否為零,否則繼續(xù)執(zhí)行減法運(yùn)算
                                                                                                     JMP  START;跳到開(kāi)始執(zhí)行
                                                                                            DL1:    MOV  R7,#90;延時(shí)程序1
                                                                                                 L4:  MOV  R6,#20
                                                                                                 L3:  MOV R5,#50
                                                                                                         DJNZ  R5,$
                                                                                                          DJNZ  R6,L3
                                                                                                          DJNZ  R7,L4
                                                                                                           RET   ;子程序返回
                         
                                                                                                            DL:             ;延時(shí)程序
                                                                                                                   MOV   R3,#20
                                                                                                                   L1:MOV  R4,#15
                                                                                                                    L2:MOV  R5,#50
                                                                                                                          DJNZ  R5,$
                                                                                                                          DJNZ  R4,L2
                                                                                                                          DJNZ  R3,L1
                                                                                                                           RET  ;子程序返回
                                                                                                                            END  ;結(jié)束
                                                                                            
                                                                                                                         編程:藍(lán)色夢(mèng)幻
                                                                                                                          2013年6月9日
關(guān)閉窗口

相關(guān)文章