导航:首页 > 操作系统 > 单片机定时闹钟

单片机定时闹钟

发布时间:2023-09-03 04:36:34

A. 求单片机课程设计实验 用汇编语言,基于51单片机的定时闹钟

MODE_RG EQU40H ;模式选择

MODE2 EQU 60H ;MODE值

MODE3 EQU61H

MODE4 EQU62H

MODE5 EQU63H

MODE6 EQU64H

MODE1 EQU65H

HOUR EQU41H ;小时缓冲区

MIN EQU42H ;分钟缓冲区

SEC EQU 43H ;秒缓冲区

TEMP EQU4AH

;*********闹钟缓冲区********************

H_ALARM EQU 6AH ;闹钟缓冲区

M_ALARM EQU6BH

S_ALARM EQU6CH

F_ALARM EQU6DH

;***********秒表缓冲区******************

M_SEC EQU76H

S_SEC EQU77H

;*********LED送显示临时变量*************

LED0 EQU51H

LED1 EQU52H

LED2EQU53H

LED3 EQU54H

MODE_KEYEQUP3.4

UP_KEY EQUP3.3

DOWN_KEY EQUP3.5

BUF EQU49H

ORG0000H

LJMPMAIN

ORG000BH

LJMPINT_0

ORG001BH

LJMPINT_1

ORG0080H

MAIN: MOVSP,#2FH ;堆栈初始化

MOVMODE_RG,#0 ;MODE_RG寄存器值初始化

MOVLED0,#0FEH ;初始化LED

MOVLED1,#0FDH

MOVLED2,#0FBH

MOVLED3,#0F7H

MOVMODE1,#1

MOVMODE2,#2

MOVMODE3,#3

MOVMODE4,#4

MOVMODE5,#5

MOVMODE6,#6

MOVF_ALARM,#0 ;错误2:一开始用CLRF_ALARM,这导致在后面的时候JZF_ALARM运行错误,

MOVBUF,#0 ;在于JZ指令是对累加器A全为0或者全为1进行判断,CLR只能对一位操作

MOVTMOD,#11H ;定时器初始化:定时器0,方式1,定时器1,方式1

MOVIP,#00001000B ;定时器1优先级高

MOVTH0,#3CH ;定时50MS

MOVTL0,#0B1H

MOVTH1,#0D8H ;定时10MS

MOVTL1,#0F0H

SETBEA

SETBET0

SETBET1

SETBTR0;启动定时器

MOVHOUR,#0 ;fortest

MOVMIN,#0

MOVSEC,#0 ;定时器计数器,50MS中断一次,200次则刚好1S

MOVM_SEC,#0

MOVS_SEC,#0

MOVH_ALARM,#0

MOVM_ALARM,#0

MAIN1: LCALLDISPLAY12

LCALLDISPLAY34

;CLRP1.4 TEST

JNBMODE_KEY,KEY_SCAN

MOVA,MODE_RG

CJNEA,MODE6,Y1 ;MODE6秒表

JNBDOWN_KEY,DEALDOWN ;判断秒表开关

JNBUP_KEY,DEALUP

Y1: MOVA,F_ALARM ;判断闹钟

JNZALARM

LJMPMAIN1

;-----------------------------------秒表开关程序---------------------------

DEALDOWN: LCALLDELY10MS

JBDOWN_KEY,MAIN1

H1: JNBDOWN_KEY,H1

CPLTR1

LJMPMAIN1

DEALUP: LCALLDELY10MS

JBUP_KEY,MAIN1

H2: JNBUP_KEY,H2

MOVM_SEC,#0

MOVS_SEC,#0

CLRTR1

LJMPMAIN1

;-----------------------------------闹钟扫描程序---------------------------

ALARM: MOVA,H_ALARM

CPLP1.2

CJNEA,HOUR,EXIT3

MOVA,M_ALARM

CJNEA,MIN,EXIT3

LJMPSTARTALARM

EXIT3: SETBP3.6

LJMPMAIN1

STARTALARM:CPLP3.6

JNBDOWN_KEY,OFFALARM

LJMPS1

OFFALARM: LCALLDELY10MS

JBDOWN_KEY,MAIN1

S2: JNBDOWN_KEY,S2

MOVF_ALARM,#0

SETBP3.6

LJMPMAIN1

S1: LCALLDELAY

LJMPMAIN1

;-----------------------------------键盘扫描程序---------------------------

KEY_SCAN: LCALLDELY10MS

JBMODE_KEY,MAIN1

INCMODE_RG

;SETBP1.4 测试

K1: JNBMODE_KEY,K1 ;按键直到用户松开按键

K2: MOVA,MODE_RG

CJNEA,#0,DEALMODE;不是在正常显示模式下则跳转到模式处理程序

LJMPMAIN1 ;返回主程序

;*******************模式处理程序部分

DEALMODE: MOVTEMP,#0 ;凡转入MODE处理,则首先清除TEMP

MOVA,MODE_RG ;有MODE_RG值不为5、0

CJNEA,MODE2,M0 ;判断MODE_RG值,不为1跳转

LJMPH_GLINT ;模式1,小时位闪烁

M0: CJNEA,MODE3,M1 ;不是模式2,跳转

LJMPM_GLINT ;模式2,分钟位闪烁

M1: CJNEA,MODE4,M2 ;不是模式3,跳转

LJMPH_GLINT

M2: CJNEA,MODE5,M3

LJMPM_GLINT

M3: CJNEA,MODE6,M4

MOVM_SEC,#0

MOVS_SEC,#0

LJMPMAIN1

M4: CJNEA,MODE1,M5

;CLRTR1

LJMPMAIN1

M5: MOVMODE_RG,#0

LJMPMAIN1

;*****************************MODE为1,3,小时位闪烁

//MOVTEMP,HOUR ;将TEMP赋值,防止在加的时候是在随机值的基础上增加

H_GLINT: ;CPLP1.0

MOVR0,#28

MOVR1,#28

K4: LCALLDISPLAY12 ;分开显示

LCALLDISPLAY34

E1: JNBMODE_KEY,K21 ;检测是否有按键按下,有按下则跳转到分钟位闪烁

JBUP_KEY,E9 ;判断加位有无按键按下

LJMPUP

E9: DJNZR0,K4

K6: LCALLDISPLAY34

JNBMODE_KEY,K21 ;检测是否有按键按下,有按下则跳转延时后进行模式判断

LJMPG1

K21: LCALLDELY10MS ;延时后确定有MODE按键按下,将

JBMODE_KEY,H_GLINT

W: JNBMODE_KEY,W

INCMODE_RG

CPLP1.4

LJMPDEALMODE ;确定有按下,MODE+1后返回MODE处理程序

JNBUP_KEY,UP ;判断加位有无按键按下

G1: DJNZR1,K6

LJMPH_GLINT ;调用完毕返回,实现闪烁

K3: LJMPMAIN1 ;可省略

;******************************MODE为2,4,分钟位闪烁

M_GLINT: MOVR0,#28

MOVR1,#28

K23: CPLP1.7

LCALLDISPLAY12

LCALLDISPLAY34

JNBMODE_KEY,KK ;跳转,确定是否有按键按下

JNBUP_KEY,UP ;判断加位有无按键按下

MOVA,MODE_RG

CJNEA,MODE3,E2 ;在MODE5的情况下要判断闹钟确认键有没按下

LJMPE5

E2: JNBDOWN_KEY,F2

LJMPE5

F2: LJMPONALARM2

E5: DJNZR0,K23

K24: LCALLDISPLAY12

JNBMODE_KEY,KK ;检测是否有按键按下,有按下则跳转

JNBUP_KEY,UP ;判断加位有无按键按下

MOVA,MODE_RG ;扫描闹钟确认键

CJNEA,MODE3,E7 ;在MODE5的情况下要判断闹钟确认键有没按下

LJMPG2

E7: JBDOWN_KEY,E8

CPLP1.3

LJMPONALARM2

E8: LJMPG2

KK: LCALLDELY10MS ;去抖

JBMODE_KEY,M_GLINT

W1: JNBMODE_KEY,W1

INCMODE_RG

CPLP1.4

LJMPDEALMODE ;确定有按下,MODE+1后返回MODE处理程序

G2: DJNZR1,K24

LJMPM_GLINT

;*************************位加,处理程序

;***************小时调整

UP: MOVR1,#20

UP11: INCTEMP

UP12: MOVA,MODE_RG ;判断此时的MODE,根据MODE将临时变量给对应的赋值

CJNEA,MODE2,AA0 ;不是在MODE2的情况下跳转

MOVA,TEMP

CJNEA,#24,A_UP1

MOVTEMP,#0

A_UP1: MOVHOUR,TEMP ;为MODE2,将临时变量赋给小时位

LJMPUP15

AA0: CJNEA,MODE4,UP13//UP13为分钟调整入口

MOVA,TEMP

CJNEA,#24,A_UP

MOVTEMP,#0

A_UP: MOVH_ALARM,TEMP ;模式3,将临时变量赋给闹钟的小时位

LJMPUP15 ;UP15为显示入口

;****************分钟调整入口

UP13: MOVA,MODE_RG

CJNEA,MODE3,UP14 ;不是模式2,跳转

MOVA,TEMP

CJNEA,#60,DISOVER2

MOVTEMP,#0

DISOVER2: MOVMIN,TEMP

LJMPUP15

UP14: MOVA,TEMP ;上面判断不是模式2,则必然是模式4

CJNEA,#60,DISOVER3

MOVTEMP,#0

DISOVER3: MOVM_ALARM,TEMP

LJMPUP15

UP15: LCALLDISPLAY12

LCALLDISPLAY34

DJNZR1,UP01

MOVR1,#1 ;

JNBUP_KEY,UP11

UP01: JNBUP_KEY,UP12

UP16: MOVA,MODE_RG ;松开键以后按照模式判断该返回哪种状态,不能返回DEALMODE函数

CJNEA,MODE2,UP17

LJMPH_GLINT

UP17: CJNEA,MODE3,UP18

MOVSEC,#0 ;每次设置完时间后将秒钟位置零保证时间准确

LJMPM_GLINT

UP18: CJNEA,MODE4,UP19

LJMPH_GLINT

UP19: CJNEA,MODE5,UP20

LJMPM_GLINT

UP20: LJMPMAIN1

ONALARM2: LCALLDELY10MS ;延时10MS,去抖

JBDOWN_KEY,B2 ;抖动所致,返回分钟位闪烁

LJMPK42

B2: LJMPM_GLINT

K42: JNBDOWN_KEY,K42

MOVF_ALARM,#0FFH

MOVMODE_RG,#0

LJMPMAIN1

;---------------------------------------中断程序入口---------------------

;*******************时间中断0*********************

;错误1:中断程序EXIT处用了MAIN1,导致一直处于中断状态

INT_0: PUSHACC

PUSHPSW

MOVTH0,#3CH

MOVTL0,#0B1H

INCBUF

MOVA,BUF

CJNEA,#20,EXIT

TIME: MOVBUF,#0

INCSEC

MOVA,SEC

CJNEA,#60,EXIT

MOVSEC,#00H

INCMIN

MOVA,MIN

CJNEA,#60,EXIT

MOVMIN,#00H

INCHOUR

MOVA,HOUR

CJNEA,#24,EXIT

MOVHOUR,#0

RETI

EXIT: POPPSW

POPACC

RETI

;******************时间中断1***********************

INT_1: MOVTH1,#0D8H ;定时10MS

MOVTL1,#0F0H

INCS_SEC

MOVA,S_SEC

CJNEA,#100,EXIT4

MOVS_SEC,#0

INCM_SEC

MOVA,M_SEC

CJNEA,#100,EXIT4

MOVM_SEC,#0

EXIT4: RETI

;---------------------------------------显示-----------------------------

DISPLAY12: MOVA,MODE_RG ;判断模式,决定是显示闹钟时间还是显示当前时间

CJNEA,MODE4,DIS0 ;模式四,显示闹钟

LJMPDIS01 ;MODE4

DIS0: CJNEA,MODE5,DIS20

DIS01: MOVR7,H_ALARM ;闹钟模式

LJMPDIS2

DIS20: CJNEA,MODE6,DIS21

MOVR7,M_SEC ;秒表模式,显示秒表高位

LJMPDIS2

DIS21: CJNEA,MODE1,DIS1

LJMPDIS22

DIS22: MOVR7,MIN

LJMPDIS2

DIS1: MOVR7,HOUR ;DISPLAY12显示高位

DIS2: LCALLBCTD ;判断完毕,调用显示

;将秒、分分别转码,放到R4,R3

MOVA,R4

MOVR3,A

LCALLDIVIDE

MOVDPTR,#NUMTAB

MOVP2,#0FH

MOVP2,LED0

MOVA,45H ;从拆字的出口获取值

MOVCA,@A+DPTR

MOVP0,A

LCALLDELY10MS

MOVP2,LED1

MOVA,46H

MOVCA,@A+DPTR

MOVP0,A

LCALLDELY10MS

RET

DISPLAY34: MOVA,MODE_RG ;判断模式,决定是显示闹钟时间还是显示当前时间

CJNEA,MODE4,DIS31

LJMPDIS32

DIS31: CJNEA,MODE5,DIS35

DIS32: MOVR7,M_ALARM

LJMPDIS34

DIS35: CJNEA,MODE6,DIS41

MOVR7,S_SEC ;秒表模式,显示秒表低位

LJMPDIS34

DIS41: CJNEA,MODE1,DIS33

MOVR7,SEC

LJMPDIS34

DIS33: MOVR7,MIN ;DISPLAY34显示低位

DIS34: LCALLBCTD

MOVA,R4

MOVR3,A

LCALLDIVIDE

MOVP2,LED2

MOVA,47H

MOVCA,@A+DPTR

MOVP0,A

LCALLDELY10MS

MOVP2,LED3

MOVA,48H

MOVCA,@A+DPTR

MOVP0,A

LCALLDELY10MS

SETBP2.3

RET

;--------------------二翻十:入口:R6R7出口:R2R3R4----------------------

BCTD: MOVR5,#16

CLRA

MOVR2,A

MOVR3,A

MOVR4,A

LOOP: CLRC

MOVA,R7

RLCA

MOVR7,A

MOVA,R6

RLCA

MOVR6,A

MOVA,R4

ADDCA,R4

DAA

MOVR4,A

MOVA,R3

ADDCA,R3

DAA

MOVR3,A

MOVA,R2

ADDCA,R2

DAA

MOVR2,A

DJNZR5,LOOP

RET

;-----------------------拆字:入口:R3R4出口:45H46H47H48H------------------

DIVIDE: MOVA,R3

ANLA,#0FH

MOV46H,A

MOVA,R3

ANLA,#0F0H

SWAPA

MOV45H,A;时拆字45H放时高位,46H放十低位

MOVA,R4

ANLA,#0FH

MOV48H,A

MOVA,R4

ANLA,#0F0H

SWAPA

MOV47H,A;分拆字47H放分高位,48H放分低位

RET

;------------------------------------延时----------------------------------

DELY10MS:MOVR6,#10

D1:MOVR7,#248

DJNZR7,$

DJNZR6,D1

RET

DELAY: MOV74H,#2;延时子程序,12M晶振延时1.002秒

L3: MOV72H,#10

L1: MOV73H,#249

L2: DJNZ73H,L2

LCALLDISPLAY12

LCALLDISPLAY34

JNBDOWN_KEY,OFFALARM1

LJMPS3

OFFALARM1: LCALLDELY10MS

JBDOWN_KEY,S3

S4: JNBDOWN_KEY,S4

MOVF_ALARM,#0

SETBP3.6

LJMPMAIN1

S3: DJNZ72H,L1

DJNZ74H,L3

RET

NUMTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH;码表

END

B. 菜鸟要提问关于单片机定时闹钟的课程设计

程序参考

;---------------------------------------------------------------------

;文件名称:nz.ASM

;程序功能:定时闹钟

;--------------------------------------------------------------------

;----------------------------程序初始化-----------------------

;定义存放计时单元地址

;....................

ALBEQU20H.0;闹铃设置标志

;....................

BUFEQU30H;30~33H连续4字节存放显示器数据

HOUREQU34H;存放小时变量

MINEQU35H;存放分钟变量

SECEQU36H;存放秒钟变量

DEDAEQU37H;存放5ms计数值

;....................

HHEQU38H;闹铃设置小时变量

MMEQU39H;闹铃设置分钟变量

;....................

;按键输入引脚定义

K1EQUP2.4;按键K1引脚定义

K2EQUP2.5;按键K2引脚定义

K3EQUP2.6;按键K3引脚定义

K4EQUP2.7;按键K4引脚定义

;蜂鸣器和指示灯引脚定义

SPKEQUP3.4;蜂鸣器控制信号引脚

WLEDEQUP1.0;工作指示灯引脚定义

;程序开始执行地址

ORG0H;程序代码由地址0开始

AJMPMAIN

ORG0BH;定时器T0中断地址设置

AJMPTO_SRV

;-------------------------------主程序-------------------------------

MAIN:;主程序标号

;...................

CLRALB;清除闹铃标志

;...................

ACALLBZ;蜂鸣器连续两次鸣响一声

ACALLBZ

ACALLLED_SD;LED闪动,表示程序开始执行

ACALLINIT;初始变化量

ACALLINIT_TIMER;设置定时器

;加载显示器初值数据

MOVA,#0C0H

MOVP0,A

;无穷循环

LOOP:;无穷循环

ACALLCONV;转换时时分分数据

;....................

ACALLTIME_PRO;检查闹铃时间

;....................

ACALLDISP;扫描显示

JBK1,M1;未按下K1键则继续扫描

ACALLLED_SD;LED闪动

ACALLSET_TIME;设置目前时间

AJMPLOOP;跳转到LOOP处执行

;设置闹铃时间

M1:JBK2,M2;未按下K2键则继续扫描

;.....................

ACALLLED_SD

ACALLSET_ATIME;设置闹铃时间

;.....................

AJMPLOOP;跳转到LOOP处执行

M2:JBK3,M3;未按下K3键则继续扫描

AJMPLOOP;跳转到LOOP处执行

M3:JBK4,M4;未按下K4键则继续扫描

;...................

CPLALB

JNBALB,M31

;闹铃启动连续3次发出响声

ACALLBZ

ACALLBZ

ACALLBZ

;...................

AJMPLOOP;跳转到LOOP处执行

;....................

M31:

ACALLBZ;闹铃停止,发出一声响

AJMPLOOP;跳转到LOOP处执行

;...................

M4:

AJMPLOOP;跳转到LOOP处执行

;-------------------------定时中断模块-------------------

;定时器T0模式0计时

INIT_TIMER:;初始化定时器

MOVTMOD,#00000000B;设置定时器T0工作模式0

MOVIE,#10000010B;启用定时器T0中断产生

MOVTL0,#(8192-4900)MOD32;加载初始值

MOVTH0,#(8192-4900)/32

SETBTR0;启动定时器T0开始计时

RET

;--------------------------

;中断服务程序

TO_SRV:;定时器T0计时中断程序每隔5ms中断一次

PUSHACC;将A值压入堆栈

MOVTL0,#(8192-4900)MOD32;重加载初始值

MOVTH0,#(8192-4900)/32

INCDEDA;加1

;秒输出

MOVA,DEDA

CJNEA,#200,TT1;是否1s到了

MOVDEDA,#0;计数值清除为0

CPLWLED;LED灯亮灭变换

INCSEC;秒计数加1

MOVA,SEC

CJNEA,#60,TT1;是否1min到了

;分输出

INCMIN;分计数加1

MOVSEC,#0;秒计数清除为0

MOVA,MIN

CJNEA,#60,TT1;是否1h到了

;时输出

INCHOUR;小时计数加1

MOVMIN,#0;分计数清除为0

MOVA,HOUR

CJNEA,#24,TT1;是否24h到了

MOVSEC,#0;秒钟变量清除为0

MOVMIN,#0;分钟变量清除为0

MOVHOUR,#0;小时变量清除为0

TT1:

POPACC;将A值由堆栈取出

RETI

;----------------------------------------转换十进制模块---------------------------------

CONV:;转换十进制子程序

;转换小时数据

MOVDPTR,#TABLE;存表

MOVA,HOUR

MOVB,#10

DIVAB

MOVCA,@A+DPTR;查表转换

MOVBUF,A

MOVA,B

MOVCA,@A+DPTR

MOVBUF+1,A

;转换分钟数据

MOVA,MIN

MOVB,#10

DIVAB

MOVCA,@A+DPTR;查表转换

MOVBUF+2,A

MOVA,B

MOVCA,@A+DPTR;查表转换

MOVBUF+3,A

RET

;字型数据编码表

TABLE:

DB0C0H,0F9H,0A4H,0B0H

DB99H,92H,82H,0F8H

DB80H,90H,88H,83H

DB0C6H,0A1H,86H,8EH

;--------------------------------------扫描显示模块------------------------------------

DISP:;扫描显示子程序

MOVR0,#BUF;指向显示器显示缓冲区起始地址

MOVR2,#4;执行4次循环

MOVACC,#11110111b;加载扫描信号初值11110111B

S1:

PUSHACC

MOVA,@R0;读取出显示器数据

MOVP0,A;由P0送出一位显示器数据

POPACC

MOVP2,ACC;由P2送出扫描输出信号

MOVR5,#2;延迟一段时间

ACALLDELAY1MS_R5

;改变扫描码EX:XXXX1011

RRA;累加器A向右移动一位

INCR0;显示器显示缓冲区地址加1

DJNZR2,S1;判断是否继续执行循环

RET

;--------------------------------------调整时间模块------------------------------------

SET_TIME:;设置目前时间子程序

CLRTR0;定时器工作暂停

MOVSEC,#0;秒钟变量清除为0

L0:

ACALLDISP;扫描显示

JBK2,L1;未按下K2键则继续扫描

JNBK2,$;有按下则等待放开

;K2小时调整

INCHOUR;小时计数加1

MOVA,HOUR

CJNEA,#24,L11;是否24H到了

MOVHOUR,#0;小时变量清除为0

L11:

ACALLCONV;转换显示数据

ACALLDISP;扫描显示

AJMPL0;继续程序执行

L1:JBK3,L2;未按下K3键则继续扫描

JNBK3,$;有按下则等待放开

;K3分钟调整.

INCMIN;分钟计数加1

MOVA,MIN

CJNEA,#60,L21;是否60min到了

MOVMIN,#0;分钟变量清除为0

L21:

ACALLCONV;转换显示数据

ACALLDISP;扫描显示

AJMPL0;跳转到L0处执行

L2:JBK4,L0;未按下K4键则继续扫描

JNBK4,$;有按下则等待放开

ACALLBZ;蜂鸣器鸣响一声

;K4设置完成

ACALLLED_SD;LED闪动

SETBTR0;启动定时器

RET

;-------------------------------------计时单元清零模块-------------------------------

INIT:;计时单元清零子程序

MOVDEDA,#0;5ms计数值清除为0

MOVSEC,#0;秒钟变量清除为0

MOVMIN,#0;分钟变量清除为0

MOVHOUR,#0;小时变量清除为0

RET

;--------------------------------------蜂鸣器鸣响模块--------------------------------------

BZ:;蜂鸣器鸣响一声子程序

MOVR6,#250

B1:ACALLDEX

CPLSPK

DJNZR6,B1

MOVR5,#50

ACALLDELAY1MS_R5

RET

;-------------------------------------LED闪动模块-------------------------------------

LED_SD:;工作指示灯闪烁子程序

MOVR4,#6

LE1:CPLWLED;位反向

MOVR5,#25

ACALLDELAY1MS_R5

DJNZR4,LE1;延迟50ms

RET

;------------------------------------------延时模块--------------------------------------

DELAY1MS_R5:;总延迟时间2ms×R5

MOVR6,#10

D1:MOVR7,#100

DJNZR7,$

DJNZR6,D1

DJNZR5,DELAY1MS_R5

RET

;------------------------------------------短暂延时模块---------------------------------

DEX:;短暂延时子程序

MOVR7,#180

DE1:NOP

DJNZR7,DE1

RET

;*********************增加定时闹铃程序部分********************

;-----------------------------------------设置闹铃时间模块--------------------------------

SET_ATIME:;设置闹铃时间子程序

MOVHH,#0

MOVMM,#0

ACALLCONVA;加载闹铃时间数据

N0:

ACALLDISP

;-----------

JBK2,N1;未按下K2键则继续扫描

JNBK2,$;有按下则等待放开

;K2调整小时

INCHH;小时数加1

MOVA,HH

CJNEA,#24,N11;是否24h到了

MOVHH,#0;小时清为0

N11:

ACALLCONVA;加载闹铃时间数据

ACALLDISP;扫描显示

AJMPN0;跳转到N0处执行

;------------

N1:JBK3,N2;未按下K3键则继续扫描

JNBK3,$;有按下则等待放开

;K3调整分钟

INCMM;调整分钟数

MOVA,MM;分钟数加1

CJNEA,#60,N21;是否60min到了

MOVMM,#0;分钟数清为0

N21:

ACALLCONVA;加载闹铃时间数据

ACALLDISP

阅读全文

与单片机定时闹钟相关的资料

热点内容
php提交过滤 浏览:354
豪斯曼检验stata命令 浏览:767
云看地是什么APP 浏览:883
数学指南pdf 浏览:856
phpcurldll64位 浏览:976
程序员脱产一年半 浏览:849
hr招程序员有什么条件 浏览:587
android开源集合 浏览:867
华为云服务器登录密码和账号 浏览:154
中世纪java程序员 浏览:786
什么开发引擎使用python 浏览:176
sh脚本运行命令 浏览:316
广联达加密锁怎么看到期 浏览:174
cad轨迹命令 浏览:980
同事刷到女程序员自媒体视频 浏览:573
校验算法的缺点是什么 浏览:718
PHP商品分类功能实现 浏览:330
php取字符串中间 浏览:432
程序员经常用工具 浏览:837
降服主力指标源码主图 浏览:502