打印
[51单片机]

每次按下按键时触发INT0 中断,中断程序累加计数,中断次数计数值显示在2只数码管上

[复制链接]
5607|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
萌萌的小九九|  楼主 | 2013-11-18 19:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求各位大神帮看看
我只会弄清零的- -
怎么累加啊!!
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
uchar DSY_Buffer[]={0,0,0};
uchar Count=0;
sbit Clear_Key=P3^6;
void Show_Count_ON_DSY()
{
DSY_Buffer[2]=Count/100;

DSY_Buffer[1]=Count%100/10;
DSY_Buffer[0]=Count%10;
if(DSY_Buffer[2]==0)  
{
DSY_Buffer[2]=0x0a;
                          if(DSY_Buffer[1]==0)
                         DSY_Buffer[1]=0x0a;
}
P0=DSY_CODE[DSY_Buffer[0]];
P1=DSY_CODE[DSY_Buffer[1]];
P2=DSY_CODE[DSY_Buffer[2]];
}

void main()
{
P0=0x00;
P1=0x00;
P2=0x00;
IE=0x81;
IT0=1;         
while(1)
{
if(Clear_Key==0) Count=0;
Show_Count_ON_DSY();
      }
}

void EX_INT0() interrupt 0
{
Count++;
}
怎么改啊 (┬_┬)

相关帖子

沙发
airwill| | 2013-11-19 08:47 | 只看该作者
Count++;
是可以的, 用 INT0 检测按键, 一定要考虑消抖的问题!

使用特权

评论回复
板凳
萌萌的小九九|  楼主 | 2013-11-19 13:44 | 只看该作者
airwill 发表于 2013-11-19 08:47
Count++;
是可以的, 用 INT0 检测按键, 一定要考虑消抖的问题!

那两只数码管该怎么弄啊

使用特权

评论回复
地板
airwill| | 2013-11-19 15:48 | 只看该作者
那两只数码管, 你的代码是能够实现数码显示的, P0, P1, P2 分别接数码管就可以了

使用特权

评论回复
5
萌萌的小九九|  楼主 | 2013-11-19 16:07 | 只看该作者
airwill 发表于 2013-11-19 15:48
那两只数码管, 你的代码是能够实现数码显示的, P0, P1, P2 分别接数码管就可以了 ...

哦哦哦~ 我懂了 谢谢

使用特权

评论回复
6
651927693| | 2013-11-23 08:46 | 只看该作者
这个程序问题有点大吧。。。
两只数码管怎么显示三位数?
用24bits IO控制数码管略显浪费吧?
主循环里是要干嘛?
清零难道不是在数字到达999以后才做吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝