实验报告:LED周期性亮灭和查找平方数

一、LED周期性点灯

1.汇编语言

ORG 0 ; 设置起始地址为0。
START:  SETB P1.0      ; 设置P1.0端口为高电平,LED亮。
        LCALL DELAY_1S ; 调用延时函数DELAY_1S,延时1秒。
        CLR P1.0       ; 清除P1.0端口的高电平,LED灭。
        LCALL DELAY_1S ; 再次调用延时函数DELAY_1S,延时1秒。
        SJMP START     ; 无条件跳转回START标签,实现循环执行。

DELAY_1S: ; 延时1秒的函数
        MOV R2, #20      ; 将20存入R2,作为外循环计数器。
OUTER_LOOP:
        MOV R1, #50      ; 将50存入R1,作为内循环计数器,约为1ms延时。
INNER_LOOP:
        NOP              ; 空操作,占用一个指令周期。
        DJNZ R1, INNER_LOOP ; 内循环,执行50次NOP,约为1ms延时。
        DJNZ R2, OUTER_LOOP ; 外循环,执行20次内循环,约为1秒延时。
        RET              ; 返回主程序。

        END ; 程序结束。

2.结果展示

二、查找平方数

1.代码展示

ORG 0000H ;定义下一条的指令放在地址为0000H存储器
LJMP A1 ;长跳转指令至A1
ORG 0080H
A1: NOP
NOP
MOV SP,#60H
MOV DPTR,#2000H
MOV A,#03H ;对应A2的DB中的第3位
MOVC A,@A+DPTR
A2: SJMP A2
ORG 2000H
DB 01h,04h,09h,10h,19h,24h,31h,40h,51h
END

2.结果展示

三、总结

本次实验报告主要呈现了汇编程序实现延时点灯和汇编语言求平方代码,通过本次实验加深了我对汇编语言的理解。本实验或存在错误。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值