编程实现60秒的倒计时器程序,到最后10秒的时候数码管开始闪烁递减知道为0!请教这个闪烁子程序怎么编呢?

作者&投稿:蒲古 (若有异议请与网页底部的电邮联系)
请编写程序实现:当通过上位机串口发送字符1时,数码管从当前数字开始倒计时;发送16进制2时?~

请编写程序实现:当通过上位机串口发送字符1时,数码管从当前数字开始倒计时;发送16进制2时?
展开
编程 程序

#include#include #define uchar unsigned char#define uint unsigned intsbit led=P3^3; //P3^3--LED--电源,这样接法,即低电平点亮//P0接数码管的段//P2接数码管的位//共阴数码管的段定义,0~9// uchar code table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阳数码管的段定义,0~9uchar code table[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};void Delay(uint n){while(n--)// void Delay1ms() //@11.0592MHz{ unsigned char i, j; _nop_(); i = 2; j = 199; do { while (--j); } while (--i);}}void main(void){ uchar j = 10, m=0; while(1){ P2 = 1;//共阳。如果共阴,要取反 P0 = table[j/10%10]; // j 值的十位数 Delay(5); P2 = 2;//共阳。如果共阴,要取反 P0 = table[j%10]; // j 值的个位数 Delay(5); m++; if(m==97){//前面显示占用约10毫秒,所以100次就是1秒 if(j==0){//倒计时到0 P2=0;//关闭数码管 for(m=0; m<5; m++){//LED闪烁 led=0; Delay(100); led=1; Delay(100); } j=11; } j--; m=0; } }}
//经过测试的。。。

void display_shanshuo(uchar shi, uchar ge)//闪烁子程序
{
wei = 1; P0 = 0xff; wei = 0;//关闭显示
}

void main()
{
init();
while(1) {
if(time == 20) {
time = 0;
temp--;
if(temp == 0) temp = 20;
shi = temp / 10;
ge = temp % 10;
}
if(temp > 10) display(shi, ge); //正常显示.
else { //否则闪烁.
if (time / 10) display(shi, ge); //后半秒正常显示.
else display_shanshuo(shi, ge); //前半秒关闭显示.
}
}
}

你可以搞一个全局变量写在中断函数里面嘛,就像你那个time一样,计数小于等于20次就将数码管的位选送1,计数大于20小于等于40就将位选送0,满四十后马山清零,就像你的那个time一样。这样就是相隔一秒闪烁呀

你可以搞一个全局变量写在中断函数里面嘛,就像你那个time一样,计数小于等于20次就将数码管的位选送1,计数大于20小于等于40就将位选送0,满四十后马山清零,就像你的那个time一样。这样就是相隔一秒闪烁呀
回答者: subo19920716 | 五级 | 2011-6-28 22:57
void display_shanshuo(uchar shi, uchar ge)//闪烁子程序
{
wei = 1; P0 = 0xff; wei = 0;//关闭显示
}

void main()
{
init();
while(1) {
if(time == 20) {
time = 0;
temp--;
if(temp == 0) temp = 20;
shi = temp / 10;
ge = temp % 10;
}
if(temp > 10) display(shi, ge); //正常显示.
else { //否则闪烁.
if (time / 10) display(shi, ge); //后半秒正常显示.
else display_shanshuo(shi, ge); //前半秒关闭显示.
}
}
}


怎样使用Vue实现倒计时按钮
这次给大家带来怎样使用Vue实现倒计时按钮,使用Vue实现倒计时按钮的注意事项有哪些,下面就是实战案例,一起来看一下。在项目开发里,我们经常会遇到发送验证码、点击了之后有60秒倒计时的按钮,很常见却也很简单,但是在写这个按钮的时候有个别地方还要注意下,今天写出来,如有问题欢迎指正!完成的效果...

使用2个数码管设计一个60秒倒计时C语言程序,要求用定时器中断定时1秒...
7SEG-COM-CATHODE 为共阴管 include<reg51.h> define uchar unsigned char define uint unsigned int uchar num=60,shi,ge;uchar code TAB[]={ 0x3F,\/*0*\/ 0x06,\/*1*\/ 0x5B,\/*2*\/ 0x4F,\/*3*\/ 0x66,\/*4*\/ 0x6D,\/*5*\/ 0x7D,\/*6*\/ 0x07,\/*7*\/ 0x7F,\/*8*\/ 0x6F,\/*...

急求51单片机顺、倒计时60秒程序加注释下~好的话可再加财富!谢谢~!_百...
interserve(void ) interrupt 1 using 1 { TR0=0; \/\/关闭定时器T0 int_time ++; \/\/每来一次中断,中断次数int_time自加1 if(int_time==20) \/\/够20次中断,即1秒钟进行一次检测结果采样 { int_time=0; \/\/中断次数清0 second++; \/\/秒加1 if(second==60)...

利用单片机设计实现一个60秒倒计时显示装置,并且计时到后发出报警声音...
include<reg52.h>sbit bz=P3^1;unsigned char a[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90};unsigned char n,time=60;main(){P1=a[0];P2=a[6];TMOD=0X01;TH0=(65536-10000)\/256;TL0=(65536-10000)%256;EA=1;ET0=1;TR0=1;while(1);}timer0() ...

小白求救,51单片机利用两个数码管实现60秒倒计时?
然后下面这个程序你可以参考一下。是符合我的硬件图的。include <reg51.h> unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void show(unsigned char n);void delay(unsigned int k);void main(){ unsigned char i;int j;while(1){ for(i=60;j=60,i...

基于单片机控制的60秒倒计时实现
include<reg52.h> unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};unsigned char second=0,minite=6;void main(){ EA=1;ET1=1;TMOD=0x10;TH1=(65536-50000)\/256;TL1=(65536-50000)%256;TR1=1;while(1) ;} void time1() interrupt 3 ...

求C51单片机汇编语言控制两位数码管60秒倒计时的程序,最好能说明下思路...
include <at89x52.h> include <intrins.h> define uchar unsigned char define uint unsigned int define seg P0 define sw P2 int tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};int dis[]={0,0};uint X;uchar Count=0;uchar sec=60;void display(){ int a;int...

单片机 60秒倒计时
SETB P2.7 DJNZ R3, LOOP1 RET CHANG:MOVC A, @A+DPTR MOV P0, A RET DLY10MS:MOV R6, #256 D1:MOV R7, #256 NOP NOP NOP NOP DJNZ R7,DJNZ R6, D1 RET TABLE:DB 28H,7EH,0A4H,64H,72H,61H,21H,7CH,20H,60H END ...

如何用delphi制作一个60秒的倒计时
定义一个全局变量T=60 拖一个控件Timer,再拖一个label1 在timer的ontimer事件里写:T--;label1.caption="剩余时间:"+inttostr(T)+"秒";if(T=0)...\/\/T=0怎么怎么

设计60秒倒计时来源于什么
倒计时这一短语来源于1927年德国的幻想故事片《月球少女》。在这部影片中,导演弗里兹为了增加艺术效果,扣人心弦,在火箭发射的镜头里设计了9、8、7、……3、2、1点火的发射程序。这个程序得到火箭专家们的一致赞许,认为它十分准确清楚科学地突出火箭发射的时间越来越少,使人们产生火箭发射前的紧迫感。

永顺县15960169433: 编程实现60秒的倒计时器程序,到最后10秒的时候数码管开始闪烁递减知道为0!请教这个闪烁子程序怎么编呢? -
村凝单克: void display_shanshuo(uchar shi, uchar ge)//闪烁子程序 { wei = 1; P0 = 0xff; wei = 0;//关闭显示 } void main() { init(); while(1) { if(time == 20) { time = 0; temp--; if(temp == 0) temp = 20; shi = temp / 10; ge = temp % 10; } if(temp > 10) display(shi, ge);...

永顺县15960169433: 怎样用单片机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,...

永顺县15960169433: 求一个基于89C52的60秒倒计时C语言程序 -
村凝单克: 使用KeilC unsigned int iTimer=0;//将timer0或者timer1设计成100ms中断程序 {.if(iTimer)iTimer--;.}//在主程序里加入如下 {.iTimer = 600; //600x100ms = 60s while(iTimer); //等待60秒倒计时结束.}

永顺县15960169433: 用单片机汇编语言编写60秒计时器! -
村凝单克:;数码管段选接P1口,位选接P2.0和P2.1, ;采用定时器T1定时10ms,60H为1s计数单元,计数100次为1sORG 0000H ;程序从0地址开始 LJMP MAIN ;跳到MAIN处执行 ORG 001BH ;定时器T1 LJMP TIME1 ORG 0030H MAIN:MOV TMOD,...

永顺县15960169433: 设计一个计数器类,引用计数器类实现60秒倒计时 -
村凝单克: 在窗体上添加label1的基础上,再在窗体上添加1个timer1,即计时器控件.具体代码如下 Private Sub Label1_Click() Timer1.Enabled = True Timer1.Interval = 60 '秒表运行间隔,这里设置为0.1秒 Label1.Caption = "60" '倒计时的秒数 End Sub ...

永顺县15960169433: 51单片机通过使用74HC164实现60秒倒计时电路图如下:该怎么编程序(C语言)??
村凝单克: 使用中断计时,然后用两个端口控制位选,用8个端口做段选,已动态扫描的方式显示.

永顺县15960169433: 请帮忙写一个程序:单片机控制液晶显示器60秒倒计时(C语言) -
村凝单克: #include<reg52.h>#define uchar unsigned char#define uint unsigned int sbit RS=P2^5; sbit RW=P2^6; sbit EN=P2^7; uchar code temp[]="00"; uint aa,ee,date1; void delay(uint aa) { uint bb,cc; for(bb=0;bb<aa;bb++) for(cc=0;cc<100;cc++); } void ...

永顺县15960169433: 单片机实现60秒倒计时 求教 -
村凝单克: /************************************************************************************* 这么简单的一个程序被你写的那么复杂,程序错误太多,单片机 程序运行效率也很低,*************************************************************************************/#include...

永顺县15960169433: 如何用delphi制作一个60秒的倒计时 -
村凝单克: 定义一个全局变量T=60 拖一个控件Timer,再拖一个label1 在timer的ontimer事件里写: T--; label1.caption="剩余时间:"+inttostr(T)+"秒"; if(T=0)...//T=0怎么怎么

永顺县15960169433: 求C语言程序:数码管60秒倒数 -
村凝单克: 共阴数码管,首先通过小工具将0-9的10个数字的a-f点亮方式定义到数组中. 之后就是定义一个字节的BCD码,4位高为一个数字 0-9 左边,4位低为数字右边.这样只要对这个BYTE值取下标就可以显示出来.思路希望对你有帮助.你这个是静态方式,比较浪费IO口,另外既然P0口拉了,最好P2口也拉一下,不过stc是有强推输出,可以不拉.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网