微机实验:流水灯控制

流水灯控制

如图2所示,74LS373锁存器的输出控制LED发光管的亮暗(1:亮,0:暗),端口地址为0E0H。
在这里插入图片描述图2

如图3所示,74HC245收发器的B端连接8个开关,ON为0,OFF位1,端口地址为0E4H。
图3
图3

问题:实现以下程序要求:
当仅有第一个开关拨到ON,8个LED灯自上而下依次发光;
当仅有第二个开关拨到ON,8个LED灯闪烁发光。
在这里插入图片描述

OUT373	EQU	0E0H
IN245	EQU	0E4H
CODE 	SEGMENT  
        ASSUME CS:CODE
START:		
	MOV BH,00000001B
S:		
	IN  AL,IN245	
	NOT AL			
	CMP AL, 00000001B
	JNZ S1
	MOV AL,BH
	ROL BH,1
	CALL DELAY
	OUT OUT373,AL
	JMP S
		
S1:		
	MOV BH,01H
	CMP AL, 00000010B
	JZ S2
	OUT OUT373,AL
	JMP S

S2:		
	MOV AL, 01010101B
	MOV CX,2
		
L:		
	NOT AL
	OUT	OUT373,AL
	LOOP L
	JMP S		

DELAY	PROC                  
	MOV CX,0FFFFH
NEXT:	
	NOP
	LOOP NEXT
	RET                 
DELAY	ENDP
			
CODE  	ENDS
	END	START
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
由开关控制 LED 亮灭是微机实验中的一个基础实验,主要目的是通过控制开关状态来控制 LED 的亮灭,同时也可以巩固学生对于微机系统的基本认识和编程技能。 以下是一份可能的实验步骤和程序设计: 实验步骤: 1. 准备工作:准备好开发板、开发软件和连接线等实验器材。 2. 连接硬件:将开发板和电源连接,并将 LED 和开关按照电路图连好。 3. 编写程序:使用 C 语言编写程序,通过读取开关状态来控制相应的 LED 的亮灭。具体代码如下: ```c #include <reg52.h> sbit LED=P0^0; //定义 LED 控制引脚 sbit SW1=P1^0; //定义开关1的输入引脚 sbit SW2=P1^1; //定义开关2的输入引脚 void main() { while(1) { if(SW1==0) { //如果开关1被按下 LED=1; //LED 亮 } else { LED=0; //LED 灭 } if(SW2==0) { //如果开关2被按下 LED=0; //LED 灭 } } } ``` 4. 编译程序:使用编译器将程序编译成 .hex 文件。 5. 烧录程序:将编译生成的 .hex 文件烧录到开发板中。 6. 实验验证:使用开关控制 LED 的亮灭,观察 LED 的状态,验证程序的正确性。 实验结果:通过本实验,我们成功地使用开关控制LED 的亮灭,证明了程序的正确性。 实验总结:本实验通过使用 C 语言编写程序,通过读取开关状态来控制 LED 的亮灭。实验过程中需要注意掌握开发板的硬件连接方式和编程技巧,同时也需要进行相应的调试和优化。通过本实验,我们对微机系统的基本组成和工作原理有了更深入的了解,并掌握了相应的编程技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值