×
单片机 > 单片机程序设计 > 详情

51单片机汇编语言(一)

发布时间:2020-09-03 发布时间:
|
6.1功能说明:控制单片机P1端口输出,使P1.0位所接的LED点亮,其他7只灯熄灭。

程序:JS01.ASM

01:     MOV    A , #11111110B  ;  存入欲显示灯的位置数据

02:     MOV    P1, A          ;  点亮第一只灯

03:     JMP                  保持当前的输出状态

04:     END                     程序结束

 

6.2功能说明:单片机P1端口接8只LED,点亮第1、3、4、6、7、8只灯。

程序:JS02.ASM

01:START: MOV   A , #00010010B  ; 存入欲显示灯的位置数据

02:       MOV   P1, A          ; 点亮灯

03:       JMP   START           ; 重新设定显示值

04:       END                   ; 程序结束

 

6.3功能说明:单片机P1端口接8只LED,每次点亮一只,向左移动点亮,重复循环。

该程序缺少延时环节,适合模拟仿真观察。

程序:JS03.ASM

01:   START:   MOV   R0, #8          ;设左移8次

02:            MOV   A,  #11111110B  ;存入开始点亮灯位置

03:   LOOP:    MOV   P1, A           ;传送到P1并输出

04:            RL                 ;左移一位

05:            DJNZ  R0, LOOP        ;判断移动次数

06:            JMP   START           ;重新设定显示值

07:            END                   ;程序结束

 

6.4功能说明:单片机P1端口接8只LED,每次点亮一只,向右移动点亮,重复循环。

程序:JS04.ASM

01:   START: MOV   R0, #8         ;设右移8次

02:          MOV   A,  #01111111B ;存入开始点亮灯位置

03:    LOOP:  MOV   P1, A          ;传送到P1并输出

04:           ACALL DELAY          ;调延时子程序        

05:           RR                ;右移一位

06:           DJNZ  R0, LOOP       ;判断移动次数

07:           JMP   START          ;重新设定显示值

08:   DELAY:  MOV  R5,#50         

09:  DLY1:   MOV  R6,#100        

10:   DLY2:   MOV  R7,#100        

11:           DJNZ R7,$            ;                   

12:           DJNZ R6,DLY2        

13:           DJNZ R5,DLY1        

14:           RET                  ;子程序返回

15:          END                  ;程序结束

 

6.5功能说明:单片机P1端口接8只LED,每次点亮一只,先把右边的第一只点亮,0.5秒后点亮右数的第二只灯,第一只熄灭,再过0.5秒点亮右数的第三只灯,第二只熄灭,…亮灯按此顺序由右向左移动。当亮灯移到左侧后,开始与上述反方向移动,即亮灯由左向右移动,重复循环。

程序:JS05.ASM

01:  START:   MOV   R0, #8    ;设左移8次

02:           MOV   A,#0FEH   ;存入开始亮灯位置

03:  LOOP:    MOV   P1, A     ;传送到P1并输出   

04:           ACALL DELAY     ;调延时子程序

05:           RL           ;左移一位

06:           DJNZ  R0, LOOP  ;判断移动次数     

07:           MOV   R1, #8    ;设右移8次           

08;   LOOP1:  RR           ;右移一位         

09:           MOV   P1, A     ;传送到P1并输出

10:            ACALL DELAY     ;调延时子程序

11:            DJNZ  R1,LOOP1  ;判断移动次数     

12:            JMP   START     ;重新设定显示值           

13:    DELAY:  MOV  R5,#25     ;延时0.5秒子程序

14:    DLY1:   MOV  R6,#100   

15:   DLY2:   MOV  R7,#100   

16:           DJNZ R7,$       ;                      

17:           DJNZ R6,DLY2   

18:           DJNZ R5,DLY1   

19:           RET             ;子程序返回               

20:           END             ;              

 

 

6.6功能说明:单片机P1端口接8只LED,每次点亮两只,先从右边向左边移动点亮;再从左边向右边移动点亮,然后闪烁两次,重复循环。

 

程序:JS06.ASM

01:  START:   MOV   R0, #7              ;设左移7次

02:           MOV   A,#0FCH            ;存入开始亮灯位置

03:  LOOP:    MOV       P1, A           ;传送到P1并输出  

04:            ACALL     DELAY         ;调延时子程序

05:             RL                       ;左移一位

06:             DJNZ       R0, LOOP       ;判断移动次数     

07:             MOV       R1, #7           ;设右移7次

08:   LOOP1:   RR                       ;右移一位         

09:             MOV       P1, A            ;传送到P1并输出

10:             ACALL     DELAY          ;调延时子程序

11:             DJNZ       R1, LOOP1       ;判断移动次数     

12:             MOV       R2, #3           ;设置闪烁次数

13:             MOV       A, #00H          ;设初始值

14:   LOOP2:   MOV       P1, A            ;P1端口灯亮

15:             ACALL     DELAY          ;调用延时子程序

16:             CPL                      ;A取反值

17:             DJNZ       R2, LOOP2       ;判断闪烁次数     

18:             JMP        START          ;重新设定显示值           

19:   DELAY:   MOV       R5, #25    

20:   DLY1:     MOV       R6, #100   

21:   DLY2:     MOV       R7, #100   

22:             DJNZ       R7, $                              

23:             DJNZ       R6, DLY2   

 24:             DJNZ       R5, DLY1   

25:             RET                        ;子程序返回       

26:             END                        ;程序结束     



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
浅谈msp430f5529入门(2)----时钟配置.例程分析