以51单片机为核心,分别控制实验平台上的八个发光二极管,要求能实现正序倒序依次点亮,随机点亮等不同显示功能,并能通过开关在这些功能中进行切换,用汇编语言编写
时间: 2024-03-24 09:40:42 浏览: 26
好的,以下是参考代码,供您参考:
```
ORG 0H ;程序起始地址
MOV P0,#0FFH ;P0口初始为高电平
MOV P2,#0FFH ;P2口初始为高电平
MOV P1,#0 ;P1口初始为低电平
MOV TH0,#4CH ;初始化计时器0,定时1ms
MOV TL0,#00H
SETB TR0 ;启动计时器0
MOV R7,#0 ;初始化计数器
MOV R6,#0 ;初始化状态
MAIN:
JNB P1.0,DISPLAY ;检测按键是否按下
INC R7 ;计数器自增
CJNE R7,#8,END ;判断计数器是否大于8
MOV R7,#1 ;计数器重新赋值为1
END:
SJMP MAIN ;无限循环
DISPLAY:
MOV A,R6 ;将状态存储到累加器中
ANL A,#07H ;将状态与00000111做与运算
JZ NORMAL ;判断状态是否为0
JNZ RANDOM ;判断状态是否为1
NORMAL:
MOV P0,#00H ;点亮LED1
ACALL DELAY ;延时500ms
MOV P0,#01H ;点亮LED2
ACALL DELAY ;延时500ms
MOV P0,#02H ;点亮LED3
ACALL DELAY ;延时500ms
MOV P0,#04H ;点亮LED4
ACALL DELAY ;延时500ms
MOV P0,#08H ;点亮LED5
ACALL DELAY ;延时500ms
MOV P0,#10H ;点亮LED6
ACALL DELAY ;延时500ms
MOV P0,#20H ;点亮LED7
ACALL DELAY ;延时500ms
MOV P0,#40H ;点亮LED8
ACALL DELAY ;延时500ms
MOV P0,#0FFH ;灭掉所有LED
ACALL DELAY ;延时500ms
CJNE A,#1,NORMAL ;判断是否需要反向显示
JMP REVERSE ;跳转到REVERSE标签
DELAY:
MOV R5,#80H ;循环计数器
DELAY_LOOP:
DJNZ R5,DELAY_LOOP
RET
REVERSE:
MOV P0,#40H ;点亮LED8
ACALL DELAY ;延时500ms
MOV P0,#20H ;点亮LED7
ACALL DELAY ;延时500ms
MOV P0,#10H ;点亮LED6
ACALL DELAY ;延时500ms
MOV P0,#08H ;点亮LED5
ACALL DELAY ;延时500ms
MOV P0,#04H ;点亮LED4
ACALL DELAY ;延时500ms
MOV P0,#02H ;点亮LED3
ACALL DELAY ;延时500ms
MOV P0,#01H ;点亮LED2
ACALL DELAY ;延时500ms
MOV P0,#00H ;点亮LED1
ACALL DELAY ;延时500ms
MOV P0,#0FFH ;灭掉所有LED
ACALL DELAY ;延时500ms
CJNE A,#0,NORMAL ;判断是否需要正向显示
JMP NORMAL ;跳转到NORMAL标签
RANDOM:
MOV A,R7 ;将计数器存储到累加器中
ANL A,#07H ;将计数器与00000111做与运算
MOV R6,A ;将状态存储到R6寄存器中
MOV A,R7 ;将计数器存储到累加器中
MOV R0,A ;将计数器存储到R0寄存器中
MOV A,#0FFH ;将0FFH存储到累加器中
RR A ;循环右移累加器中的值
DJNZ R0,$ ;循环8次
MOV P0,A ;将累加器中的值存储到P0口
ACALL DELAY ;延时500ms
MOV P0,#0FFH ;灭掉所有LED
ACALL DELAY ;延时500ms
CJNE R6,#1,NORMAL ;判断是否需要正向显示
JMP REVERSE ;跳转到REVERSE标签
END
```
注意:以上代码只是一个参考,具体实现还需要根据硬件环境和具体的需求进行调整。同时,由于代码长度较长,可能存在排版错误,请您谨慎参考。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)