时钟停止运行

时钟停止运行,第1张

若手机在使用中出现应用程序停止运行,可按照以下方法尝试:

1、系统运行程序过多,导致运行内存不足,一键清理可解决此类问题(重启手机也可);

2、手机的应用程序数据缓存过多,建议点击桌面--设置--常规--应用程序--全部--找到出现停止运行的程序--清理数据;

3、安装位置不当引起,进入设置--储存--首选安装位置--由系统决定(部分机型无首选安装位置选项);

4、备份手机资料(联系人、短信等),恢复出厂设置。

我不知道你是不是想要这们的结果。还是怎么样的,我测试过了。在按暂停再按开“倒计时”时它会产生误差几秒。可能是程序响应的问题。。。这种方法有点笨。。高手莫笑。。有什么更好的方法。一起贴出来研究。。

版本 2

程序集 窗口程序集1

程序集变量 时间停留小时, 整数型

程序集变量 时间停留分, 整数型

程序集变量 时间停留秒, 整数型

程序集变量 时间下班小时, 整数型

程序集变量 时间下班分, 整数型

程序集变量 时间下班秒, 整数型

程序集变量 时间小时, 整数型

程序集变量 时间分, 整数型

程序集变量 时间秒, 整数型

子程序 _时钟1_周期事件

时间下班小时 = 17 ' 6点下班!175960就是18点

时间下班分 = 59

时间下班秒 = 60

时间小时 = 到数值 (取小时 (取现行时间 ()))

时间分 = 到数值 (取分钟 (取现行时间 ()))

时间秒 = 到数值 (取秒 (取现行时间 ()))

标签2标题 = 到文本 (时间下班小时 - 时间小时) + “小时” + 到文本 (时间下班分 - 时间分) + “分” + 到文本 (时间下班秒 - 时间秒) + “秒”

子程序 _按钮1_被单击

如果 (按钮1标题 = “暂停”)

按钮1标题 = “倒计时”

时间停留小时 = 到数值 (取小时 (取现行时间 ()))

时间停留分 = 到数值 (取分钟 (取现行时间 ()))

时间停留秒 = 到数值 (取秒 (取现行时间 ()))

时钟1时钟周期 = 0

否则

按钮1标题 = “暂停”

时间小时 = 到数值 (取小时 (取现行时间 ()))

时间分 = 到数值 (取分钟 (取现行时间 ()))

时间秒 = 到数值 (取秒 (取现行时间 ()))

时间下班小时 = 时间下班小时 + 时间小时 - 时间停留小时

时间下班分 = 时间下班分 + 时间分 - 时间停留分

时间下班秒 = 时间下班秒 + 时间秒 - 时间停留秒

时钟1时钟周期 = 1000

如果结束

#include <AT89X52H>unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90};unsigned char flag,a;unsigned int count;sbit k5=P1^4;void delay1(void){ unsigned int j; for(j=0;j<24;j++);//02毫妙}void display(unsigned int y){ P0=0xff; P2=0xdf; P0=tab[y/100]; delay1(); P0=0xff; P2=0xbf; P0=tab[y%100/10]; delay1(); P0=0xff; P2=0x7f; P0=tab[y%10]; delay1(); P0=0xff; } void main(){ TMOD=0x11; EA=1; ET0=1; TH0=0xf8; TL0=0xcc; TR0=1; while(1) { if(k5==0) { TH1=55536/256; TL1=55536%256; TR1=1; while(!TF1); TF1=0; TR1=0; if(k5==0) { while(!k5); flag++; flag=flag%2; } } }}void T0_jishi() interrupt 1{ TH0=0xf8; TL0=0xcc;//liang 毫秒 a++; if(flag==0) { if(a==5) { a=0; count++; if(count==1000) count=0; } } display(count);

}

这个是秒表程序,按了停再按走,可以修改点参数,把数码管时钟加上去就行了

;汇编时钟程序。显示时分秒。两个按键一个控制时钟开始走,一个控制暂停和继续。。。

;T-启动 空格-暂停和继续 Q-退出

;在MASM50编译通过

assume cs:code

code segment

ORG 100H

start:

JMP CZR

MESS DB 'PRESS "T" START, "SPACE KEY" PAUSE OR CONTINUE, "Q" TO EXIT! $'

flag db 0

CZR:

PUSH CS

POP DS

MOV AH,09 ;显示提示信息

MOV DX,OFFSET MESS

INT 21H

mov ah,1 ;输入一个字符

int 21h

cmp al,54h ;是'T'吗

je start1 ;是则开始运行程序

jmp start ;不是转重新输入一个字符

start1:

MOV AL,FLAG

CMP AL,0

JE GOON

JMP TEST_K

GOON:

mov bx,0b800h ;设置彩色显示卡显示区地址

mov es,bx

mov di,16012+230 ;光标定位:12行/30列

push di ;光标位进栈保存

mov al,10

rdate:

dec al ;AL-1

cmp al,7 ;依次设AL=9,8,7 通过OUT 70H,AL及IN AL,71H,可依次取年月日数据

jb rtime ;AL若小于7,则取时间

call show

add di,6 ;本是增加3个字符位,但还有3个属性位,所以+6

jmp short rdate

rtime:

sub al,2 ;依次设AL=4,2,0 通过OUT 70H,AL及IN AL,71H,可依次取时分秒数据

cmp al,0feh ;0-2H=0feh

je sign ;转显示" / / : : " 标志符号

call show

add di,6 ;本是增加3个字符位,但还有3个属性位,所以+6

jmp short rtime

sign:

pop di ;光标位出栈

add di,4

mov byte ptr es:[di],'/' ;在12行/32列 显示 '/'

add di,6

mov byte ptr es:[di],'/' ;在12行/35列 显示 '/'

add di,12

mov byte ptr es:[di],':' ;在12行/41列 显示 ':'

add di,6

mov byte ptr es:[di],':' ;在12行/44列 显示 ':'

TEST_K:

in al,60h ;从键盘读入字符

cmp al,10h ;是Q的扫描码吗

je quit ;是则退出程序

CMP AL,39H ;是空格键码?

JE FAN

JMP START1

FAN: ;是空格键,转换标志

MOV AL,1

XOR FLAG,AL

jmp start1 ;否则继续

quit: mov ax,4c00h ;退出程序,返回DOS

int 21h

show: push ax ;从CMOS取数并转换成ASCII码子程序

push cx

out 70h,al

in al,71h ;从CMOS读取日期/时间数据, 假如AL=12H

mov ah,al ;AX=1212H

mov cl,4

shr ah,cl ;AH右移4位后,AH=01H

and al,00001111b ;AL=02H

add ah,30h ;AH=31H 至此,完成ASCII码转换

add al,30h ;AL=32H

mov byte ptr es:[di],ah ;将ASCII码填入待显示的位置,AH为10位

mov byte ptr es:[di+2],al ;AL为个位,之所以+2,是因为除字符位外,还有一个属性位

pop cx

pop ax

ret

code ends

end start

以上就是关于时钟停止运行全部的内容,包括:时钟停止运行、易语言是倒计时暂停的代码、求单片机12分钟倒计时的C语音程序,要可以暂停等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10178891.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存