倒计时3分钟在到30秒时开始有声音提示的单片机汇编语言程序!!!

供稿:hz-xin.com     日期:2025-01-12
求一个基于单片机的用汇编语言写的倒计时程序

刚写的程序,可以通过S0(功能键),S1(加键),S2(减键)设定初值,倒数为00-00-00时蜂鸣器响,通过八位LED显示;

#include
#include
#define uchar unsigned char
#define uint unsigned int

uchar code wei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//八位位选码表
uchar code duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//段选码表

sbit s0=P3^3; //设置功能键
sbit s1=P3^5; //设置‘加’键
sbit s2=P3^6; //设置‘减’键
sbit beep=P3^7; //设置蜂鸣器

void delay(uint z);
void display();
void init();
void keyscan();

uchar shi,fen,miao,nam;


void main()
{
init();
while(1)
{
display();
keyscan();
beep=1;
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=shi%10;
P2=wei[7];
P0=duan[s];
delay(1);
P2=wei[6];
P0=duan[g];
delay(1);
P2=wei[5];
P0=0xbf;
delay(1);

s=fen/10;
g=fen%10;
P2=wei[4];
P0=duan[s];
delay(1);
P2=wei[3];
P0=duan[g];
delay(1);
P2=wei[2];
P0=0xbf;
delay(1);

s=miao/10;
g=miao%10;
P2=wei[1];
P0=duan[s];
delay(1);
P2=wei[0];
P0=duan[g];
delay(1);
}

void init()
{
miao=10; //设定初值为 00-01-10
fen=1;
shi=0;

EA=1;
ET0=1;
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;

}

void timer() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
nam++;

if (nam==20)
{
nam=0;
if (miao==0)
{
miao=60;
if (fen==0)
{
fen=60;
if (shi==0)
shi=24;
shi--;

}
fen--;

}
miao--;


}



}

void keyscan()
{
uchar key,num;
if (s0==0)
{
delay(5);
if (s0==0)
{
key++;
if (key==4)
key=0;

}
while(!s0)
display();
}

if (s1==0)
{
delay(5);
if (s1==0)
{
num=1;
}
while(!s1)
display();
}

if (s2==0)
{
delay(5);
if (s2==0)
{
num=2;
}
while(!s2)
display();
}

switch(key)
{
case 0:TR0=1;break;
case 1:TR0=0;
if (num==1)
{
num=0;
miao++;
if (miao>=60)
miao=0;
display();
}
if (num==2)
{
num=0;
if (miao==0)
miao=60;
miao--;
display();
}

break;
case 2:
if (num==1)
{
num=0;
fen++;
if (fen>=60)
fen=0;
display();
}
if (num==2)
{
num=0;
if (fen==0)
fen=60;
fen--;
display();

}

break;
case 3:
if (num==1)
{
num=0;
shi++;
if (shi>=24)
shi=0;
display();

}
if (num==2)
{
num=0;
if (shi==0)
shi=24;
shi--;
display();
}

break;

}

}

什么单片机啊?要不要显示,用什么显示出来

需要外置芯片或者采用带pwm的单片机,或者需要用电阻配合搭个da,不然有程序也没有用

ORG 0000H
LJMP MAIN
ORG 000BH
LJMP PGT0
ORG 0030H
MAIN:MOV R2,#100
MOV R3,#180
MOV TMOD,#1
MOV TL0,#LOW(65536-10000)
MOV TH0,#HIGH(65536-10000)
SETB TR0
SETB ET0
SETB EA
AJMP $
PGT0:MOV TL0,#LOW(65536-10000)
MOV TH0,#HIGH(65536-10000)
DJNZ R2,X
MOV R2,#100
MOV A,R3
CJNE A,#30,Y
CLR P2.7
Y:DJNZ R3,X
CLR EA
SETB P2.7
X:RETI
蜂鸣器接P2.7,负逻辑驱动

倒计时3分钟在到30秒时开始有声音提示的单片机汇编语言程序!!!_百度...
需要外置芯片或者采用带pwm的单片机,或者需要用电阻配合搭个da,不然有程序也没有用

...一个倒计时器,时间为3分钟,最后30秒会发出声音提示..谢谢...
按你的叙述,你可以做成两个计时器,第一个时间为2分30秒,第二个为30秒的,并把第二个的动画效果设置为有声音,就行了

我想做一个3分钟的FLASH倒计时器,有开始停止按钮,在最后30秒发出警示音...
可以做,但那个开始停止按钮具体怎样?我做的是点击开始倒计时,计时完成后重开始倒计时,中间不能停。那样做起来就比较麻烦了。而且三分钟完全以秒计算,行吗?可以的话我就做了,采纳后传给你

在ppt中插入一个倒计时器,时间为15分钟,3分钟,5分钟,共3个,最后30秒会...
先开始幻灯片,然后选择时间,它会自动播放,到时间会响(必须先下载,要不然不行的)愿采纳

辩论赛主持词范文
好的,下面我宣布辩论赛正式开始。 (一)首先,进入我们的第一环节,即:开篇立论环节。在本环节中,双方各有3分钟时间对己方观点进行立论陈词。时间剩余30秒时,会有计时员响起警示音;铃声响起时,请辩手停止发言。现在,我们首先请正方一辩进行立论陈词,有请 好的,刚才正方一辩对自己的观点做了有理有据的立论陈述,...

在ppt中插入一个倒计时器,时间为15分钟,3分钟,5分钟,共3个,最后30秒会...
Countdown Timer , 一款倒计时软件,可用于会议、培训、讲座中PowerPoint幻灯片播放自动倒计时,支持手动\/自动、全屏、拖放、快捷设定、时间不足闪烁提醒等。Janus倒计时软件采用半透明浮动小窗口悬浮于屏幕上方,能够自动检测幻灯片放映并开始倒计时,退出放映时停止计时,也可以用于其它需要倒计时的场合。

三分钟倒计时视频无声音
三分钟倒计时视频无声音是没有按照正确的做法进行操作。正确操作方法是:1、在手机和电脑上都打开快投屏。2、在手机上输入电脑上的投屏码,然后点击允许连接。3、在手机上点击立即开始,手机屏幕就被投放到电脑上了。4、这样投屏后三分钟倒计时视频就会有声音了。

如何在ppt中插入3分钟倒计时器,最后还有声音提示?
在PPT中插入3分钟倒计时器,最后还有声音提示的方法:1. 插入倒计时器。打开PPT,找到需要插入倒计时器的幻灯片。在菜单栏中选择“幻灯片放映”,接着点击“幻灯片切换特效”,在切换特效的设置面板中,找到“切换音效”选项,选择“计时器”。在计时器设置中...

精彩辩论赛开场白及流程
首先有请正方一辩进行攻辩小结,时间为2分钟 感谢正方一辩,下面有请反方一辩进行攻辩小结。时间同样为2分钟 (三)自由辩论阶段 在此环节中,双方辩手将各有5分钟轮流交替发言时间。一方辩手落座即为另一方开始计时的标志,一方发言时,另一方不得打断。如果一方时间已经用完,另一方可以继续发言,也可向主持人示意放弃发...

计时器怎么用
1、单击默认软件【时钟】。2、单击【计时器】。3、设置10分钟倒计时,单击【开始按钮】。4、倒计时,默认会有滴滴的声音。5、关闭屏幕,开启锁屏。锁屏页面会有提示还有剩余多少时间。6、开启锁屏后,手机放在一旁,时间到了自动发出声音提醒,而且会提示超时了几秒。在屏幕下方左滑或右滑都可以关闭...