电子产业
数字化服务平台

扫码下载
手机洽洽

  • 微信小程序

    让找料更便捷

  • 扫码下载手机洽洽

    随时找料

    即刻洽谈

    点击下载PC版
  • 华强电子网公众号

    电子元器件

    采购信息平台

  • 华强电子网移动端

    生意随身带

    随时随地找货

  • 华强商城公众号

    一站式电子元器件

    采购平台

  • 芯八哥公众号

    半导体行业观察第一站

自动打铃系统 更新时间:2011-05-29 08:50

本词条由华强电子网用户提供,如果涉嫌侵权,请与我们客服联系,我们核实后将及时处理。

关键词:

该系统内设有一服务器,该服务器透过网络与一个以上的自动打铃装置及工作站相连接,该服务器及打铃装置中分别设有一时钟芯片(RTC),该等时钟芯片系用来产生时间讯息,当该打铃装置透过网络定时将时钟芯片(RTC)所产生之时间讯息传送至服务器时,该服务器在接收到该时间讯息,会将本身时钟芯片所产生之时间讯息与之比较,若不符,则将其所产生之时间讯息回馈至各打铃装置上,使各打铃装置之时间讯息统一,而使所设定之打铃时间亦统一,本系统具有打铃时间统一、设备维护方便的优点。

基本方案

  • (1)基本计时和显示功能(用12小时制显示)。包括上下午标志,时、分的数字显示,秒信号指示。

    (2)能设置当前时间(含上、下午,时,分)

    (3)能实现基本打铃功能,规定:

    上午6:00起床铃:打铃5秒、停2秒、再打铃5秒。

    下午10:30熄灯铃:打铃5秒、停2秒、再打铃5秒。

    铃声可用小喇叭播放,凡是用到铃声功能的均按此处理。

拓展方案

  • (1)增加整点报时功能,整点时响铃5秒,要求有控制启动和关闭功能。

    (2)增加调整起床铃、熄灯铃时间的功能。

    (3)增设上午4节课的上下课打铃功能,规定如下:

    7.30 上课,8.20下课:8.30上课,9.20下课;9.40 上课,10.30下课;10.40上课,11.30下课;每次铃声5秒。

软件设计

  • 程序简要说明

    1)实现24小时制电子钟,8位R1,#0   ;调整选择键功能标志:0正常走时、1调时、2调分、3调秒

    MOV 20H,#00H  ;用于控制秒基准时钟源的产生

    MOV 21H,#00H  ;清零秒寄存器

    MOV 22H,#00H  ;清零分寄存器

    MOV 23H,#00H  ;清零时寄存器

    MOV 24H,#00H  ;用于控制调时闪烁的基准时钟的产生

    MOV IP,#02H   ;IP,IE初始化

    MOV IE,#82H

    MOV TMOD,#01H  ;设定定时器0工作方式1

    MOV TH0,#3CH

    MOV TL0,#0B0H  ;赋定时初值,定时50ms

    SETB TR0   ;启动定时器0

    MOV SP,#40H   ;重设堆栈指针

    /*****主程序*****/

    MAIN:

    CJNE R1,#00H,MAIN1 ;是否为正常走时状态

    LCALL BIJIAO1  ;调用起床、熄灯打铃比较子程序

    LCALL BIJIAO2  ;调用上、下课打铃比较子程序

    LCALL DALING1  ;调用响铃方式1执行子程序

    LCALL DALING2  ;调用响铃方式2执行子程序

    MAIN1:

    LCALL DISPLAY   ;调用显示子程序

    LCALL KEY[_]SCAN   ;调用按键检测子程序

    JZ MAIN    ;无键按下则返回重新循环

    LCALL SET[_]KEY   ;调用选择键处理子程序

    JB 46H,MAIN   ;如果已进行长按调整(调时快进),则不再执行下面的单步调整

    LCALL ADD[_]KEY  ;调用增加键处理子程序

    LCALL DEC[_]KEY  ;调用减少键处理子程序

    LCALL DALING[_]KEY ;处理强制打铃/强制关闭铃声键

    LJMP MAIN    ;重新循环

    /*****定时中断服务程序*****/

    TIMER[_]0:

    PUSH ACC

    PUSH PSW    ;保护现场

    MOV TH0,#3CH

    MOV TL0,#0B0H   ;重新赋定时初值

    CPL 47H    ;产生脉冲用于调时快进时基

    INC 24H

    MOV A,24H

    CJNE A,#10,ADD[_]TIME ;产生0.5秒基准时钟,用于调时闪烁

    CPL 48H    ;取反调时闪烁标志位

    MOV 24H,#00H

    ADD[_]TIME:

    INC 20H

    MOV A,20H

    CJNE A,#20,RETI1 ;产生1秒基准时钟

    MOV 20H,#00H   ;一秒钟时间到,清零20H

    MOV A,21H

    ADD A,#01H

    DA A       ;作十进制调整

    MOV 21H,A

    CJNE A,#60H,RETI1

    MOV 21H,#00H   ;一分钟到

    MOV A,22H

    ADD A,#01H

    DA A

    MOV 22H,A

    CJNE A,#60H,RETI1

    MOV 22H,#00H   ;一小时到

    MOV A,23H

    ADD A,#01H

    DA A

    MOV 23H,A

    CJNE A,#24H,RETI1

    MOV 23H,#00H   ;到24点,清零小时

    RETI1:

    POP PSW

    POP ACC    ;恢复现场

    RETI     ;中断返回

    /*****显示处理*****/

    DISPLAY:

    MOV A,21H    ;秒

    ANL A,#0FH

    MOV 2FH,A   ;转换出秒个位,存入2FH

    MOV A,21H

    ANL A,#0F0H

    SA

    MOV 2EH,A   ;转换出秒十位,存入2EH

    JB 46H,MIN   ;如果长按按键(调时快进),则跳过闪烁处理

    CJNE R1,#3,MIN  ;如果R1为3,闪烁秒位待调整

    JB 48H,MIN

    MOV 2FH,#0AH  ;使该位为10,查表得到使该位不显示的输出

    MOV 2EH,#0AH

    MIN:

    MOV A,22H    ;分

    ANL A,#0FH

    MOV 2DH,A   ;转换出分个位,存入2DH

    MOV A,22H

    ANL A,#0F0H

    SWAP A

    MOV 2CH,A   ;转换出分十位,存入2CH

    JB 46H,HOUR   ;如果长按按键(调时快进),则跳过闪烁处理

    CJNE R1,#2,HOUR  ;如果R1为2,闪烁分位待调整

    JB 48H,HOUR

    MOV 2DH,#0AH  ;使该位为10,查表得到使该位不显示的输出

    MOV 2CH,#0AH

    HOUR:

    MOV A,23H    ;时

    ANL A,#0FH

    MOV 2BH,A   ;转换出时个位,存入2BH

    MOV A,23H

    ANL A,#0F0H

    SWAP A

    MOV 2AH,A   ;转换出时十位,存入2AH

    JB 46H,DISP   ;如果长按按键(调时快进),则跳过闪烁处理

    CJNE R1,#1,DISP  ;如果R1为1,闪烁时位待调整

    JB 48H,DISP

    MOV 2BH,#0AH  ;使该位为10,查表得到使该位不显示的输出

    MOV 2AH,#0AH

    /*****数码管动态扫描显示*****/

    DISP:

    MOV DPTR,#TABLE

    MOV A,2FH

    MOVC A,@A+DPTR

    MOV P0,A

    CLR P2.7

    LCALL DELAY

    SETB P2.7   ;显示秒个位

    MOV A,2EH

    MOVC A,@A+DPTR

    MOV P0,A

    CLR P2.6

    LCALL DELAY

    SETB P2.6   ;显示秒十位

    MOV A,#0BFH

    MOV P0,A

    CLR P2.5

    LCALL DELAY

    SETB P2.5   ;显示“-”

    MOV A,2DH

    MOVC A,@A+DPTR

    MOV P0,A

    CLR P2.4

    LCALL DELAY

    SETB P2.4   ;显示分个位

    MOV A,2CH

    MOVC A,@A+DPTR

    MOV P0,A

    CLR P2.3

    LCALL DELAY

    SETB P2.3   ;显示分十位

    MOV A,#0BFH

    MOV P0,A

    CLR P2.2

    LCALL DELAY

    SETB P2.2   ;显示“-”

    MOV A,2BH

    MOVC A,@A+DPTR

    MOV P0,A

    CLR P2.1

    LCALL DELAY

    SETB P2.1   ;显示时个位

    MOV DPTR,#TABLE1 ;该位使用TABLE1以消除前置0

    MOV A,2AH

    MOVC A,@A+DPTR

    MOV P0,A

    CLR P2.0

    LCALL DELAY

    SETB P2.0   ;显示时十位

    RET

    /*****按键检测子程序*****/

    KEY[_]SCAN:

    CLR 46H    ;关闭长按调整(调时快进)标志

    MOV P1,#0FFH   ;将P1口设置成输入状态

    MOV A,P1

    CPL A

    ANL A,#0FH    ;P1口低4位连接4个按键,只判断该4位

    JZ EXIT[_]KEY   ;无键按下则返回

    LCALL DELAY   ;延时去抖动

    MOV A,P1   ;重新判断

    CPL A

    ANL A,#0FH

    JZ EXIT[_]KEY   ;键盘去抖动

    MOV R5,A    ;临时将键值存入R5

    MOV R4,#00H   ;用于控制调时快进速度

    ;设置为00H是为了在进入长按处理前加长延时区分用户的长按与短按,防止误快进

    LOOP:      ;进入长按处理

    LCALL DISPLAY  ;使长按时显示正常

    MOV A,P1

    CPL A

    ANL A,#0FH

    JB 47H,LOOP1

    INC R4    ;调时快进间隔时间基准加1

    LOOP1:

    CJNE R1,#03H,LOOP2 ;如果调秒时长按,则不处理

    LJMP LOOP3

    LOOP2:

    CJNE R4,#99H,LOOP3

    MOV R4,#70H   ;确认用户长按后,重新设定起始值,加快调时快进速度

    SETB 46H   ;长按调整(调时快进)标志

    LCALL ADD[_]KEY

    LCALL DEC[_]KEY

    LOOP3:

    JNZ LOOP    ;等待键释放

    MOV A,R5   ;输出键值

    RET

    EXIT[_]KEY:

    RET

    /*****延时子程序*****/

    DELAY:

    MOV R7,#150

    DJNZ R7,

图册

词条统计

浏览次数:7285