两个子程序均实现延时1秒的功能,实现方式略有不同,但机制是一样的。
CODE SEGMENT
ASSUME CS:CODE
ORG 100H
START: PUSH CS
POP DS
PUSH CS
POP ES
MOV CX,10
MOV DL,7 ; 蜂鸣
@00:
MOV AH,2
INT 21H
CALL DELAY_PROC
LOOP @00
MOV AH,4CH
INT 21H
DELAY1S PROC NEAR
PUSH AX
PUSH CX
PUSH DX
PUSH SI
PUSH DI
PUSHF
MOV AH,0
INT 1AH
MOV SI,CX
MOV DI,DX
@DELAY:
MOV AH,0
INT 1AH
SUB DX,DI
SBB CX,SI
CMP DX,18 ; 延时1秒
JB @DELAY
POPF
POP DI
POP SI
POP DX
POP CX
POP AX
RET
DELAY1S ENDP
;================================================================
DELAY_PROC PROC NEAR
PUSH ES
PUSH DX
MOV DX,40H
MOV ES,DX
MOV DX,ES:[006CH]
ADD DX,18 ; 延时1秒
DELAY10:
CMP ES:[006CH],DX
JBE DELAY10
POP DX
POP ES
RET
DELAY_PROC ENDP
CODE ENDS
END START
硬件:ESP32芯片、DS3231时钟芯片、五方向按键(带set和rst按键)、有源蜂鸣器、 LCD1602液晶屏(带PCF8574芯片,注意不是背光可调多种颜色的那种RGB1602)
软件:microPython
1、开始自动检测WIFI,检测到之后,自动从网络获取时间,并写入esp8266/esp32、同时写入ds3231时钟芯片中
2、如果不能联网,则自动从ds3231芯片获取时间
3、按中键,可以开启关闭屏幕背光
4、按set键,可以进入菜单,可以设置日期、时间、闹钟以及闹钟是否开启(默认每天循环)
5、液晶屏幕上,时间与温度中间,如果有个显示,表示闹钟是开启状态。 如果没有,则表示闹钟关闭
DS3231micropy : 从 >
如果是蜂鸣器的话,那么加一个电平信号就可以发声了。\x0d\FMQ EQU P10\x0d\ORG 0000H\x0d\LJMP MAIN\x0d\ORG 0030H\x0d\MAIN:\x0d\CPL FMQ\x0d\LCALL DELAY\x0d\SJMP MAIN\x0d\DELAY:\x0d\MOV R2,#200\x0d\DLY:\x0d\MOV R3,#250\x0d\DJNZ R3,$\x0d\DJNZ R2,DLY\x0d\RET\x0d\END
以上就是关于求一个汇编语言程序的定时器,目的是让蜂鸣器一秒响一次。最好能有解释,没有也无所谓全部的内容,包括:求一个汇编语言程序的定时器,目的是让蜂鸣器一秒响一次。最好能有解释,没有也无所谓、ESP32+时钟、闹钟、温度+microPython程序 (2020-10-09)、单片机用汇编语言怎么写一个蜂鸣器程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)