您现在所在的是:

单片机论坛

回帖:2个,阅读:1308 [上一页] [1] [下一页]
1051
fww666
文章数:34
年度积分:50
历史总积分:1051
注册时间:2008/4/30
发站内信
发表于:2008/8/11 13:37:00
#0楼

//2个2位数码管分别实现分、秒显示程序
#include      //包括一个52标准内核的头文件
#define uchar unsigned char //定义一下方便使用
#define uint  unsigned int
#define ulong unsigned long
uchar code dx516[3] _at_ 0x003b;//这是为了仿真设置的

//共11个字模:依次为
//0,1,2,3,4,5,6,7,8,9,
uchar code numcode[11]={0x84,0xee,0x45,0x46,0x2e,0x16,0x14,0xce,0x04,0x0e,0xff};

//定义分,秒
uchar min=0; //分
uchar miao=0; //秒
uchar fm=0;  //记数
uchar dis[4]; //4位显示缓存

void main(void) // 主程序
{
rcap2h =0xf6; //1/400秒中断一次
rcap2l =0x3c;
tr2=1;   //启动定时器
et2=1;    //打开定时器2中断
pt2=1;    //定时器2优先
ea=1;     //打开总中断

while(1)  //程序循环
{
       //显示数据  
  dis[3]=min/10;    //显示分
  dis[2]=min%10;    
  dis[1]=miao/10;   //显示秒
  dis[0]=miao%10;    
}
}

//定时器2中断,兼led扫描和时钟
timer2() interrupt 5    
{
uchar code p1line[4]={0xfe,0xfd,0xf7,0xfb}; //p0扫描线,轮流用低点品扫描4条线,扫描4个数码管
static uchar t;

tf2=0;
   t++;
   //时间计时
   if(t==4)
{
 t=0;
 fm++; //分秒加1
 if(fm==100)
 {
  fm=0;
  miao++;   //秒加1

  if(miao==60)
  {
   miao=0;
   min++;    //分加1
   if(min==60)
   {
    min=0;
   }
  }
 }
}

//扫描数码管
p0= 0xff; //这句是防止出现鬼影,
p2=numcode[dis[t]];
  p0= p1line[t];
 
}

----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=58503&Name=fww666
1051
fww666
文章数:34
年度积分:50
历史总积分:1051
注册时间:2008/4/30
发站内信
发表于:2008/8/11 13:41:00
#1楼
这个程序已经调试通过的,不过发贴时上面有几个点小的错误
1051
fww666
文章数:34
年度积分:50
历史总积分:1051
注册时间:2008/4/30
发站内信
发表于:2008/8/11 13:43:00
#2楼
这个程序已经调试通过的,不过发贴时上面有几个点小的错误

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

31.2002