老古开发网首页
导航:老古开发网首页文章索引索引第2380页文章分类单片机第32页→[XD5101实验四----计时器(led显示)]
| -文章搜索 - 最新文章 - |

XD5101实验四----计时器(led显示)

发布时间:2006年7月14日 点击次数:823
来源:   作者:
 

程序功能:计时器。两位led显示秒种,另两位显示分钟,用小数点隔开。
最大量程1小时。按键一下开始计时,第二下停止计时,第三下清零。

程序源码:

#include<reg52.h>
#define uchar unsigned char
sbit s1 = P2^0;
sbit s2 = P2^1;
sbit s3 = P2^2;
sbit s4 = P2^3;
sbit en = P2^5;

sbit Key1= P3^2;//对应学习板S1按键

uchar second,minute,clock,number;
//数码管显示
uchar dis[10]={ 0x84,  // 0
          0xBD,  // 1
          0xE0,  // 2
          0xB0,  // 3
          0x99,  // 4
          0x92,  // 5
          0x82,  // 6
          0xBC,  // 7
          0x80,  // 8
          0x90  // 9
    };

void timer0_init()
{
 EA=1;
 ET0=1;
 TMOD=0x01;//工作方式1
 //定时50ms
 TL0=0x00;
 TH0=0x4C;
 TR0=0;
}

void timer0() interrupt 1
{
 TF0=0;
 TL0=0x00;
 TH0=0x4C;
 ++clock;
}

void Delay(int m)
{
 while(--m);
}

void display()
{
 s1=0;
 P0=dis[minute/10];
 Delay(100);
 s1=1;
 s2=0;
 P0=(dis[minute%10]&0x7F);//显示小数点,以区分分钟和秒钟
 Delay(100);
 s2=1;
 s3=0;
 P0=dis[second/10];
 Delay(100);
 s3=1;
 s4=0;
 P0=dis[second%10];
 Delay(100);
 s4=1;
}

void main()
{
 second=0;
 minute=0;
 clock=0;
 number=0;
 Key1=1;
 timer0_init();
 en=0;
 while(1)
 {
  if(!Key1)
  {
   ++number;
      if(1==number)
    TR0=1;
   if(2==number)
       TR0=0;
   while(!Key1);
  }
  if(20==clock)//到一秒
  {
   clock=0;
   ++second;  
  }
  if(60==second)//到一分
  {
   second=0;
   ++minute;
  }
  if((60==minute) (number>=3))//超出量程或者清零命令
  {
   second=0;
   minute=0;
   clock=0;
   number=0;
  }
  display();
 }
}

 

文件名:计时器(led显示).rar


欢迎进入老古论坛进行讨论
[单片机] 相关文章:
程序中关于变量的引用,和函数的调用
简介:
程序中关于变量的引用,和函数的调用 cseg segment assume cs:cseg,ds:cseg org 100 start: mov bx,word ptr aaa virus_start: call get_start mov ah,4ch int 21h get_start: mov ax,offset virus_start ret aaa db&nbs......

A51 2.2.3 程序状态字(PSW)
A51 3.1 汇编语句
A51 3.1.1 汇编器伪指令
A51 3.1.2 汇编器控制指令
 
下一个:[单片机]轨至轨(rail to rail) 运放
简介:
轨至轨(rail to rail) 运放 有一类特殊的放大器具有非常低的端边占用电压(headroom)要求, 称之谓输出摆幅与供电电压相同(轨至轨rail to rail)放大器。由于它 们独特的功能可工作在它们的输人and/or输出范围的极限值。在或接近地 and/or接近正端(在几个毫伏之内)。这样就显著地增大了系统的动态范 围。达到几乎整个电源电压范围。 传统的运算放大器输......

上一个:[接口电路]4N35, 4N36, 4N37

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:30分钟 执行时间:47毫秒