专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
51单片机
中断,电子时钟,定时器的问题
2019-07-16 03:49
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
6729
17
1153
刚学完定时器,编写了一个
电子
时钟的程序,想用中断控制时钟的分或秒+1,但是一触发中断,数码管就会停止显示以前的数,为什么呢,然后加的数也不是一,怎么给中断像独立按键一样的那种“消抖”
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
lstcspring
1楼-- · 2019-07-16 04:43
精彩回答 2 元偷偷看……
加载中...
多来米
2楼-- · 2019-07-16 06:07
不懂帮顶
加载中...
a515972470
3楼-- · 2019-07-16 10:04
lstcspring 发表于 2012-11-13 22:59
不知道你是个什么情况,无图无程序
#include<reg52.h>
#define ui unsigned int
#define uc unsigned char
unsigned char code duan[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};
unsigned char code wei[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
sbit fmq=P3^6;
sbit K2=P3^3;
uc shi=12,fen=0,miao=0,m=0,e ;
delay(ui a)
{
uc z;
while(a--)
for(z=0;z<11;z++) {;}
}
void delay1ms(ui i)
{
while(i--)
{
uc j;
for(j=0;j<115;j++) {;}
}
}
void display()
{
P2=wei[0];
P0=duan[shi/10];
delay1ms(3);
P2=wei[1];
P0=duan[shi%10];
delay1ms(3);
P2=wei[2];
P0=0xbf;
delay1ms(3);
P2=wei[3];
P0=duan[fen/10];
delay1ms(3);
P2=wei[4];
P0=duan[fen%10];
delay1ms(3);
P2=wei[5];
P0=0xbf;
delay1ms(3);
P2=wei[6];
P0=duan[miao/10];
delay1ms(3);
P2=wei[7];
P0=duan[miao%10];
delay1ms(3);
}
main()
{
EA=1;
EX0=1;
ET0=1;
EX1=1;
ET1=1;
TMOD=0x01;
TH1=(65536-55536)/256;
TL1=(65536-55536)%256;
TF1=0;
TR1=1;
while(1)
{
display();
}
}
void q()interrupt 0
{
TR1=~TR1;
}
void qaq() interrupt 2
{
if(miao<30)
{
miao=0;
}
if(miao>=30)
{
for(e=0;e<100;e++)
{
fmq=0;
delay(1);
fmq=1;
delay(1);
}
miao=0;
fen=fen+1;
{
if(fen==60)
{
fen=0;
shi=shi+1;
if(shi>23)
{
shi=fen=miao=0;
}
}
}
}
}
void qq() interrupt 3
{
TF1=0;
m++;
if(m==120)
{
m=0;
miao=miao+1;
}
if(miao==60)
{
for(e=0;e<100;e++)
{
fmq=0;
delay(1);
fmq=1;
delay(1);
}
miao=0;
fen=fen+1;
{
if(fen==60)
{
for(e=0;e<200;e++)
{
fmq=0;
delay(4);
fmq=1;
delay(1);
}
fen=0;
shi=shi+1;
if(shi>23)
{
shi=fen=miao=0;
}
}
}
}
TH1=(65536-55536)/256;
TL1=(65536-55536)%256;
}
延时不会调,都是瞎凑的数
加载中...
lovezjf234
4楼-- · 2019-07-16 11:05
怎么一个小小的计时器,用那么多中断,你还知道中断的优先级么?我怀疑你自己都搞乱了,先把程序简化吧。
加载中...
3htech
5楼-- · 2019-07-16 16:43
动态扫描在主程序中,你的中断处理时间太长,所以看起来就是显示停止了。
加载中...
yatoo
6楼-- · 2019-07-16 17:46
精彩回答 2 元偷偷看……
加载中...
1
2
3
下一页
一周热门
更多
>
相关问题
【东软载波ESF0654 PDS开发板活动】开箱
1 个回答
东软载波ESF0654 PDS开发板外部中断
1 个回答
东软载波ESF0654 PDS开发板高级控制定时器AD16C4T
1 个回答
用串口调试助手为什么只能在hex模式接收发送而在文本模式不行
9 个回答
触摸芯片SC02B/SC04B在地砖灯的设计方案
1 个回答
东软载波ESF0654 PDS开发板串口USART0代码分享
1 个回答
普通32位单片机使用linux的应用代码
5 个回答
东软载波ESF0654 PDS开发板AT24C04的调试
9 个回答
相关文章
51单片机与蓝牙模块连接
0个评论
51单片机的硬件结构
0个评论
基于51单片机的无线遥控器制作
0个评论
51单片机 AD转换
0个评论
51单片机数码管递增显示
0个评论
如何实现对单片机寄存器的访问
0个评论
基于51单片机的指纹密码锁
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
51单片机
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
#include<reg52.h>
#define ui unsigned int
#define uc unsigned char
unsigned char code duan[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};
unsigned char code wei[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
sbit fmq=P3^6;
sbit K2=P3^3;
uc shi=12,fen=0,miao=0,m=0,e ;
delay(ui a)
{
uc z;
while(a--)
for(z=0;z<11;z++) {;}
}
void delay1ms(ui i)
{
while(i--)
{
uc j;
for(j=0;j<115;j++) {;}
}
}
void display()
{
P2=wei[0];
P0=duan[shi/10];
delay1ms(3);
P2=wei[1];
P0=duan[shi%10];
delay1ms(3);
P2=wei[2];
P0=0xbf;
delay1ms(3);
P2=wei[3];
P0=duan[fen/10];
delay1ms(3);
P2=wei[4];
P0=duan[fen%10];
delay1ms(3);
P2=wei[5];
P0=0xbf;
delay1ms(3);
P2=wei[6];
P0=duan[miao/10];
delay1ms(3);
P2=wei[7];
P0=duan[miao%10];
delay1ms(3);
}
main()
{
EA=1;
EX0=1;
ET0=1;
EX1=1;
ET1=1;
TMOD=0x01;
TH1=(65536-55536)/256;
TL1=(65536-55536)%256;
TF1=0;
TR1=1;
while(1)
{
display();
}
}
void q()interrupt 0
{
TR1=~TR1;
}
void qaq() interrupt 2
{
if(miao<30)
{
miao=0;
}
if(miao>=30)
{
for(e=0;e<100;e++)
{
fmq=0;
delay(1);
fmq=1;
delay(1);
}
miao=0;
fen=fen+1;
{
if(fen==60)
{
fen=0;
shi=shi+1;
if(shi>23)
{
shi=fen=miao=0;
}
}
}
}
}
void qq() interrupt 3
{
TF1=0;
m++;
if(m==120)
{
m=0;
miao=miao+1;
}
if(miao==60)
{
for(e=0;e<100;e++)
{
fmq=0;
delay(1);
fmq=1;
delay(1);
}
miao=0;
fen=fen+1;
{
if(fen==60)
{
for(e=0;e<200;e++)
{
fmq=0;
delay(4);
fmq=1;
delay(1);
}
fen=0;
shi=shi+1;
if(shi>23)
{
shi=fen=miao=0;
}
}
}
}
TH1=(65536-55536)/256;
TL1=(65536-55536)%256;
}
延时不会调,都是瞎凑的数
一周热门 更多>