这个电子小制作比较适用,是我在网上看到的,特此收集整理,放在51hei,这里工感谢原作者。用直径Φ5的高亮度LED制作电子钟,有亮度高,字型大,悬挂摆放都适宜的优点,对夜间需要看时间,眼神又不太好的老年人使用是个不错的选择。关键是利于DIY,取材容易,成本低,效果好。
做好的电子钟正面
电子钟背面
红LED做的电子钟 PCB板
原理图 该电子钟用一只按键完成分、时的设置,在设置分时,两位分数码闪动而时不动,待设置时时,两位分数码不动而两位时数码闪动,一但进入时间设置,秒显示自动归零。
7段数码显示的制作:该电子钟有6位7段数码组成,每个数码由35只直径Φ5mm的LED组成,每段用5只LED,下面是数码组成电路图:
每5只LED并联组成一段,显示用扫描法,单位时间内只有一位数码显示,从而减少电源消耗。全钟用一个5V电源,电路设环境光检测控制,当环境光线较亮时,LED也较亮,当环境光线变暗时,LED也减低亮度,避免晚上观看刺眼的毛病。
全钟的制作难度在于电子钟钟面的制作,要使214只(全钟所用LED)LED排列美观,需在电脑中先画好排列图形,然后1:1打印出来,按两位裁好,放置在板面上定位钻孔,这样才不至于变形。如下图
电路说明:驱动电路:位驱动因为电流较大,选用PNP型A1013中功率管;段驱动选NPN型C9014。环境光检测用直径Φ5的光敏电阻,控制部分可选继电器或晶体管都行,该电路选继电器。选继电器有个问题,就是在强光和弱光的切换临界点时,继电器触点有一个抖动过程,时间不超过1秒,但声音很大,换晶体管可能会好一些。如果要加报闹功能,89C2051的11脚有预留,程序中要加写一段报闹程序。
使用说明:该电子钟采用单键调时,按键开关采用不带自锁功能的普通开关,用按键按下的时间长短区分不同功能。在时钟正常工作时,按一下按键(按键时间要短,点动一下即可)显示屏关断显示,再按一下恢复显示。要调时时,长按开关(大概0.5秒)时钟进入调时状态,秒停止计数,两位分位开始闪动,点动开关,分位逐次加1,调到所需时间后长按开关进入时位调整,两位时位开始闪动,点动开关,时位逐次加1,调到所需时间后长按开关退出调时状态,秒恢复计数。该电子钟通电后初始状态为:00:00:00,秒从1开始计数。
- ;中断入口程序
- ORG 0000H
- LJMP START
- ORG 0003H
- RETI
- ORG 000BH
- LJMP INTT0
- ORG 0013H
- RETI
- ORG 001BH
- LJMP INTT1
- ORG 0023H
- RETI
- ORG 002BH
- RETI
- ;======
- ;主程序
- ;======
- START: MOV R0,#70H
- MOV R7,#0BH
- MOV 20H,#00H
- CLEARDISP: MOV @R0,#00H
- INC R0
- DJNZ R7,CLEARDISP
- MOV 7AH,#0AH
- MOV TMOD,#11H
- MOV TL0,#0B0H
- MOV TH0,#3CH
- MOV TL1,#0B0H
- MOV TH1,#3CH
- SETB EA
- SETB ET0
- SETB TR0
- MOV R4,#14H
- START1: LCALL DISPLAY
- JNB P3.7,SETMM1
- SJMP START1
- SETMM1: LJMP SETMM
- ;===========
- ;1秒定时程序
- ;===========
- INTT0: PUSH ACC
- PUSH PSW
- CLR ET0
- CLR TR0
- MOV A,#0B7H ;中断同步修正
- ADD A,TL0
- MOV TL0,A
- MOV A,#3CH
- ADD A,TH0
- MOV TH0,A
- SETB TR0
- DJNZ R4,OUTT0
- ADDSS: MOV R4,#14H
- MOV R0,#71H
- ACALL ADD1 ;加1程序
- MOV A,R3
- CLR C
- CJNE A,#60H,ADDMM
- ADDMM: JC OUTT0
- ACALL CLR0
- MOV R0,#77H
- ACALL ADD1
- MOV A,R3
- CLR C
- CJNE A,#60H,ADDHH
- ADDHH: JC OUTT0
- ACALL CLR0
- MOV R0,#79H
- ACALL ADD1
- MOV A,R3
- CLR C
- CJNE A,#24H,HOUR
- HOUR: JC OUTT0
- ACALL CLR0
- OUTT0: MOV 72H,76H
- MOV 73H,77H
- MOV 74H,78H
- MOV 75H,79H
- POP PSW
- POP ACC
- SETB ET0
- RETI
- ;============
- ;闪动调时程序
- ;============
- INTT1: PUSH ACC
- PUSH PSW
- MOV TL1,#0B0H
- MOV TH1,#3CH
- DJNZ R2,INTT1OUT
- MOV R2,#06H
- CPL 02H
- JB 02H,FLASH1
- MOV 72H,76H
- MOV 73H,77H
- MOV 74H,78H
- MOV 75H,79H
- INTT1OUT: POP PSW
- POP ACC
- RETI
- FLASH1: JB 01H,FLASH2
- MOV 72H,7AH
- MOV 73H,7AH
- MOV 74H,78H
- MOV 75H,79H
- AJMP INTT1OUT
- FLASH2: MOV 72H,76H
- MOV 73H,77H
- MOV 74H,7AH
- MOV 75H,7AH
- AJMP INTT1OUT
- ;=======
- ;加1程序
- ;=======
- ADD1: MOV A,@R0
- DEC R0
- SWAP A
- ORL A,@R0
- ADD A,#01H
- DA A
- MOV R3,A
- ANL A,#0FH
- MOV @R0,A
- MOV A,R3
- INC R0
- SWAP A
- ANL A,#0FH
- MOV @R0,A
- RET
- ;========
- ;清零程序
- ;========
- CLR0: CLR A
- MOV @R0,A
- DEC R0
- MOV @R0,A
- RET
- ;============
- ;时钟调整程序
- ;============
- SETMM: CLR ET0
- CLR TR0
- LCALL DL1S
- JB P3.7,CLOSEDIS
- MOV R2,#06H
- SETB ET1
- SETB TR1
- SET2: JNB P3.7,SET1
- SETB 00H
- SET4: JB P3.7,SET3
- LCALL DL05S
- JNB P3.7,SETHH
- MOV R0,#77H ;加1分程序
- LCALL ADD1
- MOV A,R3
- CLR C
- CJNE A,#60H,HHH
- HHH: JC SET4
- LCALL CLR0
- CLR C
- AJMP SET4
- CLOSEDIS: SETB ET0
- SETB TR0
- CLOSE: JB P3.7,CLOSE
- LCALL DISPLAY
- JB P3.7,CLOSE
- WAITH: JNB P3.7,WAITH
- LJMP START1
- SETHH: CLR 00H
- SETHH1: JNB P3.7,SET5
- SETB 01H
- SET6: JB P3.7,SET7
- LCALL DL05S
- JNB P3.7,SETOUT
- MOV R0,#79H
- LCALL ADD1
- MOV A,R3
- CLR C
- CJNE A,#24H,HOUU
- HOUU: JC SET6
- LCALL CLR0
- AJMP SET6
- SETOUT: JNB P3.7,SETOUT1
- LCALL DISPLAY
- JNB P3.7,SETOUT
- CLR 01H
- CLR 00H
- CLR 02H
- CLR TR1
- CLR ET1
- SETB TR0
- SETB ET0
- LJMP START1
- SET1: LCALL DISPLAY
- AJMP SET2
- SET3: LCALL DISPLAY
- AJMP SET4
- SET5: LCALL DISPLAY
- AJMP SETHH1
- SET7: LCALL DISPLAY
- AJMP SET6
- SETOUT1: LCALL DISPLAY
- AJMP SETOUT
- ;========
- ;显示程序
- ;========
- DISPLAY: MOV R1,#70H
- MOV R5,#0FEH
- PLAY: MOV A,R5
- MOV P3,A
- MOV A,@R1
- MOV DPTR,#TAB
- MOVC A,@A+DPTR
- MOV P1,A
- LCALL DL1MS
- INC R1
- MOV A,R5
- JNB ACC.5,ENDOUT
- RL A
- MOV R5,A
- AJMP PLAY
- ENDOUT: MOV P1,#00H
- MOV P3,#0FFH
- RET
- TAB: DB 3FH,06H,5BH,4FH,66H
- DB 6DH,7DH,07H,7FH,6FH,00H
- ;========
- ;延时程序
- ;========
- DL1MS: MOV R6,#14H
- DL1: MOV R7,#19H
- DL2: DJNZ R7,DL2
- DJNZ R6,DL1
- RET
- DS20MS: ACALL DISPLAY
- ACALL DISPLAY
- ACALL DISPLAY
- RET
- DL1S: LCALL DL05S
- LCALL DL05S
- RET
- DL05S: MOV R3,#20H
- DL05S1: LCALL DISPLAY
- DJNZ R3,DL05S1
- RET
- END
复制代码
|