找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4994|回复: 4
打印 上一主题 下一主题
收起左侧

关于数码管秒表的问题

[复制链接]
跳转到指定楼层
楼主
ID:25279 发表于 2012-1-13 03:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
写了个秒表的程序,用到了三个数码管,分别用三个独立按键进行暂停(into),开始(t0),清零(s4)的控制,测试中发现在按下键时,总有一个数码管会单独亮,并且随机的停留在某个数字上。松开按键后才会暂停或是开始!并且在暂停时按清零,数码管并不能及时的显示0,而是在按下开始后才从零开始!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2012-1-13 03:36 | 只看该作者

程序发出来 我帮你看看

回复

使用道具 举报

板凳
ID:25279 发表于 2012-1-13 03:39 | 只看该作者
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uchar bai,shi,ge;
uint t,a;
sbit duan=P2^6;
sbit wei=P2^7;
sbit into=P3^2;
sbit t0=P3^4;
sbit s4=P3^6;
void keyscan();

void delay(uint t)
{
 uint x,y;
 for(x=t;x>0;x--)
  for(y=110;y>0;y--);
}

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

void timer0() interrupt 1
{
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 t++;
 if(t==2)
 {
  t=0;
  a++;
  bai=a/100;
  shi=a%100/10;
  ge=a%10;
  if(a==1000)
  {
   a=0;
  }
 }
}

void display(uchar bai,uchar shi,uchar ge)
{
//************************
 P0=table[bai];
 duan=1;
 duan=0;
 P0=0xff;
 P0=0xfe;
 wei=1;
 wei=0;
 delay(5);
//************************
 P0=table[shi];
 duan=1;
 duan=0;
 P0=0xff;
 P0=0xfd;
 wei=1;
 wei=0;
 delay(5);
//************************
 P0=table[ge];
 duan=1;
 duan=0;
 P0=0xff;
 P0=0xfb;
 wei=1;
 wei=0;
 delay(5);
}

void main()
{
 init();
 while(1)
 {
  keyscan();
  display(bai,shi,ge);
 }
}

void keyscan()
{
 if(into==0)
 {
  delay(10);
  if(into==0)
  {
   while(!into);
   TR0=0;
  }
 }
 if(t0==0)
 {
  delay(10);
  if(t0==0)
  {
   while(!t0);
   TR0=1;
  }
 }
 if(s4==0)
 {
  delay(10);
  if(s4==0)
  {
   t=0;
   a=0;
   while(!s4);
  }
 }
}
回复

使用道具 举报

地板
ID:33763 发表于 2012-1-13 09:25 | 只看该作者
因为你的按键是死等在那里的,当然会有问题了
回复

使用道具 举报

5#
ID:33621 发表于 2012-1-13 21:03 | 只看该作者
因为你的按键是死等在那里的,当然会有问题了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表