专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
LabView
求一个用led显示倒计时的程序
2019-07-17 20:08
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
LabVIEW
6524
4
1351
定时开始,用led显示倒计时时间,时间结束亮灯或者发出声音
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
wzzjnb2006
1楼-- · 2019-07-17 22:56
很多板子的端口都不一样,没有具体的板子不好写。
加载中...
温暖如夏花的眼眸i
2楼-- · 2019-07-18 03:03
随便写个能运行的就行
加载中...
温暖如夏花的眼眸i
3楼-- · 2019-07-18 04:31
精彩回答 2 元偷偷看……
加载中...
太子的空间
4楼-- · 2019-07-18 10:23
#include<reg51.h>
sbit P10=P1^0;//蜂鸣器
sbit P33=P3^3; //+10
sbit P32=P3^2; //-10
sbit P31=P3^1; //开始暂停
sbit P36=P3^6; //-1
sbit P37=P3^7; //+1
//unsigned char c[10]={0xfc,0X60,0Xda,0Xf2,0X66,0Xb6,0xbe,0Xe0,0Xfe,0xf6}; //开发板段选 p2
//unsigned char b[8]={0X7f,0xbf,0xdf,0Xef,0xf7,0xfb,0Xfd,0Xfe}; //开发板位选 p0
unsigned char c[10]={0x5f,0X41,0X9d,0Xd5,0Xc3,0Xd6,0xde,0X45,0Xdf,0xd7}; //实物段选 p0
unsigned char b[8]={0X7f,0xef,0xdf,0Xbf, 0x7f,0xdf,0Xbe,0Xef}; //实物位选 p2
unsigned char sign,begin,signbegin, signminuteup,signminutedown,signminuteup10,signminutedown10;
signed char minute,second;
void sjxs();
void fmq();
void delay100us(); //按键防震的延时
void delay400ms(void);
void main()
{
P33=1;
P32=1;
P31=1;
P36=1;
P37=1;
while(1)
{
if(sign==100)
{sign=0;second--;}
if(second==-1)
{minute--;second=59;}
sjxs(); //显示程序 显示部分放这里,保证数据及时显示
if(minute==0&&second==0&&begin==1)
{begin=0;EA=0;ET0 = 0;TR0 = 0; fmq(); /*蜂鸣器*/}
if(minute>99)
{minute=minute%10;}
if(minute<0)
{minute=0;}
/*---------------------------------------------------------------------------*/
if(P37==0) //按键minute++
{ delay100us();
if(P37==0)
{
signminuteup=1;
}
}
if(signminuteup==1&&P37==1)
{signminuteup=0;minute++;}
/*---------------------------------------------------------------------------*/
if(P36==0) //按键minute--
{ delay100us();
if(P36==0)
{
signminutedown=1;
}
}
if(signminutedown==1&&P36==1)
{signminutedown=0;minute--;}
/*---------------------------------------------------------------------------*/
if(P33==0) //按键minute + 10
{ delay100us();
if(P33==0)
{
signminuteup10=1;
}
}
if(signminuteup10==1&&P33==1)
{signminuteup10=0;minute=minute+10;}
/*---------------------------------------------------------------------------*/
if(P32==0) //按键minute - 10
{ delay100us();
if(P32==0)
{
signminutedown10=1;
}
}
if(signminutedown10==1&&P32==1)
{signminutedown10=0;minute=minute-10;}
/*---------------------------------------------------------------------------*/
if(P31==0) //按键begin
{ delay100us();
if(P31==0)
{
signbegin=1;
}
}
if(signbegin==1&&P31==1)
{ TH0 = 0xD8; //定时器装入值 10ms
TL0 = 0xF0; //定时器装入值 10ms
ET0 = ~ET0;
TR0 = ~TR0;
EA=~EA;
signbegin=0;
begin=1;
}
/*---------------------------------------------------------------------------*/
}
}
void Timer0Interrupt(void) interrupt 1
{
TH0 = 0x0DC; //重装数值
TL0 = 0x05; //重装数值
TMOD = 0x01;
ET0 = 1;
TR0 = 1;
sign++; //add your code here!
}
void sjxs()
{ unsigned char u,e;
unsigned int sjfj[4]; //分解储存
sjfj[0]=second/1 %10; //数据分解 个
sjfj[1]=second/10 %10; //数据分解 十
sjfj[2]=minute/1 %10; //数据分解 百
sjfj[3]=minute/10 %10; //数据分解 千
for(e=0;e<10;e++)
{
P2=b[0]; //个位
P0=c[sjfj[0]];
for(u=0;u<30;u++) ; P0=0x00;P2=0x00; //消除光影子
if(second>9)
{ P2=b[1]; //十位
P0=c[sjfj[1]];
for(u=0;u<30;u++) ; } P0=0x00;P2=0x00; //消除光影子
if(minute>0)
{ P2=b[2]; //百
P0=c[sjfj[2]]|0x20;
for(u=0;u<30;u++) ;} P0=0x00;P2=0x00; //消除光影子
if(minute>9)
{ P2=b[3]; //千
P0=c[sjfj[3]];
for(u=0;u<30;u++) ; } P0=0x00;P2=0x00; //消除光影子
}
}
void delay100us() //误差 0us for按键防震,防静电
{
unsigned char a,e;
for(e=1;e>0;e--)
for(a=47;a>0;a--);
}
void delay400ms(void) //误差 0us
{
unsigned char a1,b1,c1;
for(c1=29;c1>0;c1--)
for(b1=70;b1>0;b1--)
for(a1=97;a1>0;a1--);
}
void fmq()
{unsigned long s,z,w;
for(w=0;w<3;w++)
{
for(z=0;z<3000;z++)
{
for(s=0;s<3;s++)
{P10=~P10;}
}
delay400ms();
}
}
加载中...
一周热门
更多
>
相关问题
怎么利用公式波形产生所想要的波形
2 个回答
USBCAN-2A与PCI5121D的数据通信
1 个回答
labview调用c时遇到问题
1 个回答
大家帮小弟解决下问题,不胜感激
4 个回答
关于labview插值
1 个回答
菜鸟问题,求助不同类型处理方法~
4 个回答
菜鸟的问题labview中子程序的调用
1 个回答
关于labview作图的新手问题,求指教...
2 个回答
相关文章
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
LabView
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
sbit P10=P1^0;//蜂鸣器
sbit P33=P3^3; //+10
sbit P32=P3^2; //-10
sbit P31=P3^1; //开始暂停
sbit P36=P3^6; //-1
sbit P37=P3^7; //+1
//unsigned char c[10]={0xfc,0X60,0Xda,0Xf2,0X66,0Xb6,0xbe,0Xe0,0Xfe,0xf6}; //开发板段选 p2
//unsigned char b[8]={0X7f,0xbf,0xdf,0Xef,0xf7,0xfb,0Xfd,0Xfe}; //开发板位选 p0
unsigned char c[10]={0x5f,0X41,0X9d,0Xd5,0Xc3,0Xd6,0xde,0X45,0Xdf,0xd7}; //实物段选 p0
unsigned char b[8]={0X7f,0xef,0xdf,0Xbf, 0x7f,0xdf,0Xbe,0Xef}; //实物位选 p2
unsigned char sign,begin,signbegin, signminuteup,signminutedown,signminuteup10,signminutedown10;
signed char minute,second;
void sjxs();
void fmq();
void delay100us(); //按键防震的延时
void delay400ms(void);
void main()
{
P33=1;
P32=1;
P31=1;
P36=1;
P37=1;
while(1)
{
if(sign==100)
{sign=0;second--;}
if(second==-1)
{minute--;second=59;}
sjxs(); //显示程序 显示部分放这里,保证数据及时显示
if(minute==0&&second==0&&begin==1)
{begin=0;EA=0;ET0 = 0;TR0 = 0; fmq(); /*蜂鸣器*/}
if(minute>99)
{minute=minute%10;}
if(minute<0)
{minute=0;}
/*---------------------------------------------------------------------------*/
if(P37==0) //按键minute++
{ delay100us();
if(P37==0)
{
signminuteup=1;
}
}
if(signminuteup==1&&P37==1)
{signminuteup=0;minute++;}
/*---------------------------------------------------------------------------*/
if(P36==0) //按键minute--
{ delay100us();
if(P36==0)
{
signminutedown=1;
}
}
if(signminutedown==1&&P36==1)
{signminutedown=0;minute--;}
/*---------------------------------------------------------------------------*/
if(P33==0) //按键minute + 10
{ delay100us();
if(P33==0)
{
signminuteup10=1;
}
}
if(signminuteup10==1&&P33==1)
{signminuteup10=0;minute=minute+10;}
/*---------------------------------------------------------------------------*/
if(P32==0) //按键minute - 10
{ delay100us();
if(P32==0)
{
signminutedown10=1;
}
}
if(signminutedown10==1&&P32==1)
{signminutedown10=0;minute=minute-10;}
/*---------------------------------------------------------------------------*/
if(P31==0) //按键begin
{ delay100us();
if(P31==0)
{
signbegin=1;
}
}
if(signbegin==1&&P31==1)
{ TH0 = 0xD8; //定时器装入值 10ms
TL0 = 0xF0; //定时器装入值 10ms
ET0 = ~ET0;
TR0 = ~TR0;
EA=~EA;
signbegin=0;
begin=1;
}
/*---------------------------------------------------------------------------*/
}
}
void Timer0Interrupt(void) interrupt 1
{
TH0 = 0x0DC; //重装数值
TL0 = 0x05; //重装数值
TMOD = 0x01;
ET0 = 1;
TR0 = 1;
sign++; //add your code here!
}
void sjxs()
{ unsigned char u,e;
unsigned int sjfj[4]; //分解储存
sjfj[0]=second/1 %10; //数据分解 个
sjfj[1]=second/10 %10; //数据分解 十
sjfj[2]=minute/1 %10; //数据分解 百
sjfj[3]=minute/10 %10; //数据分解 千
for(e=0;e<10;e++)
{
P2=b[0]; //个位
P0=c[sjfj[0]];
for(u=0;u<30;u++) ; P0=0x00;P2=0x00; //消除光影子
if(second>9)
{ P2=b[1]; //十位
P0=c[sjfj[1]];
for(u=0;u<30;u++) ; } P0=0x00;P2=0x00; //消除光影子
if(minute>0)
{ P2=b[2]; //百
P0=c[sjfj[2]]|0x20;
for(u=0;u<30;u++) ;} P0=0x00;P2=0x00; //消除光影子
if(minute>9)
{ P2=b[3]; //千
P0=c[sjfj[3]];
for(u=0;u<30;u++) ; } P0=0x00;P2=0x00; //消除光影子
}
}
void delay100us() //误差 0us for按键防震,防静电
{
unsigned char a,e;
for(e=1;e>0;e--)
for(a=47;a>0;a--);
}
void delay400ms(void) //误差 0us
{
unsigned char a1,b1,c1;
for(c1=29;c1>0;c1--)
for(b1=70;b1>0;b1--)
for(a1=97;a1>0;a1--);
}
void fmq()
{unsigned long s,z,w;
for(w=0;w<3;w++)
{
for(z=0;z<3000;z++)
{
for(s=0;s<3;s++)
{P10=~P10;}
}
delay400ms();
}
}
一周热门 更多>