急求有关AT89C2051的电子闹钟设计毕业论文! 相关资料也行。有的朋友请帮帮忙。邮箱:zhouminjun1989@163.com 328069605@qq.com 感谢万分!!!
基于单片机AT89C2051的电子闹钟的设计
- 提问者网友:喧嚣尘世
- 2021-08-11 13:55
- 五星知识达人网友:舊物识亽
- 2021-08-11 14:34
//*APPLICATION NOTE E6000 ICEXPLORER ***************
//* Title: FOR AT89C2051时钟程序 *
//* Version: 00 *
//* Last Updated: *
//* MCU: AT89C2051 *
//* FOR: WWW.PICAVR.COM *
//***************************************************
; 定时器T0、T1溢出周期为50MS,T0为秒计数用, T1为调整时闪烁用,
; P3.7为调整按钮,P1口 为字符输出口,采用共阳显示管。
;**************************************************************
C_HOUR EQU 30H ;当前时的个位地址定义
C_MINUTE EQU 31H ;当前分的个位地址定义
ON_HOUR EQU 32H ;开机时的个位地址定义
ON_MINUTE EQU 33H ;开机分的个位地址定义
OFF_HOUR EQU 34H ;关机时的个位地址定义
OFF_MINUTE EQU 35H ;关机分的个位地址定义
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 中断入口程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ORG 0000H ;程序执行开始地址
LJMP START ;跳到标号START执行
ORG 0003H ;外中断0中断程序入口
RETI ;外中断0中断返回
ORG 000BH ;定时器T0中断程序入口
LJMP INTT0 ;跳至INTTO执行
ORG 0013H ;外中断1中断程序入口
RETI ;外中断1中断返回
ORG 001BH ;定时器T1中断程序入口
LJMP INTT1 ;跳至INTT1执行
ORG 0023H ;串行中断程序入口地址
RETI ;串行中断程序返回
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 主 程 序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ORG 0030H
START: MOV SP,#50H ;堆栈指针入口地址
CLR P1.7
ANL P1,#0FFH
MOV C_HOUR,#00H
MOV C_MINUTE,#00H
;********************************************************************
MOV ON_HOUR,#08H
MOV ON_MINUTE,#00H ;置开机时间为08:00
MOV OFF_HOUR,#08H
MOV OFF_MINUTE,#01H ;置关机时间为08:01
;********************************************************************
MOV R0,#70H ;清70H-7AH共11个内存单元
MOV R7,#0BH ;
CLEARDISP: MOV @R0,#00H ;
INC R0 ;
DJNZ R7,CLEARDISP ;
MOV 20H,#00H ;清20H(标志用)
MOV 7AH,#0AH ;放入"熄灭符"数据
MOV TMOD,#11H ;设T0、T1为16位定时器
MOV TL0,#0B0H ;50MS定时初值(T0计时用)
MOV TH0,#3CH ;50MS定时初值
MOV TL1,#0B0H ;50MS定时初值(T1闪烁定时用)
MOV TH1,#3CH ;50MS定时初值
SETB EA ;总中断开放
SETB ET0 ;允许T0中断
SETB TR0 ;开启T0定时器
MOV R4,#14H ;1秒定时用初值(50MS×20)
LOOP: MOV A,C_HOUR
CJNE A,ON_HOUR,OFF_TIME
MOV A,C_MINUTE
CJNE A,ON_MINUTE,OFF_TIME ;判断当前时间是否等於开机时间
SETB P1.7 ;置开关输出控制端口P3.7为"0"
AJMP START1
OFF_TIME: MOV A,C_HOUR
CJNE A,OFF_HOUR,START1
MOV A,C_MINUTE
CJNE A,OFF_MINUTE,START1 ;判断当前时间是否等於关机时间
CLR P1.7 ;置开关输出控制端口P3.7为"1"
START1: LCALL DISPLAY ;调用显示子程序
JNB P3.7,SETMM1 ;P3.7口为0时转时间调整程序
SJMP LOOP ;P3.7口为1时跳回START1
SETMM1: LJMP SETMM ;转到时间调整程序SETMM
。。。。。。。。。。。。。。。。。。。。。
AT89C2051_带音乐的定时时钟控制器
参考链接: http://www.51picavr.com/news/c8/2009-01/108.htm
- 1楼网友:拾荒鲤
- 2021-08-11 15:53
电子时钟.rar
数字时钟.rar
- 2楼网友:老鼠爱大米
- 2021-08-11 15:17