C语言-2分钟倒计时代码

合集下载

倒计时时钟汇编代码

倒计时时钟汇编代码

;使A按秒减1,数码管显示2位十六进制数,T0、T1结合硬件定时1s,delay1ms则属软件定时;心得:从简单组合到复杂,通过仿真发现设计问题,进行不断调试,从而达到想要的目的,另外进一步认识、掌握各指令的作用/*ORG 0000HSJMP MAINORG 0003HSJMP INT0INTORG 000BHSJMP T0INTORG 0013HSJMP INT1INTORG 001BHAJMP T1INTORG 0030HMAIN:MOV TMOD,#01100001BMOV TH0,#HIGH(-10000)MOV TL0,#LOW(-10000)MOV TH1,#(-50)MOV TL1,#(-50)MOV A,#0 ;秒赋初值MOV R3,#0;分钟赋初值MOV R4,#0;时赋初值SETB EASETB ET0SETB TR0SETB ET1SETB TR1SETB EX0SETB IT0SETB EX1SETB IT1SJMP $INT0INT: ;手动按一次加1分钟,满60归0SETB TR1 ;当计时完毕,重定时时,计数器处于启动状态,以便可重计数//SETB TR0INC R3 ;按一次按钮,R3加1CJNE R3,#60,REE ;不满60,,中断返回,可继续按钮MOV R3,#0 ;满60分,归0//MOV A,#59 ;这条指令放前后位置不一样,显示效果出现不一样REE: RETIINT1INT: ;手动按一次加1小时,满24归0//MOV A,#59SETB TR1;当计时完毕,重定时时,计数器处于启动状态,以便可重计数//SETB TR0INC R4CJNE R4,#24,REEEMOV R4,#0 ;满24小时,归0REEE:RETIT0INT:MOV TH0,#HIGH(-10000)MOV TL0,#LOW(-10000)CPL P3.5 ;取反两次,可使T1计数一次JB TR1,K ;在倒计时完毕时,计数器T1被关闭了,所以在这里当判断T1被关闭了,各个数码管显示0,TR1如果是高电频则执行跳到K处,相反表示计时时间到,各位数码管显示“0”MOV A,#0MOV R3,#0MOV R4,#0K:CALL BtoD ;先二进制转十进制CALL DISPLAY ;后显示RETIT1INT: ;每隔一秒打开中断SETB P1.0 ;定时未到,蜂鸣器不工作CJNE A,#0,S ;A非0,跳转S执行SJMP Y ;A为0,跳转Y执行S: ;A即秒位,A非0减一DEC A ;A按秒减1CJNE A,#0,REY: ;A为0,再判断R3(分钟位)、R4(小时位)是否为0CJNE R3,#0,Q ;分钟位为非0,跳转Q执行CJNE R4,#0,R ;分钟位为0,小时位为非0,跳转R执行CLR TR1 ;R4小时位为0(判断到此,时分秒都为0),倒计时完毕,关闭T1计数,不关闭T0(计时10ms,扫描数码管一次),是因为要显示“00.00.00”//CLR TR0 ;不能关闭CPL P1.0 ;蜂鸣器响应,倒计时到,响应RETIQ: ;前面判断到A(秒)为0,R3(分)为非0,因此,R3减1分钟,增加60秒(59按秒减一直到0共计时60秒)MOV A,#59 ;DEC R3 ;RETIR: ;R4小时位为非0,分钟位由0变为59分,秒位也由0变为59秒,R4减一小时MOV R3,#59 ;MOV A,#59DEC R4RETIRE:RETIBtoD: ;二进制数转十进制数,将每位数按顺序存放显存,便于动态输出PUSH ACC ;秒MOV B,#10DIV AB ;A除以B(10);商存A,余数存BMOV 41H,A ;将商存在地址为41H的寄存器处MOV 40H,B ;将商存在地址为42H的寄存器处MOV A,R3 ;分MOV B,#10DIV ABMOV 43H,AMOV 42H,BMOV A,R4 ;时MOV B,#10DIV ABMOV 45H,AMOV 44H,BPOP ACCRETDISPLAY:PUSH ACCMOV DPTR,#TAB ;送段码表地址MOV R1,#40H ;赋初值,将数字的显存地址赋R1MOV R2,#01111111B ;赋初值,将位选数值赋R2LOOP: ;循环MOV P2,R2 ;R2数值在P2口输出,以便选通数码管的位MOV A,@R1 ;将以R1的内容作为地址的数赋给A,“取字”MOVC A,@A+DPTR ;以A的内容的地址+段码表地址作位总地址,查找字形“查表”,并将字形对应的数值赋给AMOV P0,A ;通过P0口输出CALL DELAY1MS ;延时,有一定的占空比,才能显示INC R1 ;显存地址加1,取下一个数MOV A,R2 ;位选数值通过A实现,右移一位,(也可左移,看情况)RR AMOV R2,ACJNE A,#11101111B,GOMOV P0,#7FH ;动态显示小数点CALL DELAY1MSGO:CJNE A,#11111011B,GOOMOV P0,#7FHCALL DELAY1MSGOO:CJNE A,#11111011B,GOOOMOV P0,#7FHCALL DELAY1MSGOOO:JB ACC.1,LOOPMOV P0,#0FFHMOV P2,#0EFHPOP ACCRETDELAY1MS: ;延时1msMOV R6,#2LOP:MOV R7,#249DJNZ R7,$DJNZ R6,LOP ;(249*2+2)*2=1000usRETTAB: ;共阳段码表DB 0C0H ;"0"DB 0F9H ;"1"DB 0A4H ;"2"DB 0B0H ;"3"DB 99H ;"4"DB 92H ;"5"DB 82H ;"6"DB 0F8H ;"7"DB 80H ;"8"DB 90H ;"9"DB 88H ;"A"DB 83H ;"B"DB 0C6H ;"C"DB 0A1H ;"D"DB 86H ;"E"DB 8EH ;"F" END*/。

两小时倒计时c语言代码

两小时倒计时c语言代码

两小时倒计时c语言代码下面是一个简单的C语言代码,用于实现两小时倒计时功能:c.#include <stdio.h>。

#include <unistd.h>。

int main() {。

int seconds = 7200; // 两小时的秒数。

while (seconds > 0) {。

int hours = seconds / 3600; // 将秒数转换为小时。

int minutes = (seconds % 3600) / 60; // 将剩余秒数转换为分钟。

int remainingSeconds = (seconds % 3600) % 60; // 剩余的秒数。

printf("倒计时,%02d:%02d:%02d\n", hours, minutes, remainingSeconds);sleep(1); // 暂停一秒钟。

seconds--; // 秒数减一。

}。

printf("倒计时结束!\n");return 0;}。

这段代码使用了`<stdio.h>`和`<unistd.h>`头文件,分别用于输入输出和暂停一秒钟。

它通过一个循环来实现倒计时功能,每次循环将剩余的秒数转换为小时、分钟和秒,并打印出来。

然后使用`sleep(1)`函数暂停一秒钟,再将秒数减一。

当秒数减到零时,循环结束,打印出倒计时结束的提示信息。

请注意,这只是一个简单的示例代码,没有考虑到用户输入和异常处理。

在实际应用中,你可能需要根据具体需求进行适当的修改和优化。

C语言计时程序

C语言计时程序

C语⾔计时程序请新建⼀个空⼯程,不要新建Win32 Console那个⼯程!#include#include#include#includestruct tm //定义时间结构体,包括时分秒和10毫秒{int hours,minutes,seconds;int hscd;}time,tmp,total; //time⽤以计时显⽰,tmp⽤以存储上⼀阶段时间,total记总时间int cnt;FILE* fout;//每次调⽤update函数,相当于时间过了10msvoid update(struct tm *t){(*t).hscd++; //10ms单位时间加1cnt++;if ((*t).hscd==100) //计时满1s,进位{(*t).hscd=0;(*t).seconds++;}if ((*t).seconds==60) //计时满⼀分,进位{(*t).seconds=0;(*t).minutes++;}if ((*t).minutes==60) //计时满⼀⼩时,进位{(*t).minutes=0;(*t).hours++;}if((*t).hours==24) (*t).hours=0;//delay();Sleep(10); //Sleep是windows提供的函数,作⽤是暂停程序,单位毫秒,所以此处暂停10ms }void display(struct tm *t){//此处输出计时结果,\r为回车不换⾏,既⼀直在同⼀⾏更新时间printf("%d:",(*t).hours);printf("%d:",(*t).minutes);printf("%d:",(*t).seconds);printf("%d\r",(*t).hscd);//printf("Now, press 'e' key to stop the clock...");}void time_init() //初始化时间{time.hours=time.minutes=time.seconds=time.hscd=0;}void get_total() //计算总时间{total.hscd = cnt % 100;cnt /= 100;total.seconds = cnt % 60;cnt /= 60;total.minutes = cnt % 60;cnt /= 60;total.hours = cnt;}int main(){char m;time_init();cnt = 0;fout = fopen("timeout.txt","w");printf("Now, press Enter key to begin the clock...\n");while(1){m = getch();if(m != '\r') //读⼊⼀个输⼊,如果是回车,那么跳出次循环printf("Input Error!\n");elsebreak;}printf("While counting, you can press space to start a new time counter!\n");while(1){if(kbhit()) //此处检查是否有键盘输⼊{m=getch();if(m == '\r') //如果等于回车,那么计时结束,跳出循环break;else if(m == ' ') //如果等于空格,显⽰此次计时,初始化计时器{tmp = time; //记录上⼀段计时器结果fprintf(fout,"%d:%d:%d:%d\n",tmp.hours,tmp.minutes,tmp.seconds,tmp.hscd); //写⼊⽂件time_init();printf("\n");}else{printf("Input Error!\n");}}update(&time); //更新计时器display(&time); //显⽰计时器时间}tmp = time; //输出最后⼀次即使结果,写⼊⽂件fprintf(fout,"%d:%d:%d:%d\n",tmp.hours,tmp.minutes,tmp.seconds,tmp.hscd);get_total(); //计算总的时间,显⽰,并写⼊⽂件printf("\ntotal time:%d:%d:%d:%d\n",total.hours,total.minutes,total.seconds,total.hscd); fprintf(fout,"total time:%d:%d:%d:%d\n",total.hours,total.minutes,total.seconds,total.hscd) ;fclose(fout);getch();}。

C#倒计时器

C#倒计时器

C#倒计时器C#倒计时程序private void timer_Tick(object sender, EventArgs e){TimeSpan span = new TimeSpan();span = DateTime.Now - dtime;//这个dtime是一个时间控件上赋值过来的。

/doc/896190364.html,bel2.Text = span.ToString().Substring(0,8);///doc/896190364.html,bel2.Text = span.Days.ToString()+"天"+span.Hours.T oString()+"小时"+span.Minutes. ToString()+"分钟"+span.Seconds.ToString()+"秒";}--------------------------------------------------------------------------------------------------------1、使用 Stopwatch 类 (System.Diagnostics.Stopwatch)Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间。

在典型的Stopwatch 方案中,先调用Start 方法,然后调用 St op 方法,最后使用 Elapsed 属性检查运行时间。

Stopwatch 实例或者在运行,或者已停止;使用 IsRunning 可以确定 Stopwat ch 的当前状态。

使用 Start 可以开始测量运行时间;使用Stop 可以停止测量运行时间。

通过属性Elapsed、ElapsedMilliseconds 或 ElapsedTicks 查询运行时间值。

倒计时天 小时 分 秒代码

倒计时天 小时 分 秒代码

<!--倒计时设置代码--><script language="JavaScript"><!-- hide script from old browservar DifferenceHour = -1var DifferenceMinute = -1var DifferenceSecond = -1var Tday = new Date("Aug 8, 2008 20:00:00") //**倒计时时间点-注意格式var daysms = 24 * 60 * 60 * 1000var hoursms = 60 * 60 * 1000var Secondms = 60 * 1000var microsecond = 1000function clock(){var time = new Date()var hour = time.getHours()var minute = time.getMinutes()var second = time.getSeconds()var timevalue = ""+((hour > 12) ? hour-12:hour)timevalue +=((minute < 10) ? ":0":":")+minutetimevalue +=((second < 10) ? ":0":":")+secondtimevalue +=((hour >12 ) ? " PM":" AM")// document.formnow.now.value = timevaluevar convertHour = DifferenceHourvar convertMinute = DifferenceMinutevar convertSecond = DifferenceSecondvar Diffms = Tday.getTime() - time.getTime()DifferenceHour = Math.floor(Diffms / daysms)Diffms -= DifferenceHour * daysmsDifferenceMinute = Math.floor(Diffms / hoursms)Diffms -= DifferenceMinute * hoursmsDifferenceSecond = Math.floor(Diffms / Secondms)Diffms -= DifferenceSecond * Secondmsvar dSecs = Math.floor(Diffms / microsecond)if(convertHour != DifferenceHour) document.formnow.dd.value=DifferenceHourif(convertMinute != DifferenceMinute) document.formnow.hh.value=DifferenceMinuteif(convertSecond != DifferenceSecond) document.formnow.mm.value=DifferenceSecond document.formnow.ss.value=dSecs// document.formnow.Tnow.value= DifferenceHour DifferenceMinute + DifferenceSecond + dSecssetTimeout("clock()",1000)}// end hiding --></script></head><!--BODY里面的ONLOAD注意--><body onload="clock();return true" text="red"><!--实现显示--><form name="formnow"><input name="dd" type="text" style="border:0;" size=2> 天<input name="hh" type="text" style="border:0;" size=2> 小时<input name="mm" type="text" style="border:0;" size=2> 分<input name="ss" type="text" style="border:0;" size=2> 秒</form><!--倒计时完毕-->。

51单片机输入数字并数码管倒计时典型C语言代码

51单片机输入数字并数码管倒计时典型C语言代码
//EX0=0;//关外部中断0源允许
circle1=circle/10;
chaishu(circle1);
while(1)
{
display(e,d,c,b,a);
}
}
else
{
TH0=(65536-50000)/256;//50毫秒
TL0=(65536-50000)%256;//装入定时器0初值
circle=0;
c=d1/100;////////c=5*
c1=d1%100;///////c1=35
b=c1/10;/////////b=3*
b1=c1%10;////////b1=5
a=b1;////////////a=5*
}
void display(uint wan,uint qian,uint bai,uint shi,uint ge)
void T0_time() interrupt 1///////定时/计数器0的溢出中断对应的中断序号为"1"
{
TH0=(65536-50000)/256;//50毫秒
TL0=(65536-50000)%256;//装入定时器0初值
time++;
}
/////////////////////////////////////////////定时中断函数内容///////////////////////////////////////
{
case 0xeb:
{
num=7;
count=count+1;
}//如果=0xed那么num设定为4
break;//跳出switch
case 0xdb:
{
num=8;

c语言定时控制代码

c语言定时控制代码

c语言定时控制代码
在C语言中,可以使用``库中的`sleep()`函数来暂停程序的执行一段时间。

下面是一个简单的示例代码,演示如何使用`sleep()`函数实现定时控制:
```c
include <>
include <>
int main() {
// 输出提示信息
printf("开始倒计时...\n");
// 倒计时10秒
for (int i = 10; i >= 0; i--) {
// 输出当前时间
printf("%d\n", i);
// 暂停1秒
sleep(1);
}
// 倒计时结束,输出提示信息
printf("倒计时结束!\n");
return 0;
}
```
在上面的代码中,我们使用了`sleep()`函数来实现每秒钟输出一次当前时间,并且每次输出后暂停1秒钟。

通过循环控制,实现了倒计时10秒的功能。

当倒计时结束后,程序会输出提示信息。

倒计时代码

倒计时代码

Dim n '公用变量,记住下一个任务执行的时间Dim a '开始时间Dim b '结束时间Sub 计时10()n = Now + TimeValue("00:00:01") '设定时间间隔为一秒If Now() > b Then MsgBox "倒计时结束": Call 停止: Exit Sub[f10] = Format(b - Now(), "h:mm:ss") '设置单元格格式Application.OnTime n, "计时10" '到指定时间后再执行本过程End SubSub 开始10()[b10] = Format([b10], "h:mm:ss") '设置单元格格式a = [b10] '设定时间b = Now() + a '计算结束时间[c10] = Format(b, "yyyy-m-d h:mm:ss") '设置单元格格式Call 计时10End SubSub 停止10()On Error Resume NextApplication.OnTime n, "计时10", , False '停止任务的执行End Sub用EXCEL中的OnTime函数可以制作一个倒计时器,只要设定一个时间,EXCEL就会以一秒为单位倒计时,到达设定时间后停止并提示。

步骤/方法图一是倒计时器的样子,当然你也可以做成其他喜欢的样式。

只要在C2单元格中,按“时:分:秒” 格式输入一个时间,按右边的“开始”按钮,就可以开始倒计时,并在C3格显示出计时终止后的时间,在C4格还会动态显示剩余的时间。

下面介绍制作过程第一步:在EXCEL窗口中按上图的样式做一个界面,设置你喜欢的字体大小与颜色边框。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档