智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1777|回复: 0
打印 上一主题 下一主题

请各位大神帮忙看一下程序,通过光电开关控制单片机,做成一个计时器。

[复制链接]

6

主题

27

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
406
威望
237
贡献
89
兑换币
131
注册时间
2012-12-3
在线时间
40 小时
跳转到指定楼层
1#
发表于 2012-12-6 19:40:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit a=P2^3;
sbit b=P2^2;
sbit c=P2^1;
sbit d=P2^0;
sbit fenmingqi=P1^0;
sbit zhongduan=P3^2;
sbit key0=P3^3;
uint Number;
uchar ge,shi,bai,qian,aa;  
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void init();
void delays(uint xms);
void display(uchar qian,uchar bai,uchar shi,uchar ge);
void switchcontrol();
void main()
{
init();
while(1)
{
  display(qian,bai,shi,ge);
  switchcontrol();
}
}
void init()
{
Number=0;
ge=0xc0;
shi=0xc0;
bai=0xc0;
qian=0xc0;
key0=1;
fenmingqi=1;
TMOD=0x01;
TH0=(65536-9174)/256;
TL0=(65536-9174)%256;
EA=1;
ET0=1;
TR0=0;
EX0=1;
}
void OUT1() interrupt 0
{  if((Number>300)||(Number==0))
      if(zhongduan==0)
       {
    TR0=~TR0;
    fenmingqi=0;
    }
}
void TIMER1() interrupt 1
{
   TH0=(65536-9174)/256;    9
  TL0=(65536-9174)%256;
  aa=1;
  if(aa==1)
     {
      aa=0;
   Number++;
     }
}

void display(uchar qian,uchar bai,uchar shi,uchar ge)
{
   qian=Number/1000;
   bai=Number/100%10;
   shi=Number%100/10;
   ge=Number%10;
  
   a=0;
   if(ge==10)
    ge=0;
   P0=table[ge];
   delays(1);
   a=1;
   P0=0xff;
   b=0;
   if(shi==10)
    shi=0;
   P0=table[shi];
   delays(1);
   b=1;
         P0=0xff;
  
      c=0;
   if(bai==10)
    bai=0;
   P0=table[bai];
   
   delays(1);
   c=1;
   P0=0xff;
   d=0;
   if(qian==10)
    qian=0;
   P0=table[qian];
   delays(1);
   d=1;
   fenmingqi=1;
}
void switchcontrol()
{
if(key0==0)
{
  delays(20);
  if(key0==0)
  {
   TR0=0;
   Number=0;
  }
  while(!key0)
  delays(20);
  while(!key0);
}
}
void delays(uint xms)
{ uint x,y;
for(x=xms;x>0;x--)
  for(y=110;y>0;y--) ;
}

为什么显示的时候,输入外部中断会出现数码管只增加1
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-22 04:19 , Processed in 0.302319 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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