毛呢厂家
免费服务热线

Free service

hotline

010-00000000
毛呢厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

智能定时插座程序

发布时间:2020-07-21 18:28:09 阅读: 来源:毛呢厂家

;************************************************************** ;电院 单片机设计 :智能定时插座;************************************************************** ;功能描述:带键盘设置的时间计数器 ;功能:实现1分钟到99小时99分钟内的定时。可定时关机或定时开机。 ;各个键的功能: ;S1:小时十位调整 ;S2:小时个位调整 ;S3;分钟十位调整 ;S4:分钟各位调整 ;可扩展功能:时间显示 ;硬件描述: ;P0口显示字段。P2.0-2.3共阳数码管控制端。P1.0-P1.3按键 ;P3.4继电器控制端 ;************************************************************** STARTRUN BIT 01H;开始运行标志 KEYOK BIT 00H;有键按下标志 SCOUNT EQU 21H;分计数器 SETVAL EQU 22H;预置分值储存单元 SCOUNT2 EQU 26H;小时计数器 SETVAL2 EQU 27H;预置小时储存单元 TCOUNT EQU 24H;;秒计数器 TCOUNTER EQU 250;软件计数器的计数值,X定时器4MS等于1S KEYVAL EQU 25H;键值储存单元 DISPBUF EQU 58H;显示缓冲区 COUNTER EQU 57H;计数器,显示程序通过它得知现在正在显示的数码管 TMRVAR EQU 61536;设定4MS。65536-4000定时器初值 ORG 0000H JMP START ORG 0*8+3;INTO中断入口 RETI ORG 1*8+3;定时器0中断入口 LJMP INT_T0 ORG 2*8+3 RETI ORG 3*8+3 RETI ORG 4*8+3 RETI ;*******************主程序设定************************************ START: MOV R7,#60 MOV R4,#60 MOV SP,#5FH MOV SCOUNT,#0 MOV SCOUNT2,#0 MOV SETVAL,#00;启动程序默认值为0 MOV SETVAL2,#00 MOV SCOUNT,SETVAL MOV SCOUNT2,SETVAL2 CLR KEYOK CLR STARTRUN CALL INIT_T0 SETB EA ;********************主程序开始*************************************** LOOP: CALL KEY;调用键盘程序 JB KEYOK,KEYPROC;如果有键按下,转键盘处理程序 NEXT: MOV A,SCOUNT;获取分的数值 MOV B,#10 DIV AB NEXT1: MOV DISPBUF+2,A;送显示缓冲区 MOV DISPBUF+3,B NEXT2: MOV A,SCOUNT2;获取小时的数值 MOV B,#10 DIV AB NEXT3: MOV DISPBUF,A MOV DISPBUF+1,B

JMP LOOP ;*******************键值处理程序**************************************** KEYPROC: MOV A,KEYVAL;取得键值 JZ KEY1;如果键值是0,转 DEC A JZ KEY2;如果键值是1,转 DEC A JZ KEY3;如果键值是2,转 JMP KEY4;如果键值是3,转 KEY1:;对小时十位进行操作 INC DISPBUF;将显示缓冲区的数加1 MOV A,DISPBUF CJNE A,#9,EFT01 MOV DISPBUF,#0 SETB STARTRUN EFT01:;键值处理 MOV B,#10 MUL AB ADD A,DISPBUF+1 MOV SETVAL2,A MOV SCOUNT2,SETVAL2 SETB STARTRUN JMP LOOP KEY2:

INC DISPBUF+1 MOV A,DISPBUF+1 CJNE A,#10,EFT02 MOV DISPBUF+1,#0 SETB STARTRUN EFT02: MOV A,DISPBUF MOV B,#10 MUL AB ADD A,DISPBUF+1 MOV SETVAL2,A MOV SCOUNT2,SETVAL2 SETB STARTRUN JMP LOOP

KEY3: INC DISPBUF+2 MOV A,DISPBUF+2 CJNE A,#6,LEFT0 MOV A,#0 SETB STARTRUN LEFT0: MOV B,#10 MUL AB ADD A,DISPBUF+3 MOV SETVAL,A MOV SCOUNT,SETVAL SETB STARTRUN JMP LOOP KEY4: INC DISPBUF+3 MOV A,DISPBUF+3 CJNE A,#10,REFT0 MOV DISPBUF+3,#0 SETB STARTRUN REFT0: MOV A,DISPBUF+2 MOV B,#10 MUL AB ADD A,DISPBUF+3 MOV SETVAL,A MOV SCOUNT,SETVAL SETB STARTRUN JMP LOOP ;**************键盘程序******************************************************** KEY: MOV P1,#0FFH CLR KEYOK MOV A,P1 ORL A,#11110000B CPL A JZ KEY_RET CALL DELAY MOV A,P1 ORL A,#11110000B CPL A JZ KEY_RET SETB KEYOK JNB ACC.0,KEY_1 MOV KEYVAL,#0 JMP KEY_RET KEY_1: JNB ACC.1,KEY_2 MOV KEYVAL,#1 JMP KEY_RET KEY_2: JNB ACC.2,KEY_3 MOV KEYVAL,#2 JMP KEY_RET KEY_3: MOV KEYVAL,#3

Java 封装

Java Scanner 类

实战3:如何使用乐观锁

相关阅读