黑客24小时在线接单网站

怎么联系真的黑客,24小时在线黑客联系方式,24小时在线联系黑客,正规黑客私人接单,黑客QQ联系方式

xss032的简单介绍

本文目录一览:

临沂师范有哪些社团

社团注册名称

XSST004同新社[AAA]

XSST023大学生现代视觉文化研究会

XSST063大学生求知学社

XSST067大学生数学建模协会[AAA]

XSST005大学生科技协会[AA]

XSST024大学生联合社[A]

XSST006大学生保护母亲河协会 [AA]

XSST025大学生化工协会[A]

XSST028同舟社会实践协会

XSST058大学生舞蹈队

XSST059大学生合唱团

XSST060大学生民族管弦乐团[AA]

XSST012武术协会[AA]

XSST030舞蹈协会

XSST062大学生轮滑爱好者协会[A]

XSST032木球协会

XSST031兰亭书法协会[A]

XSST065大学生动漫爱好者协会

XSST043大学生公益协会

XSST044大学生墙绘协会

XSST007朝阳社工协会[AAAA]

XSST033沂蒙问题研究所

XSST034史苑协会[A]

XSST069大学生礼仪协会

XSST011凤凰文管协会

XSST013心理健康教育协会[A]

XSST014未来教育家协会[AA]

XSST036学探社

XSST035网络文化先锋社

XSST070大学生百艺新理念协会

XSST029青年电影人协会

XSST001净语剧社[AAAA]

XSST015闻心社[A]

XSST016燎原文学社[AAA]

XSST037弘文书画社

XSST026零度艺术社

XSST027播音主持艺术学会

XSST002青年志愿者协会[AAA]

XSST038法学与企业管理研究协会

XSST039女子俱乐部

XSST040科学发展观研究会

XSST041法制之家[A]

XSST046爱心社

XSST017经济沙龙协会[A]

XSST042轩辕商社[A]

XSST008语苑学社[AAAA]

XSST018新月社[AAA]

XSST045大学生外语演讲协会

XSST061时尚运动协会

XSST064女大学生关爱协会

XSST066大学生心理导航协会[A]

XSST068大学生职业导航协会

XSST019邓小平理论研究会[AA]

XSST047大学生学术研究会[A]

XSST048绿色家园协会

XSST009电脑爱好者协会[AA]

XSST049大学生职业生涯规划协会[A]

XSST050创业者协会

XSST003沂蒙环境保护协会[AAA]

XSST020大学生摄影协会[AA]

XSST051励新社

XSST052沂蒙文化旅游研究会

XSST010 IT协会[AA]

XSST021大学生科技创新协会[AA]

XSST055大学生汽车文化协会

XSST056爱心互助协会[A]

XSST022绿苑景观协会[AA]

XSST057大学生动物保护者协会[A]

单片机问题

HOUR EQU 030H ;小时缓存

MINUTE EQU 031H ;分钟缓存

SECOND EQU 032H ;秒缓存

DHOUR EQU 040H ;定时小时缓存

DMINUTE EQU 041H ;定时分钟缓存

AJBZ EQU 042H ;按键次数标志

DSBZ EQU 022H ;定时开关标志

COUNT1 EQU 033H ;总计数到4000:拆分成40*100 总计数1

COUNT2 EQU 034H

SPL EQU 020H ;闪烁判断的依据

SET_BTN EQU 021H ;按键标志位

ORG 0000H

AJMP MAIN

ORG 001BH ;定时计数器T1中断入口地址

AJMP IT_1

ORG 040H

MAIN:MOV SPL,#00H ;闪烁标志清零

MOV DPTR,#TABLE ;码段首地址

MOV HOUR,#00H ;小时缓存清零

MOV MINUTE,#00H ;分缓存清零

MOV DHOUR,#00H ;定时小时缓存清零

MOV DMINUTE,#00H ;定时分缓存清零

MOV SECOND,#00H ;秒缓存清零

MOV AJBZ,#00H ;按键次数缓存清零

MOV COUNT1,#00H ;总计数1清零

MOV COUNT2,#00H ;总计数2清零

MOV DHOUR,#00H ;定时小时地址清零

MOV DSBZ,#00H ;定时开关标志清零

CLR P3.0 ;定时时间到控制位清零

MOV TMOD,#20H ;设置计数方式

MOV TH1,#06H ;定时计数器T1高八位初值

MOV TL1,#06H ;定时计数器低八位初值

MOV IE,#10001000B ;设置允许中断,并且打开两个定时器

SETB TR1

LOOP:JNB P0.0,JUST_TIME ;P0.0为零跳转(调时操作)

JB SET_BTN.0,JUST_TIME ;标志位为1跳转

JNB P0.1, SUBB_TIME ;减操作

JB SET_BTN.1,SUBB_TIME

JNB P0.2, ADD_TIME ;加操作

JB SET_BTN.2,ADD_TIME

JB P0.7,TIME

CLR P3.0

TIME1:JB SPL.3,DSXS ;转定时小时显示

JB SPL.4,DSXS ;转定时分钟显示

JB SPL.5,DSXS ;转定时开关显示

ACALL HOUR_SHOW ;小时显示

ACALL MINUTE_SHOW ;分钟显示

ACALL SECOND_SHOW ;秒显示

FHLOOP:AJMP LOOP

DSXS:ACALL DHOUR_SHOW ;定时小时显示

ACALL DMINUTE_SHOW ;定时分钟显示

ACALL DSECOND_SHOW ;定时开关显示

AJMP LOOP

JUST_TIME:

LJMP JUST_TIME1

SUBB_TIME:

JB SET_BTN.1,WAIT_BTN2_UP

ACALL DELAY2;

JB P0.1, TIME

SETB SET_BTN.1

JB SPL.1,SUBB_HOUR

JB SPL.2,SUBB_MIN

JB SPL.3,DSUBB_HOUR

JB SPL.4,DSUBB_MIN

JB SPL.5,GDS

AJMP TIME

ADD_TIME:

LJMP ADDTIME

SUBB_MIN:

MOV R1,MINUTE

CJNE R1,#00H,SUBB_MIN_OPT

MOV MINUTE,#3BH

AJMP TIME

SUBB_MIN_OPT:

DEC MINUTE

AJMP TIME

DSUBB_MIN:

MOV R1,DMINUTE

CJNE R1,#00H,DSUBB_MIN_OPT

MOV DMINUTE,#3BH

AJMP TIME

DSUBB_MIN_OPT:

DEC DMINUTE

AJMP TIME

SUBB_HOUR:

MOV R1,HOUR

CJNE R1,#00H,SUBB_HOUR_OPT

MOV HOUR,#17H

AJMP TIME

SUBB_HOUR_OPT:

DEC HOUR

AJMP TIME

DSUBB_HOUR:

MOV R1,DHOUR

CJNE R1,#00H,DSUBB_HOUR_OPT

MOV DHOUR,#17H

AJMP TIME

DSUBB_HOUR_OPT:

DEC DHOUR

AJMP TIME

WAIT_BTN2_UP:

JNB P0.1,TIME

CLR SET_BTN.1

AJMP TIME

TIME:LJMP TIME1

GDS:CLR DSBZ.0

LJMP TIME

ADDTIME:JB SET_BTN.2,WAIT_BTN3_UP

ACALL DELAY2

JB P0.2, TIME

SETB SET_BTN.2

JB SPL.1,ADD_HOUR

JB SPL.2,ADD_MIN

JB SPL.3,DADD_HOUR

JB SPL.4,DADD_MIN

JB SPL.5,KDS

LJMP TIME

ADD_MIN:MOV R1,MINUTE

CJNE R1,#3BH,ADD_MIN_OPT

MOV MINUTE,#00H

LJMP TIME

ADD_MIN_OPT:

INC MINUTE

LJMP TIME

DADD_MIN:

MOV R1,DMINUTE

CJNE R1,#3BH,DADD_MIN_OPT

MOV DMINUTE,#00H

LJMP TIME

DADD_MIN_OPT:

INC DMINUTE

LJMP TIME

ADD_HOUR:

MOV R1,HOUR

CJNE R1,#17H,ADD_HOUR_OPT

MOV HOUR,#00H

LJMP TIME

ADD_HOUR_OPT:

INC HOUR

LJMP TIME

DADD_HOUR:

MOV R1,DHOUR

CJNE R1,#17H,DADD_HOUR_OPT

MOV DHOUR,#00H

LJMP TIME

DADD_HOUR_OPT:

INC DHOUR

LJMP TIME

WAIT_BTN3_UP:

JNB P0.2,TIME

CLR SET_BTN.2

LJMP TIME

KDS:SETB DSBZ.0

LJMP TIME

JUST_TIME1:

JB SET_BTN.0,WAIT_UP

ACALL DELAY2

JB P0.0, TIME

SETB SET_BTN.0

MOV R1,AJBZ

CJNE R1,#05H,INC1

MOV AJBZ,#00H

MOV SPL,#00H

LJMP TIME

INC1:INC AJBZ

MOV R1,AJBZ

CJNE R1,#01H,JSFZ ;计时分钟

SETB SPL.1

LJMP TIME

JSFZ:CJNE R1,#02H,DSX ;定时小时

CLR SPL.1

SETB SPL.2

LJMP TIME

DSX:CJNE R1,#03H,DSFZ ;定时分钟

CLR SPL.2

SETB SPL.3

LJMP TIME

DSFZ:CJNE R1,#04H,DSKG ;定时开关

CLR SPL.3

SETB SPL.4

DSKG:CJNE R1,#05H,LJUMP_TIME ;返回显示状态

CLR SPL.4

SETB SPL.5

LJUMP_TIME:

LJMP TIME

WAIT_UP:JNB P0.0,LJUMP_TIME ;等待按键松开,松开后清零按键标志

CLR SET_BTN.0

LJMP TIME

WAIT2_DL1:

ACALL DELAY1

ACALL DELAY1

RET

HOUR_SHOW:

JNB SPL.1, HOUR_SHOW_HRER

JB SPL.0, HOUR_SHOW_HRER

ACALL WAIT2_DL1

RET

HOUR_SHOW_HRER: ;小时显示

SETB P2.6

SETB P2.7

CLR A

MOV A,HOUR

MOV B,#0AH

DIV AB ;小时十位在A中,个位在B中

MOVC A,@A+DPTR

MOV P1,#00H ;P1口控制显示数据,此时显示小时十位数据

MOV P1,A

CLR P2.7 ;P2口控制位置(低电平有效;共阴显示)

;延时

ACALL DELAY1

SETB P2.7 ;熄灭小时

MOV P1,#00H

MOV A,B ;B中存放的小时各位数据放入A

MOVC A,@A+DPTR

MOV P1,A

CLR P2.6 ;显示小时个位数据

;延时

ACALL DELAY1

SETB P2.6

MOV P1,#00H

RET

MINUTE_SHOW:

JNB SPL.2, MINUTE_SHOW_HERE

JB SPL.0, MINUTE_SHOW_HERE

ACALL WAIT2_DL1

RET

MINUTE_SHOW_HERE:

SETB P2.5

SETB P2.4

CLR A

MOV A,MINUTE

MOV B,#0AH

DIV AB

MOVC A,@A+DPTR

MOV P1,#00H

MOV P1,A

CLR P2.5

;延时

ACALL DELAY1

SETB P2.5

MOV P1,#00H

MOV A,B

MOVC A,@A+DPTR

MOV P1,A

CLR P2.4

;延时

ACALL DELAY1

SETB P2.4

MOV P1,#00H

RET

SECOND_SHOW:

SETB P2.3

SETB P2.2

CLR A

MOV A,SECOND

MOV B,#0AH

DIV AB

MOVC A,@A+DPTR

MOV P1,#00H

MOV P1,A

CLR P2.3

;延时

ACALL DELAY1

SETB P2.3

MOV P1,#00H

MOV A,B

MOVC A,@A+DPTR

MOV P1,A

CLR P2.2

;延时

ACALL DELAY1

SETB P2.2

JNB DSBZ.0,DYFH ;定时比较开始

JB P3.0,DYFH

MOV A,HOUR

CJNE A,DHOUR,DYFH

MOV A,MINUTE

CJNE A,DMINUTE,DYFH

SETB P3.0

DYFH:RET

DHOUR_SHOW: ;调整定时时间显示

JNB SPL.3,XSS

JB SPL.0, XSS

ACALL WAIT2_DL1

RET

XSS:SETB P2.6

SETB P2.7

CLR A

MOV A,DHOUR

MOV B,#0AH

DIV AB ;小时十位在A中,个位在B中

MOVC A,@A+DPTR

MOV P1,#00H ;P1口控制显示数据,此时显示小时十位数据

MOV P1,A

CLR P2.7 ;P2口控制位置(低电平有效;共阴显示)

;延时

ACALL DELAY1

SETB P2.7 ;熄灭小时

MOV P1,#00H

MOV A,B ;B中存放的小时个位数据放入A

MOVC A,@A+DPTR

MOV P1,A

CLR P2.6 ;显示小时个位数据

;延时

ACALL DELAY1

SETB P2.6

MOV P1,#00H

RET

;定时分钟显示

DMINUTE_SHOW:

JNB SPL.4,XSF

JB SPL.0, XSF

ACALL WAIT2_DL1

RET

XSF:SETB P2.5

SETB P2.4

CLR A

MOV A,DMINUTE

MOV B,#0AH

DIV AB

MOVC A,@A+DPTR

MOV P1,#00H

MOV P1,A

CLR P2.5

;延时

ACALL DELAY1

SETB P2.5

MOV P1,#00H

MOV A,B

MOVC A,@A+DPTR

MOV P1,A

CLR P2.4

;延时

ACALL DELAY1

SETB P2.4

MOV P1,#00H

RET

;定时开关显示

DSECOND_SHOW:

JNB SPL.5,XSM ;显示秒(定时开关)

JB SPL.0,XSM

ACALL WAIT2_DL1

RET

XSM:SETB P2.3

SETB P2.2

CLR A

MOV A,#00H

MOVC A,@A+DPTR

MOV P1,A

CLR P2.3

;延时

ACALL DELAY1

SETB P2.3

MOV P1,#00H

JNB DSBZ.0,GBZ ;关标志

MOV A,#0BH

AJMP XS

GBZ:MOV A,#0AH

XS:MOVC A,@A+DPTR

MOV P1,A

CLR P2.2

;延时

ACALL DELAY1

SETB P2.2

MOV P1,#00H

RET

;短延时 ;显示短延时

DELAY1:MOV R6,#03H

DL1:MOV R7,08H

DL2:DJNZ R7,DL2

DJNZ R6,DL1

RET

;按键延时

DELAY2:MOV R6,#0AH

DL21:MOV R7,0AH

DL22:DJNZ R7,DL22

DJNZ R6,DL21

RET

IT_1:PUSH ACC

PUSH B

PUSH PSW

INC COUNT1

MOV A,COUNT1

CJNE A,#28H,RETI_LABLE

INC COUNT2

MOV COUNT1,#00H

MOV A,COUNT2

MOV B,#32H

DIV AB

MOV A,B

JNZ C2_OPT

CPL P3.7 ;秒的闪烁

CPL SPL.0 ;调整闪烁

C2_OPT:MOV A,COUNT2

CJNE A,#64H,RETI_LABLE

INC SECOND

MOV COUNT2,#00H

MOV A,SECOND

CJNE A,#3CH,RETI_LABLE;

INC MINUTE

MOV SECOND,#00H

MOV A,MINUTE

CJNE A,#3CH,RETI_LABLE;

INC HOUR

MOV MINUTE,#00H

MOV A,HOUR

CJNE A,#18H,RETI_LABLE

MOV HOUR,#00H

RETI_LABLE:

POP PSW

POP B

POP ACC

RETI

;TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H ;共阴码表

TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,8EH,0C8H ;共阳码表

; 0 1 2 3 4 5 6 7 8 9 F N

END

有时、分、秒显示,可以定时驱动继电器来控制你的家用电器,具体使用方法看程序吧,程序懂了你就能做出来了

89s52给写个能定时7小时的程序

HOUR EQU 030H ;小时缓存

MINUTE EQU 031H ;分钟缓存

SECOND EQU 032H ;秒缓存

DHOUR EQU 040H ;定时小时缓存

DMINUTE EQU 041H ;定时分钟缓存

AJBZ EQU 042H ;按键次数标志

DSBZ EQU 022H ;定时开关标志

COUNT1 EQU 033H ;总计数到4000:拆分成40*100 总计数1

COUNT2 EQU 034H

SPL EQU 020H ;闪烁判断的依据

SET_BTN EQU 021H ;按键标志位

ORG 0000H

AJMP MAIN

ORG 001BH ;定时计数器T1中断入口地址

AJMP IT_1

ORG 040H

MAIN:MOV SPL,#00H ;闪烁标志清零

MOV DPTR,#TABLE ;码段首地址

MOV HOUR,#00H ;小时缓存清零

MOV MINUTE,#00H ;分缓存清零

MOV DHOUR,#00H ;定时小时缓存清零

MOV DMINUTE,#00H ;定时分缓存清零

MOV SECOND,#00H ;秒缓存清零

MOV AJBZ,#00H ;按键次数缓存清零

MOV COUNT1,#00H ;总计数1清零

MOV COUNT2,#00H ;总计数2清零

MOV DHOUR,#00H ;定时小时地址清零

MOV DSBZ,#00H ;定时开关标志清零

CLR P3.0

MOV TMOD,#20H ;设置计数方式

MOV TH1,#06H ;定时计数器T1高八位初值

MOV TL1,#06H ;定时计数器低八位初值

MOV IE,#10001000B ;设置允许中断,并且打开两个定时器

SETB TR1

LOOP:JNB P0.0,JUST_TIME ;P0.0为零跳转(调时操作)

JB SET_BTN.0,JUST_TIME ;标志位为1跳转

JNB P0.1, SUBB_TIME ;减操作

JB SET_BTN.1,SUBB_TIME

JNB P0.2, ADD_TIME ;加操作

JB SET_BTN.2,ADD_TIME

JB P0.7,TIME

CLR P3.0

TIME1:JB SPL.3,DSXS ;转定时小时显示

JB SPL.4,DSXS ;转定时分钟显示

JB SPL.5,DSXS ;转定时开关显示

ACALL HOUR_SHOW ;小时显示

ACALL MINUTE_SHOW ;分钟显示

ACALL SECOND_SHOW ;秒显示

FHLOOP:AJMP LOOP

DSXS:ACALL DHOUR_SHOW ;定时小时显示

ACALL DMINUTE_SHOW ;定时分钟显示

ACALL DSECOND_SHOW ;定时开关显示

AJMP LOOP

JUST_TIME:

LJMP JUST_TIME1

SUBB_TIME:

JB SET_BTN.1,WAIT_BTN2_UP

ACALL DELAY2;

JB P0.1, TIME

SETB SET_BTN.1

JB SPL.1,SUBB_HOUR

JB SPL.2,SUBB_MIN

JB SPL.3,DSUBB_HOUR

JB SPL.4,DSUBB_MIN

JB SPL.5,GDS

AJMP TIME

ADD_TIME:

LJMP ADDTIME

SUBB_MIN:

MOV R1,MINUTE

CJNE R1,#00H,SUBB_MIN_OPT

MOV MINUTE,#3BH

AJMP TIME

SUBB_MIN_OPT:

DEC MINUTE

AJMP TIME

DSUBB_MIN:

MOV R1,DMINUTE

CJNE R1,#00H,DSUBB_MIN_OPT

MOV DMINUTE,#3BH

AJMP TIME

DSUBB_MIN_OPT:

DEC DMINUTE

AJMP TIME

SUBB_HOUR:

MOV R1,HOUR

CJNE R1,#00H,SUBB_HOUR_OPT

MOV HOUR,#17H

AJMP TIME

SUBB_HOUR_OPT:

DEC HOUR

AJMP TIME

DSUBB_HOUR:

MOV R1,DHOUR

CJNE R1,#00H,DSUBB_HOUR_OPT

MOV DHOUR,#17H

AJMP TIME

DSUBB_HOUR_OPT:

DEC DHOUR

AJMP TIME

WAIT_BTN2_UP:

JNB P0.1,TIME

CLR SET_BTN.1

AJMP TIME

TIME:LJMP TIME1

GDS:CLR DSBZ.0

LJMP TIME

ADDTIME:JB SET_BTN.2,WAIT_BTN3_UP

ACALL DELAY2

JB P0.2, TIME

SETB SET_BTN.2

JB SPL.1,ADD_HOUR

JB SPL.2,ADD_MIN

JB SPL.3,DADD_HOUR

JB SPL.4,DADD_MIN

JB SPL.5,KDS

LJMP TIME

ADD_MIN:MOV R1,MINUTE

CJNE R1,#3BH,ADD_MIN_OPT

MOV MINUTE,#00H

LJMP TIME

ADD_MIN_OPT:

INC MINUTE

LJMP TIME

DADD_MIN:

MOV R1,DMINUTE

CJNE R1,#3BH,DADD_MIN_OPT

MOV DMINUTE,#00H

LJMP TIME

DADD_MIN_OPT:

INC DMINUTE

LJMP TIME

ADD_HOUR:

MOV R1,HOUR

CJNE R1,#17H,ADD_HOUR_OPT

MOV HOUR,#00H

LJMP TIME

ADD_HOUR_OPT:

INC HOUR

LJMP TIME

DADD_HOUR:

MOV R1,DHOUR

CJNE R1,#17H,DADD_HOUR_OPT

MOV DHOUR,#00H

LJMP TIME

DADD_HOUR_OPT:

INC DHOUR

LJMP TIME

WAIT_BTN3_UP:

JNB P0.2,TIME

CLR SET_BTN.2

LJMP TIME

KDS:SETB DSBZ.0

LJMP TIME

JUST_TIME1:

JB SET_BTN.0,WAIT_UP

ACALL DELAY2

JB P0.0, TIME

SETB SET_BTN.0

MOV R1,AJBZ

CJNE R1,#05H,INC1

MOV AJBZ,#00H

MOV SPL,#00H

LJMP TIME

INC1:INC AJBZ

MOV R1,AJBZ

CJNE R1,#01H,JSFZ ;计时分钟

SETB SPL.1

LJMP TIME

JSFZ:CJNE R1,#02H,DSX ;定时小时

CLR SPL.1

SETB SPL.2

LJMP TIME

DSX:CJNE R1,#03H,DSFZ ;定时分钟

CLR SPL.2

SETB SPL.3

LJMP TIME

DSFZ:CJNE R1,#04H,DSKG ;定时开关

CLR SPL.3

SETB SPL.4

DSKG:CJNE R1,#05H,LJUMP_TIME ;返回显示状态

CLR SPL.4

SETB SPL.5

LJUMP_TIME:

LJMP TIME

WAIT_UP:JNB P0.0,LJUMP_TIME ;等待按键松开,松开后清零按键标志

CLR SET_BTN.0

LJMP TIME

WAIT2_DL1:

ACALL DELAY1

ACALL DELAY1

RET

HOUR_SHOW:

JNB SPL.1, HOUR_SHOW_HRER

JB SPL.0, HOUR_SHOW_HRER

ACALL WAIT2_DL1

RET

HOUR_SHOW_HRER: ;小时显示

SETB P2.6

SETB P2.7

CLR A

MOV A,HOUR

MOV B,#0AH

DIV AB ;小时十位在A中,个位在B中

MOVC A,@A+DPTR

MOV P1,#00H ;P1口控制显示数据,此时显示小时十位数据

MOV P1,A

CLR P2.7 ;P2口控制位置(低电平有效;共阴显示)

;延时

ACALL DELAY1

SETB P2.7 ;熄灭小时

MOV P1,#00H

MOV A,B ;B中存放的小时各位数据放入A

MOVC A,@A+DPTR

MOV P1,A

CLR P2.6 ;显示小时个位数据

;延时

ACALL DELAY1

SETB P2.6

MOV P1,#00H

RET

MINUTE_SHOW:

JNB SPL.2, MINUTE_SHOW_HERE

JB SPL.0, MINUTE_SHOW_HERE

ACALL WAIT2_DL1

RET

MINUTE_SHOW_HERE:

SETB P2.5

SETB P2.4

CLR A

MOV A,MINUTE

MOV B,#0AH

DIV AB

MOVC A,@A+DPTR

MOV P1,#00H

MOV P1,A

CLR P2.5

;延时

ACALL DELAY1

SETB P2.5

MOV P1,#00H

MOV A,B

MOVC A,@A+DPTR

MOV P1,A

CLR P2.4

;延时

ACALL DELAY1

SETB P2.4

MOV P1,#00H

RET

SECOND_SHOW:

SETB P2.3

SETB P2.2

CLR A

MOV A,SECOND

MOV B,#0AH

DIV AB

MOVC A,@A+DPTR

MOV P1,#00H

MOV P1,A

CLR P2.3

;延时

ACALL DELAY1

SETB P2.3

MOV P1,#00H

MOV A,B

MOVC A,@A+DPTR

MOV P1,A

CLR P2.2

;延时

ACALL DELAY1

SETB P2.2

JNB DSBZ.0,DYFH ;定时比较开始

JB P3.0,DYFH

MOV A,HOUR

CJNE A,DHOUR,DYFH

MOV A,MINUTE

CJNE A,DMINUTE,DYFH

SETB P3.0

DYFH:RET

DHOUR_SHOW: ;调整定时时间显示

JNB SPL.3,XSS

JB SPL.0, XSS

ACALL WAIT2_DL1

RET

XSS:SETB P2.6

SETB P2.7

CLR A

MOV A,DHOUR

MOV B,#0AH

DIV AB ;小时十位在A中,个位在B中

MOVC A,@A+DPTR

MOV P1,#00H ;P1口控制显示数据,此时显示小时十位数据

MOV P1,A

CLR P2.7 ;P2口控制位置(低电平有效;共阴显示)

;延时

ACALL DELAY1

SETB P2.7 ;熄灭小时

MOV P1,#00H

MOV A,B ;B中存放的小时个位数据放入A

MOVC A,@A+DPTR

MOV P1,A

CLR P2.6 ;显示小时个位数据

;延时

ACALL DELAY1

SETB P2.6

MOV P1,#00H

RET

;定时分钟显示

DMINUTE_SHOW:

JNB SPL.4,XSF

JB SPL.0, XSF

ACALL WAIT2_DL1

RET

XSF:SETB P2.5

SETB P2.4

CLR A

MOV A,DMINUTE

MOV B,#0AH

DIV AB

MOVC A,@A+DPTR

MOV P1,#00H

MOV P1,A

CLR P2.5

;延时

ACALL DELAY1

SETB P2.5

MOV P1,#00H

MOV A,B

MOVC A,@A+DPTR

MOV P1,A

CLR P2.4

;延时

ACALL DELAY1

SETB P2.4

MOV P1,#00H

RET

;定时开关显示

DSECOND_SHOW:

JNB SPL.5,XSM ;显示秒(定时开关)

JB SPL.0,XSM

ACALL WAIT2_DL1

RET

XSM:SETB P2.3

SETB P2.2

CLR A

MOV A,#00H

MOVC A,@A+DPTR

MOV P1,A

CLR P2.3

;延时

ACALL DELAY1

SETB P2.3

MOV P1,#00H

JNB DSBZ.0,GBZ ;关标志

MOV A,#0BH

AJMP XS

GBZ:MOV A,#0AH

XS:MOVC A,@A+DPTR

MOV P1,A

CLR P2.2

;延时

ACALL DELAY1

SETB P2.2

MOV P1,#00H

RET

;短延时 ;显示短延时

DELAY1:MOV R6,#03H

DL1:MOV R7,08H

DL2:DJNZ R7,DL2

DJNZ R6,DL1

RET

;按键延时

DELAY2:MOV R6,#0AH

DL21:MOV R7,0AH

DL22:DJNZ R7,DL22

DJNZ R6,DL21

RET

IT_1:PUSH ACC

PUSH B

PUSH PSW

INC COUNT1

MOV A,COUNT1

CJNE A,#28H,RETI_LABLE

INC COUNT2

MOV COUNT1,#00H

MOV A,COUNT2

MOV B,#32H

DIV AB

MOV A,B

JNZ C2_OPT

CPL P3.7 ;秒的闪烁

CPL SPL.0 ;调整闪烁

C2_OPT:MOV A,COUNT2

CJNE A,#64H,RETI_LABLE

INC SECOND

MOV COUNT2,#00H

MOV A,SECOND

CJNE A,#3CH,RETI_LABLE;

INC MINUTE

MOV SECOND,#00H

MOV A,MINUTE

CJNE A,#3CH,RETI_LABLE;

INC HOUR

MOV MINUTE,#00H

MOV A,HOUR

CJNE A,#18H,RETI_LABLE

MOV HOUR,#00H

RETI_LABLE:

POP PSW

POP B

POP ACC

RETI

;TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H ;共阴码表

TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,8EH,0C8H ;共阳码表

; 0 1 2 3 4 5 6 7 8 9 F N

END

这个可以设定任意时间

急求基于单片机电脑时钟程序和原理图!

HOUR EQU 030H ;小时缓存

MINUTE EQU 031H ;分钟缓存

SECOND EQU 032H ;秒缓存

DHOUR EQU 040H ;定时小时缓存

DMINUTE EQU 041H ;定时分钟缓存

AJBZ EQU 042H ;按键次数标志

DSBZ EQU 022H ;定时开关标志

COUNT1 EQU 033H ;总计数到4000:拆分成40*100 总计数1

COUNT2 EQU 034H

SPL EQU 020H ;闪烁判断的依据

SET_BTN EQU 021H ;按键标志位

ORG 0000H

AJMP MAIN

ORG 001BH ;定时计数器T1中断入口地址

AJMP IT_1

ORG 040H

MAIN:MOV SPL,#00H ;闪烁标志清零

MOV DPTR,#TABLE ;码段首地址

MOV HOUR,#00H ;小时缓存清零

MOV MINUTE,#00H ;分缓存清零

MOV DHOUR,#00H ;定时小时缓存清零

MOV DMINUTE,#00H ;定时分缓存清零

MOV SECOND,#00H ;秒缓存清零

MOV AJBZ,#00H ;按键次数缓存清零

MOV COUNT1,#00H ;总计数1清零

MOV COUNT2,#00H ;总计数2清零

MOV DHOUR,#00H ;定时小时地址清零

MOV DSBZ,#00H ;定时开关标志清零

CLR P3.0 ;定时时间1控制位清零

CLR P3.1 ;定时时间2控制位清零

MOV TMOD,#20H ;设置计数方式

MOV TH1,#06H ;定时计数器T1高八位初值

MOV TL1,#06H ;定时计数器低八位初值

MOV IE,#10001000B ;设置允许中断,并且打开两个定时器

SETB TR1

LOOP:JNB P0.0,JUST_TIME ;P0.0为零跳转(调时操作)

JB SET_BTN.0,JUST_TIME ;标志位为1跳转

JNB P0.1, SUBB_TIME ;减操作

JB SET_BTN.1,SUBB_TIME

JNB P0.2, ADD_TIME ;加操作

JB SET_BTN.2,ADD_TIME

JB P0.6,TIME

CLR P3.0

JB P0.7,TIME

CLR P3.1

TIME1:JB SPL.3,DSXS ;转定时小时显示

JB SPL.4,DSXS ;转定时分钟显示

JB SPL.5,DSXS ;转定时开关显示

ACALL HOUR_SHOW ;小时显示

ACALL MINUTE_SHOW ;分钟显示

ACALL SECOND_SHOW ;秒显示

FHLOOP:AJMP LOOP

DSXS:ACALL DHOUR_SHOW ;定时小时显示

ACALL DMINUTE_SHOW ;定时分钟显示

ACALL DSECOND_SHOW ;定时开关显示

AJMP LOOP

JUST_TIME:

LJMP JUST_TIME1

SUBB_TIME:

JB SET_BTN.1,WAIT_BTN2_UP

ACALL DELAY2;

JB P0.1, TIME

SETB SET_BTN.1

JB SPL.1,SUBB_HOUR

JB SPL.2,SUBB_MIN

JB SPL.3,DSUBB_HOUR

JB SPL.4,DSUBB_MIN

JB SPL.5,GDS

AJMP TIME

ADD_TIME:

LJMP ADDTIME

SUBB_MIN:

MOV R1,MINUTE

CJNE R1,#00H,SUBB_MIN_OPT

MOV MINUTE,#3BH

AJMP TIME

SUBB_MIN_OPT:

DEC MINUTE

AJMP TIME

DSUBB_MIN:

MOV R1,DMINUTE

CJNE R1,#00H,DSUBB_MIN_OPT

MOV DMINUTE,#3BH

AJMP TIME

DSUBB_MIN_OPT:

DEC DMINUTE

AJMP TIME

SUBB_HOUR:

MOV R1,HOUR

CJNE R1,#00H,SUBB_HOUR_OPT

MOV HOUR,#17H

AJMP TIME

SUBB_HOUR_OPT:

DEC HOUR

AJMP TIME

DSUBB_HOUR:

MOV R1,DHOUR

CJNE R1,#00H,DSUBB_HOUR_OPT

MOV DHOUR,#17H

AJMP TIME

DSUBB_HOUR_OPT:

DEC DHOUR

AJMP TIME

WAIT_BTN2_UP:

JNB P0.1,TIME

CLR SET_BTN.1

AJMP TIME

TIME:LJMP TIME1

GDS:CLR DSBZ.0

LJMP TIME

ADDTIME:JB SET_BTN.2,WAIT_BTN3_UP

ACALL DELAY2

JB P0.2, TIME

SETB SET_BTN.2

JB SPL.1,ADD_HOUR

JB SPL.2,ADD_MIN

JB SPL.3,DADD_HOUR

JB SPL.4,DADD_MIN

JB SPL.5,KDS

LJMP TIME

ADD_MIN:MOV R1,MINUTE

CJNE R1,#3BH,ADD_MIN_OPT

MOV MINUTE,#00H

LJMP TIME

ADD_MIN_OPT:

INC MINUTE

LJMP TIME

DADD_MIN:

MOV R1,DMINUTE

CJNE R1,#3BH,DADD_MIN_OPT

MOV DMINUTE,#00H

LJMP TIME

DADD_MIN_OPT:

INC DMINUTE

LJMP TIME

ADD_HOUR:

MOV R1,HOUR

CJNE R1,#17H,ADD_HOUR_OPT

MOV HOUR,#00H

LJMP TIME

ADD_HOUR_OPT:

INC HOUR

LJMP TIME

DADD_HOUR:

MOV R1,DHOUR

CJNE R1,#17H,DADD_HOUR_OPT

MOV DHOUR,#00H

LJMP TIME

DADD_HOUR_OPT:

INC DHOUR

LJMP TIME

WAIT_BTN3_UP:

JNB P0.2,TIME

CLR SET_BTN.2

LJMP TIME

KDS:SETB DSBZ.0

LJMP TIME

JUST_TIME1:

JB SET_BTN.0,WAIT_UP

ACALL DELAY2

JB P0.0, TIME

SETB SET_BTN.0

MOV R1,AJBZ

CJNE R1,#05H,INC1

MOV AJBZ,#00H

MOV SPL,#00H

LJMP TIME

INC1:INC AJBZ

MOV R1,AJBZ

CJNE R1,#01H,JSFZ ;计时分钟

SETB SPL.1

LJMP TIME

JSFZ:CJNE R1,#02H,DSX ;定时小时

CLR SPL.1

SETB SPL.2

LJMP TIME

DSX:CJNE R1,#03H,DSFZ ;定时分钟

CLR SPL.2

SETB SPL.3

LJMP TIME

DSFZ:CJNE R1,#04H,DSKG ;定时开关

CLR SPL.3

SETB SPL.4

DSKG:CJNE R1,#05H,LJUMP_TIME ;返回显示状态

CLR SPL.4

SETB SPL.5

LJUMP_TIME:

LJMP TIME

WAIT_UP:JNB P0.0,LJUMP_TIME ;等待按键松开,松开后清零按键标志

CLR SET_BTN.0

LJMP TIME

WAIT2_DL1:

ACALL DELAY1

ACALL DELAY1

RET

HOUR_SHOW:

JNB SPL.1, HOUR_SHOW_HRER

JB SPL.0, HOUR_SHOW_HRER

ACALL WAIT2_DL1

RET

HOUR_SHOW_HRER: ;小时显示

SETB P2.6

SETB P2.7

CLR A

MOV A,HOUR

MOV B,#0AH

DIV AB ;小时十位在A中,个位在B中

MOVC A,@A+DPTR

MOV P1,#00H ;P1口控制显示数据,此时显示小时十位数据

MOV P1,A

CLR P2.7 ;P2口控制位置(低电平有效;共阴显示)

;延时

ACALL DELAY1

SETB P2.7 ;熄灭小时

MOV P1,#00H

MOV A,B ;B中存放的小时各位数据放入A

MOVC A,@A+DPTR

MOV P1,A

CLR P2.6 ;显示小时个位数据

;延时

ACALL DELAY1

SETB P2.6

MOV P1,#00H

RET

MINUTE_SHOW:

JNB SPL.2, MINUTE_SHOW_HERE

JB SPL.0, MINUTE_SHOW_HERE

ACALL WAIT2_DL1

RET

MINUTE_SHOW_HERE:

SETB P2.5

SETB P2.4

CLR A

MOV A,MINUTE

MOV B,#0AH

DIV AB

MOVC A,@A+DPTR

MOV P1,#00H

MOV P1,A

CLR P2.5

;延时

ACALL DELAY1

SETB P2.5

MOV P1,#00H

MOV A,B

MOVC A,@A+DPTR

MOV P1,A

CLR P2.4

;延时

ACALL DELAY1

SETB P2.4

MOV P1,#00H

RET

SECOND_SHOW:

SETB P2.3

SETB P2.2

CLR A

MOV A,SECOND

MOV B,#0AH

DIV AB

MOVC A,@A+DPTR

MOV P1,#00H

MOV P1,A

CLR P2.3

;延时

ACALL DELAY1

SETB P2.3

MOV P1,#00H

MOV A,B

MOVC A,@A+DPTR

MOV P1,A

CLR P2.2

;延时

ACALL DELAY1

SETB P2.2

JNB DSBZ.0,DYFH ;定时比较开始

JB P3.0,DYFH

MOV A,HOUR

CJNE A,DHOUR,DYFH

MOV A,MINUTE

CJNE A,DMINUTE,DYFH

SETB P3.0

DYFH:RET

DHOUR_SHOW: ;调整定时时间显示

JNB SPL.3,XSS

JB SPL.0, XSS

ACALL WAIT2_DL1

RET

XSS:SETB P2.6

SETB P2.7

CLR A

MOV A,DHOUR

MOV B,#0AH

DIV AB ;小时十位在A中,个位在B中

MOVC A,@A+DPTR

MOV P1,#00H ;P1口控制显示数据,此时显示小时十位数据

MOV P1,A

CLR P2.7 ;P2口控制位置(低电平有效;共阴显示)

;延时

ACALL DELAY1

SETB P2.7 ;熄灭小时

MOV P1,#00H

MOV A,B ;B中存放的小时个位数据放入A

MOVC A,@A+DPTR

MOV P1,A

CLR P2.6 ;显示小时个位数据

;延时

ACALL DELAY1

SETB P2.6

MOV P1,#00H

RET

;定时分钟显示

DMINUTE_SHOW:

JNB SPL.4,XSF

JB SPL.0, XSF

ACALL WAIT2_DL1

RET

XSF:SETB P2.5

SETB P2.4

CLR A

MOV A,DMINUTE

MOV B,#0AH

DIV AB

MOVC A,@A+DPTR

MOV P1,#00H

MOV P1,A

CLR P2.5

;延时

ACALL DELAY1

SETB P2.5

MOV P1,#00H

MOV A,B

MOVC A,@A+DPTR

MOV P1,A

CLR P2.4

;延时

ACALL DELAY1

SETB P2.4

MOV P1,#00H

RET

;定时开关显示

DSECOND_SHOW:

JNB SPL.5,XSM ;显示秒(定时开关)

JB SPL.0,XSM

ACALL WAIT2_DL1

RET

XSM:SETB P2.3

SETB P2.2

CLR A

MOV A,#00H

MOVC A,@A+DPTR

MOV P1,A

CLR P2.3

;延时

ACALL DELAY1

SETB P2.3

MOV P1,#00H

JNB DSBZ.0,GBZ ;关标志

MOV A,#0BH

AJMP XS

GBZ:MOV A,#0AH

XS:MOVC A,@A+DPTR

MOV P1,A

CLR P2.2

;延时

ACALL DELAY1

SETB P2.2

MOV P1,#00H

RET

;短延时 ;显示短延时

DELAY1:MOV R6,#03H

DL1:MOV R7,08H

DL2:DJNZ R7,DL2

DJNZ R6,DL1

RET

;按键延时

DELAY2:MOV R6,#0AH

DL21:MOV R7,0AH

DL22:DJNZ R7,DL22

DJNZ R6,DL21

RET

IT_1:PUSH ACC

PUSH B

PUSH PSW

INC COUNT1

MOV A,COUNT1

CJNE A,#28H,RETI_LABLE

INC COUNT2

MOV COUNT1,#00H

MOV A,COUNT2

MOV B,#32H

DIV AB

MOV A,B

JNZ C2_OPT

CPL P3.7 ;秒的闪烁

CPL SPL.0 ;调整闪烁

C2_OPT:MOV A,COUNT2

CJNE A,#64H,RETI_LABLE

INC SECOND

MOV COUNT2,#00H

MOV A,SECOND

CJNE A,#3CH,RETI_LABLE;

INC MINUTE

MOV SECOND,#00H

MOV A,MINUTE

CJNE A,#3CH,RETI_LABLE;

INC HOUR

MOV MINUTE,#00H

MOV A,HOUR

CJNE A,#18H,RETI_LABLE

MOV HOUR,#00H

RETI_LABLE:

POP PSW

POP B

POP ACC

RETI

;TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H ;共阴码表

TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,8EH,0C8H ;共阳码表

; 0 1 2 3 4 5 6 7 8 9 F N

END

这个带定时的可以驱动继电器控制你的电器定时开关,原理图很简单啊

89c51 用汇编语言求一时钟程序,图如下

HOUR EQU 030H ;小时缓存

MINUTE EQU 031H ;分钟缓存

SECOND EQU 032H ;秒缓存

DHOUR EQU 040H ;定时小时缓存

DMINUTE EQU 041H ;定时分钟缓存

AJBZ EQU 042H ;按键次数标志

DSBZ EQU 022H ;定时开关标志

COUNT1 EQU 033H ;总计数到4000:拆分成40*100 总计数1

COUNT2 EQU 034H

SPL EQU 020H ;闪烁判断的依据

SET_BTN EQU 021H ;按键标志位

ORG 0000H

AJMP MAIN

ORG 001BH ;定时计数器T1中断入口地址

AJMP IT_1

ORG 040H

MAIN:MOV SPL,#00H ;闪烁标志清零

MOV DPTR,#TABLE ;码段首地址

MOV HOUR,#00H ;小时缓存清零

MOV MINUTE,#00H ;分缓存清零

MOV DHOUR,#00H ;定时小时缓存清零

MOV DMINUTE,#00H ;定时分缓存清零

MOV SECOND,#00H ;秒缓存清零

MOV AJBZ,#00H ;按键次数缓存清零

MOV COUNT1,#00H ;总计数1清零

MOV COUNT2,#00H ;总计数2清零

MOV DHOUR,#00H ;定时小时地址清零

MOV DSBZ,#00H ;定时开关标志清零

CLR P3.0 ;定时时间到控制位清零

MOV TMOD,#20H ;设置计数方式

MOV TH1,#06H ;定时计数器T1高八位初值

MOV TL1,#06H ;定时计数器低八位初值

MOV IE,#10001000B ;设置允许中断,并且打开两个定时器

SETB TR1

LOOP:JNB P0.0,JUST_TIME ;P0.0为零跳转(调时操作)

JB SET_BTN.0,JUST_TIME ;标志位为1跳转

JNB P0.1, SUBB_TIME ;减操作

JB SET_BTN.1,SUBB_TIME

JNB P0.2, ADD_TIME ;加操作

JB SET_BTN.2,ADD_TIME

JB P0.7,TIME

CLR P3.0

TIME1:JB SPL.3,DSXS ;转定时小时显示

JB SPL.4,DSXS ;转定时分钟显示

JB SPL.5,DSXS ;转定时开关显示

ACALL HOUR_SHOW ;小时显示

ACALL MINUTE_SHOW ;分钟显示

ACALL SECOND_SHOW ;秒显示

FHLOOP:AJMP LOOP

DSXS:ACALL DHOUR_SHOW ;定时小时显示

ACALL DMINUTE_SHOW ;定时分钟显示

ACALL DSECOND_SHOW ;定时开关显示

AJMP LOOP

JUST_TIME:

LJMP JUST_TIME1

SUBB_TIME:

JB SET_BTN.1,WAIT_BTN2_UP

ACALL DELAY2;

JB P0.1, TIME

SETB SET_BTN.1

JB SPL.1,SUBB_HOUR

JB SPL.2,SUBB_MIN

JB SPL.3,DSUBB_HOUR

JB SPL.4,DSUBB_MIN

JB SPL.5,GDS

AJMP TIME

ADD_TIME:

LJMP ADDTIME

SUBB_MIN:

MOV R1,MINUTE

CJNE R1,#00H,SUBB_MIN_OPT

MOV MINUTE,#3BH

AJMP TIME

SUBB_MIN_OPT:

DEC MINUTE

AJMP TIME

DSUBB_MIN:

MOV R1,DMINUTE

CJNE R1,#00H,DSUBB_MIN_OPT

MOV DMINUTE,#3BH

AJMP TIME

DSUBB_MIN_OPT:

DEC DMINUTE

AJMP TIME

SUBB_HOUR:

MOV R1,HOUR

CJNE R1,#00H,SUBB_HOUR_OPT

MOV HOUR,#17H

AJMP TIME

SUBB_HOUR_OPT:

DEC HOUR

AJMP TIME

DSUBB_HOUR:

MOV R1,DHOUR

CJNE R1,#00H,DSUBB_HOUR_OPT

MOV DHOUR,#17H

AJMP TIME

DSUBB_HOUR_OPT:

DEC DHOUR

AJMP TIME

WAIT_BTN2_UP:

JNB P0.1,TIME

CLR SET_BTN.1

AJMP TIME

TIME:LJMP TIME1

GDS:CLR DSBZ.0

LJMP TIME

ADDTIME:JB SET_BTN.2,WAIT_BTN3_UP

ACALL DELAY2

JB P0.2, TIME

SETB SET_BTN.2

JB SPL.1,ADD_HOUR

JB SPL.2,ADD_MIN

JB SPL.3,DADD_HOUR

JB SPL.4,DADD_MIN

JB SPL.5,KDS

LJMP TIME

ADD_MIN:MOV R1,MINUTE

CJNE R1,#3BH,ADD_MIN_OPT

MOV MINUTE,#00H

LJMP TIME

ADD_MIN_OPT:

INC MINUTE

LJMP TIME

DADD_MIN:

MOV R1,DMINUTE

CJNE R1,#3BH,DADD_MIN_OPT

MOV DMINUTE,#00H

LJMP TIME

DADD_MIN_OPT:

INC DMINUTE

LJMP TIME

ADD_HOUR:

MOV R1,HOUR

CJNE R1,#17H,ADD_HOUR_OPT

MOV HOUR,#00H

LJMP TIME

ADD_HOUR_OPT:

INC HOUR

LJMP TIME

DADD_HOUR:

MOV R1,DHOUR

CJNE R1,#17H,DADD_HOUR_OPT

MOV DHOUR,#00H

LJMP TIME

DADD_HOUR_OPT:

INC DHOUR

LJMP TIME

WAIT_BTN3_UP:

JNB P0.2,TIME

CLR SET_BTN.2

LJMP TIME

KDS:SETB DSBZ.0

LJMP TIME

JUST_TIME1:

JB SET_BTN.0,WAIT_UP

ACALL DELAY2

JB P0.0, TIME

SETB SET_BTN.0

MOV R1,AJBZ

CJNE R1,#05H,INC1

MOV AJBZ,#00H

MOV SPL,#00H

LJMP TIME

INC1:INC AJBZ

MOV R1,AJBZ

CJNE R1,#01H,JSFZ ;计时分钟

SETB SPL.1

LJMP TIME

JSFZ:CJNE R1,#02H,DSX ;定时小时

CLR SPL.1

SETB SPL.2

LJMP TIME

DSX:CJNE R1,#03H,DSFZ ;定时分钟

CLR SPL.2

SETB SPL.3

LJMP TIME

DSFZ:CJNE R1,#04H,DSKG ;定时开关

CLR SPL.3

SETB SPL.4

DSKG:CJNE R1,#05H,LJUMP_TIME ;返回显示状态

CLR SPL.4

SETB SPL.5

LJUMP_TIME:

LJMP TIME

WAIT_UP:JNB P0.0,LJUMP_TIME ;等待按键松开,松开后清零按键标志

CLR SET_BTN.0

LJMP TIME

WAIT2_DL1:

ACALL DELAY1

ACALL DELAY1

RET

HOUR_SHOW:

JNB SPL.1, HOUR_SHOW_HRER

JB SPL.0, HOUR_SHOW_HRER

ACALL WAIT2_DL1

RET

HOUR_SHOW_HRER: ;小时显示

SETB P2.6

SETB P2.7

CLR A

MOV A,HOUR

MOV B,#0AH

DIV AB ;小时十位在A中,个位在B中

MOVC A,@A+DPTR

MOV P1,#00H ;P1口控制显示数据,此时显示小时十位数据

MOV P1,A

CLR P2.7 ;P2口控制位置(低电平有效;共阴显示)

;延时

ACALL DELAY1

SETB P2.7 ;熄灭小时

MOV P1,#00H

MOV A,B ;B中存放的小时各位数据放入A

MOVC A,@A+DPTR

MOV P1,A

CLR P2.6 ;显示小时个位数据

;延时

ACALL DELAY1

SETB P2.6

MOV P1,#00H

RET

MINUTE_SHOW:

JNB SPL.2, MINUTE_SHOW_HERE

JB SPL.0, MINUTE_SHOW_HERE

ACALL WAIT2_DL1

RET

MINUTE_SHOW_HERE:

SETB P2.5

SETB P2.4

CLR A

MOV A,MINUTE

MOV B,#0AH

DIV AB

MOVC A,@A+DPTR

MOV P1,#00H

MOV P1,A

CLR P2.5

;延时

ACALL DELAY1

SETB P2.5

MOV P1,#00H

MOV A,B

MOVC A,@A+DPTR

MOV P1,A

CLR P2.4

;延时

ACALL DELAY1

SETB P2.4

MOV P1,#00H

RET

SECOND_SHOW:

SETB P2.3

SETB P2.2

CLR A

MOV A,SECOND

MOV B,#0AH

DIV AB

MOVC A,@A+DPTR

MOV P1,#00H

MOV P1,A

CLR P2.3

;延时

ACALL DELAY1

SETB P2.3

MOV P1,#00H

MOV A,B

MOVC A,@A+DPTR

MOV P1,A

CLR P2.2

;延时

ACALL DELAY1

SETB P2.2

JNB DSBZ.0,DYFH ;定时比较开始

JB P3.0,DYFH

MOV A,HOUR

CJNE A,DHOUR,DYFH

MOV A,MINUTE

CJNE A,DMINUTE,DYFH

SETB P3.0

DYFH:RET

DHOUR_SHOW: ;调整定时时间显示

JNB SPL.3,XSS

JB SPL.0, XSS

ACALL WAIT2_DL1

RET

XSS:SETB P2.6

SETB P2.7

CLR A

MOV A,DHOUR

MOV B,#0AH

DIV AB ;小时十位在A中,个位在B中

MOVC A,@A+DPTR

MOV P1,#00H ;P1口控制显示数据,此时显示小时十位数据

MOV P1,A

CLR P2.7 ;P2口控制位置(低电平有效;共阴显示)

;延时

ACALL DELAY1

SETB P2.7 ;熄灭小时

MOV P1,#00H

MOV A,B ;B中存放的小时个位数据放入A

MOVC A,@A+DPTR

MOV P1,A

CLR P2.6 ;显示小时个位数据

;延时

ACALL DELAY1

SETB P2.6

MOV P1,#00H

RET

;定时分钟显示

DMINUTE_SHOW:

JNB SPL.4,XSF

JB SPL.0, XSF

ACALL WAIT2_DL1

RET

XSF:SETB P2.5

SETB P2.4

CLR A

MOV A,DMINUTE

MOV B,#0AH

DIV AB

MOVC A,@A+DPTR

MOV P1,#00H

MOV P1,A

CLR P2.5

;延时

ACALL DELAY1

SETB P2.5

MOV P1,#00H

MOV A,B

MOVC A,@A+DPTR

MOV P1,A

CLR P2.4

;延时

ACALL DELAY1

SETB P2.4

MOV P1,#00H

RET

;定时开关显示

DSECOND_SHOW:

JNB SPL.5,XSM ;显示秒(定时开关)

JB SPL.0,XSM

ACALL WAIT2_DL1

RET

XSM:SETB P2.3

SETB P2.2

CLR A

MOV A,#00H

MOVC A,@A+DPTR

MOV P1,A

CLR P2.3

;延时

ACALL DELAY1

SETB P2.3

MOV P1,#00H

JNB DSBZ.0,GBZ ;关标志

MOV A,#0BH

AJMP XS

GBZ:MOV A,#0AH

XS:MOVC A,@A+DPTR

MOV P1,A

CLR P2.2

;延时

ACALL DELAY1

SETB P2.2

MOV P1,#00H

RET

;短延时 ;显示短延时

DELAY1:MOV R6,#03H

DL1:MOV R7,08H

DL2:DJNZ R7,DL2

DJNZ R6,DL1

RET

;按键延时

DELAY2:MOV R6,#0AH

DL21:MOV R7,0AH

DL22:DJNZ R7,DL22

DJNZ R6,DL21

RET

IT_1:PUSH ACC

PUSH B

PUSH PSW

INC COUNT1

MOV A,COUNT1

CJNE A,#28H,RETI_LABLE

INC COUNT2

MOV COUNT1,#00H

MOV A,COUNT2

MOV B,#32H

DIV AB

MOV A,B

JNZ C2_OPT

CPL P3.7 ;秒的闪烁

CPL SPL.0 ;调整闪烁

C2_OPT:MOV A,COUNT2

CJNE A,#64H,RETI_LABLE

INC SECOND

MOV COUNT2,#00H

MOV A,SECOND

CJNE A,#3CH,RETI_LABLE;

INC MINUTE

MOV SECOND,#00H

MOV A,MINUTE

CJNE A,#3CH,RETI_LABLE;

INC HOUR

MOV MINUTE,#00H

MOV A,HOUR

CJNE A,#18H,RETI_LABLE

MOV HOUR,#00H

RETI_LABLE:

POP PSW

POP B

POP ACC

RETI

;TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H ;共阴码表

TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,8EH,0C8H ;共阳码表

; 0 1 2 3 4 5 6 7 8 9 F N

END

可以实现控制家用电器的定时。比如什么时候想烧水就定时到那个时间,等你用的时候水就开了,很方便的

  • 评论列表:
  •  黑客技术
     发布于 2022-07-01 22:59:52  回复该评论
  • YFH MOV A,HOUR CJNE A,DHOUR,DYFH MOV A,MINUTE CJNE A,DMINUTE,DYFH SETB P3.0 DYFH:R
  •  黑客技术
     发布于 2022-07-02 03:34:53  回复该评论
  • DELAY1 SETB P2.4 MOV P1,#00H RET ;定时开关显示DSECOND_SHOW: JNB SPL.5,XSM ;显示秒(定时开关) JB SPL

发表评论:

Powered By

Copyright Your WebSite.Some Rights Reserved.