60s倒计时程序和计数器1~60怎么写啊,求程序 89c52单片机
嘎嘎嘎,刚好写过
60秒倒计时程序
#include
#define uchar unsigned char
#define uint unsigned int
uchar temp,bai,shi,ge,num;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint);
void main()
{
temp=60;
num=0;
P2=0x00;
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
shi=temp/10;
ge=temp%10;
P0=table[shi];
P2=0x02;
delay(5);
P0=table[ge];
P2=0x01;
delay(5);
}
}
void T0_time()interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
num++;
if(num==40)
{
num=0;
temp--;
if(temp==0)
{
temp=60;
}
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
使用KeilC
unsigned int iTimer=0;
//将timer0或者timer1设计成100ms中断程序
{
.
if(iTimer)iTimer--;
.
}
//在主程序里加入如下
{
.
iTimer = 600; //600x100ms = 60s
while(iTimer); //等待60秒倒计时结束
.
}
ORG 0000H
JMP BEGIN
ORG 000BH
LJMP T0INT
ORG 001BH
LJMP T1INT
LEDD EQU 30H
LEDC EQU 36H
SECC EQU 37H
TCNT EQU 3AH
ORG 0030H
;---------------------------------------
TABLE: ; 共阴极数码管显示代码表
DB 0FCH ;"0" 00H
DB 60H ;"1" 01H
DB 0DAH ;"2" 02H
DB 0F2H ;"3" 03H
DB 66H ;"4" 04H
DB 0B6H ;"5" 05H
DB 0BEH ;"6" 06H
DB 0E0H ;"7" 07H
DB 0FEH ;"8" 08H
DB 0F6H ;"9" 09H
DB 0EEH ;"A" 0AH
DB 3EH ;"B" 0BH
DB 9CH ;"C" 0CH
DB 7AH ;"D" 0DH
DB 9EH ;"E" 0EH
DB 8EH ;"F" 0FH
DB 00H ;" " 10H
; DB 3FH,06H,5BH,4FH,66H ;12345
; DB 6DH,7DH,07H,7FH, ;6789
;---------------------------------------
DELAY:
MOV R6,#25
DLY01:
MOV R7,#100
DJNZ R7,$
DJNZ R6,DLY01
RET
;---------------------------------------
BEGIN:
MOV SP,#5FH
MOV TMOD,#11H
MOV TH0,#3CH
MOV TL0,#0B0H
MOV TH1,#0F4H
MOV TL1,#48H
MOV LEDC,#6
MOV R0,#LEDD
CLR A
INIT:
MOV @R0,A
INC R0
DJNZ LEDC,INIT
SETB ET1
SETB TR1
MOV P2,#0
MOV TCNT,#0
MOV SECC,#0
SETB ET0
SETB EA
MOV SECC,#60
LCALL DISSEC
SETB TR0
SETB TR1
LOOP:
SJMP $
;---------------------------------------
T1INT:
PUSH ACC
CLR TR1
MOV TH1,#0F4H
MOV TL1,#48H
SETB TR1
MOV DPTR,#TABLE
MOV R0,#LEDD
MOV A,LEDC
T1INT0:
JNZ T1INT1
MOV P2,#01H
MOV A,@R0
MOVC A,@A+DPTR
CPL A
MOV P0,A
SJMP T1INTD
T1INT1:
MOV P2,#02H
INC R0
MOV A,@R0
MOVC A,@A+DPTR
CPL A
MOV P0,A
T1INTD:
INC LEDC
MOV A,LEDC
CJNE A,#2,T1INT6
T1INT6:
JC T1INTE
MOV LEDC,#0
T1INTE:
POP ACC
RETI
;---------------------------------------
HBCD:
MOV B,#10
DIV AB
SWAP A
ORL A,B
RET
;---------------------------------------
T0INT:
PUSH ACC
CLR TR0
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
INC TCNT
MOV A,TCNT
CJNE A,#20,T0INT1
T0INT1:
JC T0INTE
MOV TCNT,#0
MOV A,SECC
DEC A
MOV SECC,A
JNZ T0INT2
MOV SECC,#60
T0INT2:
LCALL DISSEC
T0INTE:
POP ACC
RETI
;---------------------------------------
DISSEC:
MOV A,SECC
LCALL HBCD
PUSH ACC
ANL A,#0FH
MOV 30H,A
POP ACC
SWAP A
ANL A,#0FH
MOV 31H,A
RET
;---------------------------------------
END
实实在在的东西。
单片机,倒计时120和正计时150程序怎么写?
for (i = 0; i < 120; i++) { for (j = 0; j < 1000; j++) { \/\/ 适当的延时操作 } } } void main() { unsigned int count = 120;while (count > 0) { \/\/ 在显示器或LED上显示当前计数值 count delay();count--;} \/\/ 倒计时完成后的操作 } ```正计时150程序示例:...
编程实现倒计时的秒表,2位LED数码管显示,延时采用硬件延时的方法_百 ...
unsigned char second;\/\/秒倒计时变量 unsigned char t0n;\/\/T0中断次数计数 sbit k1=P3^2;\/\/定义按键 void delay(){ unsigned int j;for(j=400;j>0;j--);} void display()\/\/显示子程序 { P2=0x01;P0=tab[second\/10];\/\/显示十位 delay();P2=0x02;P0=tab[second%10];\/\/显示个位...
请教vb倒计时程序
但你要注意一点:进行时间相减就得出时间差来了,不过当现在的时间超过下午4点的时候 时间差就会一秒一秒的增加,在4点以前是一秒一秒的倒计时的.下面我写的这个程序 你会更加明白一些.Private DatNow As Date, Y As Integer Private Sub Timer1_Timer()Me.Cls DatNow = #6\/6\/2012 7:30:50 PM# ...
vb编写倒计时程序 跪求。。。
End Sub Private Sub Timer1_Timer()If ss <> 0 Then ss = ss - 1 Label1.Caption = mm & ":" & ss ElseIf mm <> 0 Then mm = mm - 1 ss = 59 Label1.Caption = mm & ":" & ss Else Label1.ForeColor = &HFF0000 Label1.Caption = "倒时计完成"End If End Sub ...
c51单片机定时器30秒倒计时程序,一个按键控制开始,另一个按键控制暂停和...
j=0;j<120;j++);}void dischg(){disdat[0]=sec\/10;disdat[1]=sec%10;}void t0isr() interrupt 1\/\/秒计时{TH0=0x3c;TL0=0xb0;time++;if(time==20){time=0;if(sec>0 && flag==0)sec--;}dischg();}void t1isr() interrupt 3\/\/显示{TH1=0xec;TL1=0x78;switch(scanled)...
vb6,做一个10s倒计时
s = 60 在代码编辑窗口的通用段进行变量定义:Dim h As Integer, m As Integer, s As Integer '分别存储时分秒 Dim a As Integer 双击窗体,进入代码编辑器,在 Form_Load事件中写入代码:Timer1.Enabled = False '先关闭计时器 关闭代码窗口,按下F5运行程序,单击“设置倒计时”命令按钮,弹出...
高手帮忙51c单片机——想制作倒计时报警器,求个c程序
if (miao==0&&fen==0&&shi==0)\/\/当倒数计时为00-00-00时蜂鸣器响 { beep=0;TR0=0;} } } void delay(uint z){ uint i,j;for (i=z;i>0;i--)for (j=110;j>0;j--);} void display() \/\/我这里P2为位选,P0为段选,显示格式为 时-分-秒 { uchar s,g;s=shi\/10;g=...
30秒倒计时器课程设计
首先是bit变量“act”,当“act”为“1”时倒计时开始,为“0”时倒计时停止,“act”初值为“0”,可以由按钮操作将其置“1”或清“0”。第二个全局变量是char变量“time”,存放倒计时的时间,当倒计时时间为0时,发出声光报警。变量“time”的初值为30,定时中断服务程序在“act”为1时,每1s对其进行减1操作...
急求51单片机顺、倒计时60秒程序加注释下~好的话可再加财富!谢谢~!_百...
ET0=1; \/\/定时器T0中断允许 TR0=1; \/\/启动定时器T0开始运行 int_time=0; \/\/中断次数初始化 second=0; \/\/秒初始化 while(1){ DisplaySecond(second); \/\/调用秒的显示子程序 } } \/\/ \/\/函数功能:定时器T0的中断服务程序 \/\/ void interserve(void ) interrupt 1 using 1...
单片机, 请求大神按照我的要求帮我编一个99倒计时到0的汇编语言的程序...
ORG 0000HLJMP MAINORG 000BHLJMP T0ISRORG 0030HMAIN: MOV TMOD,#01H MOV TH0,#HIGH(65536-10000) MOV TL0,#LOW(65536-10000) SETB ET0 SETB EA MOV R0,#9 MOV R1,#9 MOV R2,#0 MOV R3,#9 CLR 00H CLR 01HLOOP: JB P1.0,LP01 JNB P1.0,$ SETB TR0 C...
油解瑞琪: 原发布者:寂寞的猪猪60秒倒计时程序#include#defineucharunsignedchar#defineuintunsignedintuchartemp,bai,shi,ge,num;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voiddelay(uint);...
顺昌县19518862394: 用单片机的定时/计数器实现60s倒计时,并用两位数码管静态显示倒计时秒值; - ?
油解瑞琪: 这个设计的关键有两个地方:1.配置好单片机定时器2.控制数码管显示.我这里有相关资料,加QQ1594863321
顺昌县19518862394: 如何用数字逻辑电路产生60s,45s和5s的倒计时信号 - ?
油解瑞琪: 一个时钟信号源(可以用有源晶振)、一片二进制计数器(可以用CD4521)、一片与非门(可以用CD4068),用计数器对时钟信号进行计数,根据时钟频率计算一下多少个脉冲分别相当于60秒、45秒、5秒,把计数器的相应输出锻送到与非门的输入,由与非门的输提供倒计时信号.CD4068是双-8输入与非门,可以分别提供两路精确的倒计时信号,5秒的倒计时信号用一片输入变量较少的与非门(例如CD4012)就可以了.
顺昌县19518862394: 设计一个计数器类,引用计数器类实现60秒倒计时 - ?
油解瑞琪: 在窗体上添加label1的基础上,再在窗体上添加1个timer1,即计时器控件.具体代码如下 Private Sub Label1_Click() Timer1.Enabled = True Timer1.Interval = 60 '秒表运行间隔,这里设置为0.1秒 Label1.Caption = "60" '倒计时的秒数 End Sub ...
顺昌县19518862394: 如何用单片机制作倒数计时器 - ?
油解瑞琪: 也就是百倒计时30秒吗? 用内部定时器就可以, 以51为例度 60ms*500=30s(每次定时60毫秒 循环500次) 60ms初值 TC=版2^16-60000=5536=15A0(H) ORG 0000HLJMP MAINORG 000BHLJMP TO_INT ;ORG 0100H MAIN: MOV IE ,#...
顺昌县19518862394: 怎样用单片机c语言实现60秒倒计时 - ?
油解瑞琪: 你的分不好拿啊= =!!!!#include<reg51.h> #define uchar unsigned char//宏定义 #define uint unsigned int sbit dula=p2^6; //段控制位 sbit wela=p2^7; //位控制位 uchar miao,fen,aa,n1,n2,n3,n4; uchar code table[]={ //显示编码 0x3f,0x06,0x5b,...
顺昌县19518862394: 求用单片机c语言编写的倒计时60s程序,为什么在百度上找的程序验证了现象不对 - ?
油解瑞琪: 嘎嘎,刚好写过60秒倒计时程序#include num=0; P2=0x00;0;TL0=(65536-45872)%256; EA=1; ET0=1,0x4f,0x66,shi,0x06,0x5b;x>0;x--) for(y=110;y>,0x6f,0x77; temp--; TR0=1; while(1) { shi=temp/,0x7c,0x39;256; delay(5); } } void T0_time()...
顺昌县19518862394: 带数码管显示的十进制计数器的程序 - ?
油解瑞琪: //倒计时 60s#include <reg51.h>#define SEG P2#define SCANP P1#define count_M1 50000#define TH_M1 (65536-count_M1)/256#define TL_M1 (65536-count_M1)%256 int count_T0=0;#define count_M2 250#define TH_M2 (256-count_M2)#...
顺昌县19518862394: 用单片机设计一个两位LED显示的秒表,按下计时键时,进行60s倒计时显示 - ?
油解瑞琪: #include sbit P3_5 =P3^5; unsigned char code dispcode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0x00}; unsigned char second=60; unsigned char keycnt; unsigned int tcnt; void main(void) { ...
顺昌县19518862394: 求单片机数码管倒计时程序 - ?
油解瑞琪: #include<reg52.h> #include <intrins.h> //内部包含延时函数 _nop_(); #define uchar unsigned char #define uint unsigned int sbit d1=P2^0; sbit key1=P0^4; sbit SDATA_595=P0^0; //串行数据输入 ----接板卡上的SPI 数据信号输入端 sbit SCLK_...