当前位置:首页 > 单片机 > 单片机
[导读] ;8位数码管显示;P0为段码口、P2为位码口;时钟芯片:DS1302;--------------------------------------DS1302 端口位定义:IO_DATA → P1.1 ; 数据传送总线SCLK → P1.0 ; 时钟控制总线RST → P1.2 ; 复位总

;8位数码管显示
;P0为段码口、P2为位码口
;时钟芯片DS1302

;--------------------------------------
DS1302 端口位定义:
IO_DATA → P1.1 ; 数据传送总线
SCLK → P1.0 ; 时钟控制总线

RST → P1.2 ; 复位总线
;---------------------------------------
24C04 端口位定义:
SDA → P3.6 ;24C01的串行数据线
SCLK → P3.7 ;24C01的串行时钟线
;---------------------------------------
K1 → P1.4 ;独立键
K2 → P1.5
K3 → P1.6
K4 → P1.7
;---------------------------------------
BEEP → P3.3 ;蜂鸣器
;---------------------------------------
使用8位数码管显示:
段码 → P0
位码 → P2
;---------------------------------------


开机显示:
08-48-58 ;实时时间的显示,时、分、秒

K1: → 切换显示内容键,每按一下可切换显示内容,最后返回实时时间的显示。

05-03-06 ;显示 年、月、日

;--------------------------------------------------------------------
K2: → 时间与日期设定键,
K3: → 选择键(位移键)
每按一下可切换设定内容,最后返回实际时间的显示。在设定过程中,被选中的设定位闪动。
选择顺序: 时 → 分 → 日 → 月 → 年 → 返回
K1: → UP 键
K2: → DOWN 键

;--------------------------------------------------------------------
K4: → 报警时间设定键。
K3: → 设定内容选择键,最后返回实际时间的显示。在设定过程中,被选中的设定位闪动。

1-07-30 ;07:30 为报警启动时间, 1 为允许报警,0 为禁止报警

K1: → UP 键
K2: → DOWN 键

;--------------------------------------------------------------------
K3: → 止闹开关
在报警期间内,可以控制报警开与关,其它时间无效。

报警方式:
采用继电器吸合的方式来控制被控对象。
;**************DS1302端口位定义**************
IO_DATABITP1.1;数据传送总线
SCLKBITP1.0;时钟控制总线
RSTBITP1.2;复位总线

K1EQUP1.4;独立键
K2EQUP1.5
K3EQUP1.6
K4EQUP1.7

BEEPEQUP3.3;蜂鸣器
RELAYEQUP3.5;继电器

T_CONUEQU22H;中断计数
TIME_LEQU23H;定时初值
TIME_HEQU24H

TIME_DATAEQU50H;显示时间单元首地址
DATE_DATAEQU60H;显示日期单元首地址
DS_DATAEQU58H;显示定时时间单元首地址
;------------------------------------------------
ORG0000H
AJMPMAIN

ORG000BH
AJMPINT_T0

ORG0100H
;------------------------------------------------
MAIN:
MOVTMOD,#01H;T0,方式1
MOVTIME_L,#00H;50MS定时值
MOVTIME_H,#4CH
MOVT_CONU,#00H;中断次数
MOVIE,#82H;EA=1,ET0=1

MOVA,#00H
MOVR0,#40H;从40H单元开始
MOVR1,#40H;清64个单元
M_CLEAR:MOV@R0,A
INCR0
DJNZR1,M_CLEAR

MOV7FH,#0AH;送熄灭符
SETBBEEP
LCALLTIME_DELAY;调显示延时
LCALLPROSET;DS1302初始化

MAIN1:
LCALLGET_TIME;从DS1302读数据程序
LCALLCHULI;实时时间数据处理
MOVR0,#TIME_DATA;显示时、分、秒
LCALLDISP
MOVR0,#TIME_DATA
LCALLTIME_DISPLAY
LCALLSET_KEY;键功能程序
LCALLCOMP;实时时间与定时时间比较
JBK1,MAIN1
CALLBEEP_BL
MAIN2:
LCALLCHULI;日期数据处理
MOVR0,#DATE_DATA
LCALLDISP;显示年、月、日
MOVR0,#DATE_DATA
LCALLTIME_DISPLAY
JBK1,MAIN2
CALLBEEP_BL
MAIN3:
LCALLDS_CHULI;定时时间数据处理
MOVR0,#DS_DATA
LCALLDS_SP;显示定时时间
MOVR0,#DS_DATA
LCALLDS_DISPLAY
JBK1,MAIN3
CALLBEEP_BL
AJMPMAIN1
;--------------------------------------------
;中断服务子程序
;300MS对闪动标记取反一次
;--------------------------------------------
INT_T0:
PUSHACC
PUSHPSW
MOVTL0,TIME_L
MOVTH0,TIME_H
INCT_CONU
MOVA,T_CONU
CJNEA,#06H,INT_END
MOVT_CONU,#00H
CPL0AH
INT_END:
POPPSW
POPACC
RETI
;--------------------------------------------
;DS1302初始化子程序
;(R0)=数据(R1)=地址
;--------------------------------------------
PROSET:
CLRRST;DS1302复位
CLRSCLK
NOP
NOP
SETBRST

;MOVR1,#80H;写秒寄存器
;MOVR0,#00H;启动振荡器
;LCALLWRITE

;MOVR1,#82H;写分寄存器
;MOVR0,#58H
;LCALLWRITE

;MOVR1,#84H;写时寄存器
;MOVR0,#80H
;LCALLWRITE

MOVR1,#90H;写充电寄存器
MOVR0,#0ABH
LCALLWRITE
RET
;===============================================
;读时间、日期数据子程序
;存放单元40H-46H
;===============================================
GET_TIME:
MOVR1,#81H;读秒
LCALLREAD
MOV40H,R0

MOVR1,#83H;读分
LCALLREAD
MOV41H,R0

MOVR1,#85H;读时
LCALLREAD
MOV42H,R0

MOVR1,#87H;读出日期
LCALLREAD
MOV43H,R0

MOVR1,#89H;读出月份
LCALLREAD
MOV44H,R0

MOVR1,#8BH;读出星期
LCALLREAD
MOV46H,R0

MOVR1,#8DH;读出年
LCALLREAD
MOV45H,R0

RET
;================================================
;写DS1302子程序
;================================================
WRITE:
CLRSCLK
NOP
NOP
SETBRST
NOP
MOVA,R1
MOVR2,#08H
WRI_01:
RRCA;传输地址到DS1302
NOP
NOP
CLRSCLK
NOP
NOP
MOVIO_DATA,C
NOP
NOP
SETBSCLK
NOP
NOP
DJNZR2,WRI_01
CLRSCLK
NOP
NOP
MOVA,R0
MOVR2,#08H
WRI_02:
RRCA;传输数据到DS1302
NOP
CLRSCLK
NOP
NOP
MOVIO_DATA,C
NOP
NOP
SETBSCLK
NOP
NOP
DJNZR2,WRI_02
CLRSCLK
NOP
NOP
CLRRST
NOP
NOP
RET
;=================================================
;读DS1302子程序
;=================================================
READ:
CLRSCLK
NOP
NOP
SETBRST
NOP
NOP
MOVA,R1
MOVR2,#08H
READ_01:
RRCA
NOP;先传输地址到DS1302
MOVIO_DATA,C
NOP
NOP
SETBSCLK
NOP
NOP
CLRSCLK
NOP
NOP
DJNZR2,READ_01
NOP
NOP
SETBIO_DATA
CLRA
CLRC
MOVR2,#08H
READ_02:
CLRSCLK
NOP
NOP
MOVC,IO_DATA
NOP
NOP
RRCA;再从DS1302接收数据
NOP
NOP
SETBSCLK
NOP
NOP
DJNZR2,READ_02
MOVR0,A
CLRRST
RET
;==============================================
;实时时间、日期数据处理子程序
;==============================================
CHULI:
MOVA,40H;处理秒数据
ANLA,#0FH
MOV50H,A
MOV70H,A
MOVA,40H
ANLA,#11110000B
SWAPA
MOV51H,A
MOV71H,A
;---------------------------------------------
MOVA,41H;处理分数据
ANLA,#0FH
MOV52H,A
MOV72H,A
MOVA,41H
ANLA,#11110000B
SWAPA
MOV53H,A
MOV73H,A
;---------------------------------------------
MOVA,42H;处理时数据
ANLA,#0FH
MOV54H,A
MOV74H,A
MOVA,42H
ANLA,#11110000B
SWAPA
MOV55H,A
MOV75H,A
;----------------------------------------------
MOVA,43H;处理日数据
ANLA,#0FH
MOV60H,A
MOV76H,A
MOVA,43H
ANLA,#11110000B
SWAPA
MOV61H,A
MOV77H,A
;---------------------------------------------
MOVA,44H;处理月数据
ANLA,#0FH
MOV62H,A
MOV78H,A
MOVA,44H
ANLA,#11110000B
SWAPA
MOV63H,A
MOV79H,A
;---------------------------------------------
MOVA,45H;处理年数据
ANLA,#0FH
MOV64H,A
MOV7AH,A
MOVA,45H
ANLA,#11110000B
SWAPA
MOV65H,A
MOV7BH,A
;----------------------------------------------
MOVA,46H;处理周数据
MOV66H,A
MOV7CH,A
RET
;=============================================
;实时时间、日期查表取数子程序
;=============================================
DISP:;MOVR0,#TIME_DATA
MOVR3,#06H
DISP1:MOVA,@R0
MOVDPTR,#TAB_NU
MOVCA,@A+DPTR
MOV@R0,A
INCR0
DJNZR3,DISP1
RET
;====================================================
;时间、日期显示子程序
;====================================================
TIME_DISPLAY:
;MOVR0,#TIME_DATA;取得显示单元首地址
MOVR1,#07FH;从第一个数码管开始
MOVR2,#08H;共8个数码管

DISLP:MOVP0,@R0;获得当前单元数据
MOVA,R1
MOVP2,A;数码显示
JBACC.5,DISLP1;第三位数码管显示-
MOVP0,#0f7H
JMPDISLP3
DISLP1:JBACC.2,DISLP2;第六位数码管显示-
MOVP0,#0f7H
JMPDISLP3
DISLP2:INCR0
DISLP3:MOVA,R1;为下一个数准备
RRA;下一个单元
MOVR1,A;保存
LCALLDELAY;为了保证数码管亮度,延时
DJNZR2,DISLP;重复显示,直到全部数据刷新过
RET;返回

DELAY:
MOVR4,#0AH
L15:MOVR5,#64H
L16:DJNZR5,L16
DJNZR4,L15
RET
;******************************************************
SET_KEY:
SETBK1;增加键
SETBK2;减少键
SETBK3;选择键
SETBK4;定时设定功能键
NOP
JBK4,KEY01
LCALLBEEP_BL
JMPDS_KEY;进入定时值设定子程序
KEY01:JBK2,KEY02
LCALLBEEP_BL
JMPSET_TIME;进入时间设定子程序
KEY02:JBK3,KEY03
LCALLBEEP_BL
CPL20H.0;止闹标记取反
KEY03:RET

;-----------------------------------------------------
DS_KEY:
CALLDS_DELAY
JNBK4,$
LCALLDSSET
CALLDS_DELAY
RET
;==============================================
;实时时间设定子程序
;K1为加键、K2为减键、K3为选择键
;==============================================
SET_TIME:
MOVR1,#8EH;写保护寄存器
MOVR0,#00H;允许写入
LCALLWRITE

MOVR1,#80H;写秒寄存器
MOVR0,#80H;停止振荡器工作
LCALLWRITE

SETBTR0

K001:CALLTIME_DELAY;校时
JNBK3,K001;K3为位移键
K010:
CALLCHULI
JNB0AH,KH01
MOV54H,7FH;送入熄灭符
MOV55H,7FH
JMPKH02
KH01:MOV54H,74H;送实时值
MOV55H,75H;送实时值
KH02:MOVR0,#TIME_DATA
CALLDISP
MOVR0,#TIME_DATA
CALLTIME_DISPLAY
JNBK1,K011A
JNBK2,K011B
JNBK3,K002
JMPK010
K011A:
MOVA,42H
ADDA,#01H
DAA
MOV42H,A
XRLA,#24H
JNZK012A
MOV42H,#00H
K012A:MOVR1,#84H;写时寄存器
MOVR0,42H
LCALLWRITE
CALLTIME_DELAY
JMPK010

K011B:
MOVA,42H
XRLA,#00H
JZK012B
SETBC;求补运算
CLRA
ADDCA,#99H;加99
SUBBA,#01H;减去减数
ADDA,42H;加被减数
DAA;十进制调整
MOV42H,A;
XRLA,#00H
JNZK012C
K012B:MOV42H,#23H
K012C:MOVR1,#84H;写时寄存器
MOVR0,42H
LCALLWRITE
CALLTIME_DELAY
JMPK010
;-------------------------------------------------
K002:CALLTIME_DELAY;校分
JNBK3,K002;K3为位移键

K020:CALLCHULI
JNB0AH,KM01

MOV52H,7FH;送入熄灭符
MOV53H,7FH
JMPKM02

KM01:MOV52H,72H;送实时值
MOV53H,73H;送实时值
KM02:MOVR0,#TIME_DATA
CALLDISP
MOVR0,#TIME_DATA
CALLTIME_DISPLAY

JNBK1,K021A
JNBK2,K021B
JNBK3,K003
JMPK020

K021A:
MOVA,41H
ADDA,#01H
DAA
MOV41H,A
XRLA,#60H
JNZK022A
MOV41H,#00H
K022A:MOVR1,#82H;写分寄存器
MOVR0,41H
LCALLWRITE
CALLTIME_DELAY
JMPK020
;---------------------------------------------------
K021B:
MOVA,41H
XRLA,#00H
JZK022B
SETBC;求补运算
CLRA
ADDCA,#99H;加99
SUBBA,#01H;减去减数
ADDA,41H;加被减数
DAA;十进制调整
MOV41H,A;
XRLA,#00H
JNZK022C
K022B:MOV41H,#59H
K022C:MOVR1,#82H;写分寄存器
MOVR0,41H
LCALLWRITE
CALLTIME_DELAY
JMPK020
;---------------------------------------------------
K003:CALLDATE_DELAY;校日
JNBK3,K003;K3为位移键

K030:CALLCHULI
JNB0AH,KR01

MOV60H,7FH;送入熄灭符
MOV61H,7FH
JMPKR02

KR01:MOV60H,76H;送实时值
MOV61H,77H;送实时值
KR02:MOVR0,#DATE_DATA
CALLDISP
MOVR0,#DATE_DATA
CALLTIME_DISPLAY
JNBK1,K031A
JNBK2,K031B
JNBK3,K004
JMPK030
K031A:
MOVA,43H
ADDA,#01H
DAA
MOV43H,A
XRLA,#32H
JNZK032A
MOV43H,#00H
K032A:MOVR1,#86H;写日寄存器
MOVR0,43H
LCALLWRITE
CALLDATE_DELAY
JMPK030

K031B:
MOVA,43H
XRLA,#00H
JZK032B
SETBC;求补运算
CLRA
ADDCA,#99H;加99
SUBBA,#01H;减去减数
ADDA,43H;加被减数
DAA;十进制调整
MOV43H,A
XRLA,#00H
JNZK032C
K032B:MOV43H,#31H
K032C:MOVR1,#86H;写日寄存器
MOVR0,43H
LCALLWRITE
CALLDATE_DELAY
JMPK030
;------------------------------------------------
K004:CALLDATE_DELAY;校月
JNBK3,K004;K3为位移键

K040:CALLCHULI
JNB0AH,KC01

MOV62H,7FH;送入熄灭符
MOV63H,7FH
JMPKC02

KC01:MOV62H,78H;送实时值
MOV63H,79H;送实时值
KC02:MOVR0,#DATE_DATA
CALLDISP
MOVR0,#DATE_DATA
CALLTIME_DISPLAY
JNBK1,K041A
JNBK2,K041B
JNBK3,K005
JMPK040
K041A:
MOVA,44H
ADDA,#01H
DAA
MOV44H,A
XRLA,#13H
JNZK042A
MOV44H,#00H
K042A:MOVR1,#88H;写月寄存器
MOVR0,44H
LCALLWRITE
CALLDATE_DELAY
JMPK040

K041B:
MOVA,44H
XRLA,#00H
JZK042B
SETBC;求补运算
CLRA
ADDCA,#99H;加99
SUBBA,#01H;减去减数
ADDA,44H;加被减数
DAA;十进制调整
MOV44H,A;
XRLA,#00H
JNZK042C
K042B:MOV44H,#12H
K042C:MOVR1,#88H;写月寄存器
MOVR0,44H
LCALLWRITE
CALLDATE_DELAY
JMPK040
;-----------------------------------------------
K005:CALLDATE_DELAY;校年
JNBK3,K005;K3为位移键

K050:CALLCHULI
JNB0AH,KY01

MOV64H,7FH;送入熄灭符
MOV65H,7FH
JMPKY02

KY01:MOV64H,7AH;送实时值
MOV65H,7BH;送实时值
KY02:MOVR0,#DATE_DATA
CALLDISP
MOVR0,#DATE_DATA
CALLTIME_DISPLAY
JNBK1,K051A
JNBK2,K051B
JNBK3,K008
JMPK050
K051A:
MOVA,45H
ADDA,#01H
DAA
MOV45H,A
XRLA,#9AH
JNZK052A
MOV45H,#00H
K052A:MOVR1,#8CH;写年寄存器
MOVR0,45H
LCALLWRITE
CALLDATE_DELAY
JMPK050

K051B:
MOVA,45H
XRLA,#00H
JZK052B
SETBC;求补运算
CLRA
ADDCA,#99H;加99
SUBBA,#01H;减去减数
ADDA,45H;加被减数
DAA;十进制调整
MOV45H,A;
XRLA,#00H
JNZK052C
K052B:MOV45H,#99H
K052C:MOVR1,#8CH;写年寄存器
MOVR0,45H
LCALLWRITE
CALLDATE_DELAY
JMPK050
;-------------------------------------------------
K008:JNBK3,K008
MOVR1,#80H;写秒寄存器
MOVR0,#00H;启动振荡器工作
LCALLWRITE

MOVR1,#8EH;写保护寄存器
MOVR0,#80H;禁止写入
LCALLWRITE

CALLDATE_DELAY
CLR0AH
CLRTR0
CALLBEEP_BL
RET
;===================================================
;定时时间设定子程序
;K1为加键、K2为减键、K3为选择键
;===================================================
DSSET:
SETBTR0
DS01:LCALLDS_DELAY;定时分设定
JNBK4,$

DS010:CALLDS_CHULI
JNB0AH,DS01_1
MOV58H,7FH;送入熄灭符
MOV59H,7FH
JMPDS01_2

DS01_1:MOV58H,70H;送实时值
MOV59H,71H;送实时值
DS01_2:MOVR0,#58H
LCALLDS_SP
MOVR0,#58H
LCALLDS_DISPLAY
JNBK1,DS01A;加键
JNBK2,DS01B;减键
JNBK3,DS02
JMPDS010

DS01A:;加
MOVA,48H
ADDA,#01H
DAA
MOV48H,A
XRLA,#60H
JNZDS011
MOV48H,#00H
DS011:LCALLDS_DELAY
JMPDS010

DS01B:MOVA,48H;判48H是否为0
XRLA,#00H
JZDS012
SETBC;减
CLRA;求补运算
ADDCA,#99H;加99
SUBBA,#01H;减去减数
ADDA,48H;加被减数
DAA;十进制调整
MOV48H,A;
XRLA,#00H
JNZDS013
DS012:MOV48H,#59H
DS013:CALLDS_DELAY
JMPDS010
;----------------------------------------------
DS02:LCALLDS_DELAY;定时时设定
JNBK3,$
DS020:
CALLDS_CHULI
JNB0AH,DS02_1

MOV5AH,7FH;送入熄灭符
MOV5BH,7FH
JMPDS02_2

DS02_1:MOV5AH,72H;送实时值
MOV5BH,73H;送实时值
DS02_2:MOVR0,#58H
LCALLDS_SP
MOVR0,#58H
LCALLDS_DISPLAY
JNBK1,DS02A
JNBK2,DS02B
JNBK3,DS03
JMPDS020

DS02A:MOVA,49H;加
ADDA,#01H
DAA
MOV49H,A
XRLA,#24H
JNZDS021
MOV49H,#00H
DS021:LCALLDS_DELAY
JMPDS020

DS02B:MOVA,49H;判49H是否为0
XRLA,#00H
JZDS022
SETBC;减
CLRA;求补运算
ADDCA,#99H;加99
SUBBA,#01H;减去减数
ADDA,49H;加被减数
DAA;十进制调整
MOV49H,A;
XRLA,#00H
JNZDS023
DS022:MOV49H,#23H
DS023:CALLDS_DELAY
JMPDS020
;-------------------------------------------
DS03:CALLDS_DELAY
JNBK3,$

DS030:CALLDS_CHULI
JNB0AH,DS03_1
MOV5CH,7FH;送入熄灭符
JMPDS03_2
DS03_1:MOV5CH,74H;送实时值
DS03_2:MOVR0,#58H
LCALLDS_SP
MOVR0,#58H
LCALLDS_DISPLAY
JNBK3,DS04
JNBK1,DS03A
JMPDS030

DS03A:CPL20H.1;报警标记取反
JNB20H.1,DS031
MOV4AH,#01H;报警标记=1,允许报警
AJMPDS032
DS031:MOV4AH,#00H;报警标记=0,禁止报警
DS032:LCALLDS_DELAY
JMPDS030
;--------------------------------------------
DS04:CLRTR0
CLR0AH
CALLBEEP_BL
LCALLDS_DELAY
RET

;=============================================
;定时时间数据处理子程序
;=============================================
DS_CHULI:
MOVA,48H;处理分数据
ANLA,#0FH
MOV58H,A
MOV70H,A
MOVA,48H
ANLA,#0F0H
SWAPA
MOV59H,A
MOV71H,A

MOVA,49H;处理时数据
ANLA,#0FH
MOV5AH,A
MOV72H,A
MOVA,49H
ANLA,#0F0H
SWAPA
MOV5BH,A
MOV73H,A

MOVA,4AH;处理定时标记
ANLA,#01H
MOV5CH,A
MOV74H,A
RET
;==================================================
;定时时间查表取数子程序
;==================================================
DS_SP:;MOVR0,#58H
MOVR3,#05H
DS_SP1:MOVA,@R0
MOVDPTR,#TAB_NU
MOVCA,@A+DPTR
MOV@R0,A
INCR0
DJNZR3,DS_SP1
RET
;==================================================
;定时时间显示子程序
;==================================================
DS_DISPLAY:
;MOVR0,#58H;取得设定显示单元首地址
MOVR1,#07FH;从第一个数码管开始
MOVR2,#07H;共7个数码管
DSPLAY:MOVP0,@R0;获得当前单元数据
MOVA,R1
MOVP2,A;数码显示
JBACC.5,DSLP1;第三位数码管显示“-”
MOVP0,#0f7H
JMPDSLP3
DSLP1:JBACC.2,DSLP2;第六位数码管显示“-”
MOVP0,#0f7H
JMPDSLP3
DSLP2:INCR0
DSLP3:MOVA,R1;为下一个数准备
RRA;下一个单元
MOVR1,A;保存
LCALLDELAY
DJNZR2,DSPLAY;重复显示,直到全部数据刷新过
RET;返回
;====================================================
;实时时间与设定时间比较子程序

;20H.0止闹标记,=0,允许,=1,禁止。
;20H.1报警标记,=1,允许,=0,禁止。
;====================================================
COMP:JNB20H.1,COMP1
MOVR0,#TIME_DATA
LCALLTIME_DISPLAY
MOVA,42H;实时时间与设定时间比较
CJNEA,49H,COMP1;先比较时后比较分
MOVA,41H
CJNEA,48H,COMP1
JB20H.0,COMP2;20H.0=1,止闹开关,关
;LCALLBEEP_BL
CLRRELAY;继电器吸合1分钟
JMPCOMP3
COMP1:CLR20H.0
COMP2:SETBRELAY
COMP3:RET

;====================================================
;键延时子程序
;多次调用显示程序做键延时
;====================================================
DS_DELAY:
MOVR6,#0AH;设定定时时间,键延时用
DS_KK:
LCALLDS_CHULI
MOVR0,#DS_DATA
LCALLDS_SP
MOVR0,#DS_DATA
LCALLDS_DISPLAY
DJNZR6,DS_KK
RET

TIME_DELAY:;设定时间,键延时用
MOVR6,#0AH
TIME_KK:
LCALLCHULI
MOVR0,#TIME_DATA
LCALLDISP
MOVR0,#TIME_DATA
CALLTIME_DISPLAY
DJNZR6,TIME_KK
RET

DATE_DELAY:;设定日期,键延时用
MOVR6,#0AH
DATE_KK:
LCALLCHULI
MOVR0,#DATE_DATA
LCALLDISP
MOVR0,#DATE_DATA
CALLTIME_DISPLAY
DJNZR6,DATE_KK
RET

;====================================================
;蜂鸣器响一声子程序(适用交流蜂鸣器)
;====================================================
BEEP_BL:
MOVR6,#100
BL2:CALLDEX1
CPLBEEP
DJNZR6,BL2
MOVR5,#10
CALLDELAY_BL
RET
DEX1:MOVR7,#180
DE2:NOP
DJNZR7,DE2
RET
DELAY_BL:;(R5)*延时10MS
MOVR6,#50
DL1:MOVR7,#100
DJNZR7,$
DJNZR6,DL1
DJNZR5,DELAY_BL
RET

;*************************************************************
TAB_NU:DB28h,7eh,0a2h,62h,74h,61h,21h,7ah,20h,60h
DB0FFH;灭
DB30h,25h,0a9h,26h,0a1h,0b1h;A-F《共阳数码管》
;*************************************************************
END

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

4月30日消息,西安紫光国芯UniIC宣布正式推出全新SSD产品,共有四大系列,包括面向行业应用的高端产品“CTD700”、

关键字: 紫光展锐 芯片

TWSC 2985系列SD6.0存储芯片 国内首颗支持4K LDPC纠错技术 增强纠错、耐久可靠、性能升级

关键字: 德明利 半导体 存储 芯片 国产存储企业

2024年4月11日,中国——意法半导体的ST25R100近距离通信(NFC)读取器芯片独步业界,集先进的技术功能、稳定可靠的通信连接和低廉的成本价格于一身,在大规模制造的消费电子和工控设备内,可以提高非接触式互动功能的...

关键字: 嵌入式 数据读取器 芯片

其最新一代开创性系统集成芯片及配套软件将为4600万辆汽车提供更多安全和便利功能 上海2024年4月17日 /美通社/ -- Mobileye今日宣布,其已向客户交付其最新的EyeQ™6 Lite (EyeQ...

关键字: 芯片 MOBILEYE ADAS 自动驾驶

随着2024年的到来,北斗系统建设已走过栉风沐雨、接续奋斗的30年,几代北斗人也走过了北斗系统建设从无到有,从有源定位到无源定位,从服务中国到服务亚太,再到全球组网的“三步走”发展历程。

关键字: 华大北斗 芯片

微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是一种针对特定应用的控制处理而设计的微处理器芯片,其工作频率(在1M...

关键字: MCU 芯片 半导体

今日凌晨,中国台湾东部的花莲县连续发生地震,最高强度为6.3级,震源深度10公里,据中国地震台网分析,本次地震均为4月3日台湾花莲县海域发生的7.3级地震的余震。中国台湾地区在全球半导体供应链中扮演者重要角色,其10nm...

关键字: 固态硬盘 芯片 存储

在科技飞速发展的今天,电子设备已经成为了我们日常生活中不可或缺的一部分。而在这些电子设备的内部,一个不可或缺的组成部分便是开关电源芯片。作为电源管理集成电路的核心,开关电源芯片在电子设备中发挥着至关重要的作用。本文将深入...

关键字: 开关电源 芯片

开关电源芯片作为电子设备中的重要组成部分,是实现电源转换和管理的核心器件。随着科技的不断进步,开关电源芯片的种类也在不断增加,各具特色,满足了不同设备和应用场景的需求。本文将深入探讨开关电源芯片的种类及其科技应用,带领读...

关键字: 开关电源 芯片

4月17日消息,Intel官方宣布,工程师内部研发了一种新的AI增强工具,可以让系统级芯片设计师原本需要耗费6个星期才能完成的热敏传感器设计,缩短到区区几分钟。

关键字: Intel 芯片 1.8nm
关闭
关闭