1 / 13
文档名称:

智能插座程序.docx

格式:docx   大小:23KB   页数:13页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

智能插座程序.docx

上传人:分享精品 2018/6/3 文件大小:23 KB

下载得到文件列表

智能插座程序.docx

文档介绍

文档介绍:ORG 0000H
LJMP MAIN
ORG 000BH
LJMP TIME
ORG 1000H
HOUR1 EQU 10h
HOUR2 EQU 12h
MIN1 EQU 14h
MIN2 EQU 16h
SEC1 EQu 18H
COUNT EQU 20H
NUM1 EQU 22H
NUM2 EQU 24H
LL4 EQU 26H
s1 bit
s2 bit
s3 bit
s4 bit
A1 EQU 36H
A2 EQU 38H
B1 EQU 40H
B2 EQU 42H
WELA bit
DULA bit
C1 EQU 48H
C2 EQU 50H
D1 EQU 52H
D2 EQU 54H
F1 EQU 56H
E1 EQU 58H
TIMEEPRO EQU 60H
MAIN: MOV SP,#50H ;SP初始化
MOV P3,#0FFH ;端口初始化
START: MOV HOUR1,#00H ;初始化的时间变量
MOV MIN1,#00H
MOV SEC1,#00H
MOV HOUR2,#01H ;初始化定时变量
MOV MIN2,#00H
MOV COUNT,#00H ;初始化计时变量
MOV NUM1,#00H ;初始化按键计数变量
MOV NUM2,#00H
MOV TMOD,#01H ;16位计数器
MOV TH0,#0D8H ;赋初值
MOV TL0,#0EFH
SETB ET0 ;中断允许
SETB EA
SETB TR0 ;启动T0
LOOP: MOV A,NUM2
JNZ LOOP1 ;A不为0时转移
LCALL DISPLAY1 ;显示当前时间
LCALL KEYTIME ;调用时间调整子程序
LCALL SETTIME ;调用定时设置子程序
LJMP LOOP
LOOP1: LCALL DISPLAY2 ;显示定时时间
LCALL KEYTIME ;调用时间调整子程序
LCALL SETTIME ;调用定时设置子程序
LJMP LOOP
;***************SETTIME PROGRAM************
SETTIME: ;定时设置子程序
LL1: JB S2,LL3 ;=1时转移
LCALL DELAY5 ;延时5mS
MSTOP1: JB S2,LL3 ;=0时转移
MOV C,S2
JNC MSTOP1 ;=0时转移
INC NUM2 ;按键计数变量加1
MOV A,NUM2
CJNE A,#1H,LL2 ;判断按键计数是否为1
CLR TR0 ;定时器中断关闭
LL2: CJNE A,#3,LL ;判断按键计数是否为3
MOV NUM2,#0 ;按键计数变量清0
SETB TR0 ;定时器中断打开
LL: LCALL DISPLAY2 ;显示定时时间
LL3: MOV A,NUM2 ;A为0时转移
JZ LL5
JB S3,KK2 ;=1时转移
LCALL DELAY5 ;延时5MS
KK1: JB S3,KK2 ;=1时转移
MOV C,S3
JNC KK1 ;=0时转移
MOV A,NUM2
CJNE A,#1,MM1 ;判断按键计数是否为1
INC HOUR2 ;小时定时变量加1
MOV A,HOUR2
CJNE A,#24,MM1 ;判断小时定时变量是否为24
MOV HOUR2,#0 ;小时定时变量为24则复位0
LCALL DISPLAY2 ;显示定时时间
MM1: LCALL DISPLAY2 ;显示定时时间
MOV A,NUM2
CJNE A,#2,kk2 ;判断按键计数是否为2
INC MIN2
MOV A,MIN2
CJNE A,#60,KK2 ;分钟定时变量是否为60
MOV MIN2,#0 ;分钟定时变量为60复位0
LCALL DISPLAY2 ;显示定时时间
KK2: LCALL DISPLAY2
JB S4,LL5 ;=1时转移
LCALL DELAY5 ;延时5MS
KK3: JB S4,LL5 ;=1时转移
MOV C,S4
JNC KK3 ;=0时转移
MOV A,NUM2
CJNE A,#1,MM2 ;判断按键计数是否为1
DEC HOUR2 ;小时定时变量减1
MOV A, HOUR2
CJNE A,#0,MM2
MOV HOUR2,#24
LCALL DISPLAY2
MM2

最近更新