EDN首页   博客首页

日志档案

发表于 2007-10-10 12:48:14

2

标签: EDNCHINA  实验板  程序  

EDNCHINA 51实验板数码管显示秒计数程序

//EDNCHINA 51实验板数码管显示秒计数程序
//计数范围为0~9999;每100报警一次
//编程:LPC
//日期:2007年10月10日
//希望程序能对初学者起到引导作用
#include<reg52.h>
#define uchar unsigned char //定义一下方便使用
#define uint  unsigned int
#define ulong unsigned long
sbit P0_4=P0^4;
sbit speaker="P1"^7;
sbit L1=P1^0;
sbit L2=P1^1;
sbit L3=P1^2;
sbit L4=P1^3;
static uint count="0";
static uint v="0";
static uint m="0";
uint t;
code uchar LED[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
code uchar L[4]={0xfe,0xfd,0xfb,0xf7};
//主程序
main(void)
{
 TH0=0xf8;      //T0定时时间为10ms
 TL0=0xcd;
 TH1=0xdc;      //T1定时时间为50ms
 TL1=0x00;
 TMOD=0x11;      //T0,T1设置为模式1
 IE=0x8a;      //开T0,T1中断
 TCON=0x50;      //启动T0,T1
 while(1)
 {
 }
}
//T0中断
void tmr0() interrupt 1 using 2
{uint LED1,LED2,LED3,LED4;
 m++;
 if(m>=4)m=0;
 TF0=0;       //清除中断标志位
 TH0=0xf8;      //重新赋值定时器0初值
 TL0=0xcd;
 LED1=v/1000;
 LED2=(v%1000)/100;
 LED3=((v%1000)%100)/10;
 LED4=((v%1000)%100)%10;
 switch(m)
 {
  case 0:
   P0=LED[LED1];
   L1=0;
   L2=L3=L4=1;
   break;
  case 1:
   P0=LED[LED2];
   L2=0;
   L1=L3=L4=1;
   break;
  case 2:
   P0=LED[LED3];
   L3=0;
   L1=L2=L4=1;
   break;
  case 3:
   P0=LED[LED4];
   L4=0;
   L1=L2=L3=1;
   break;
  default:
   P0=0xff;
   L1=L2=L3=L4=1;
   break;
 } 
 TR0=1;       //启动定时器0
}
//T1中断
void tmr1() interrupt 3 using 3
{ TF1=0;
 TH1=0xdc;
 TL1=0x00;
 count++;      //计数器+1
 if(count>=100)     //到1s
 {
  count=0;     //计数器清零
  v++;      //秒计数器+1
  if(v>9999)v=0;    //如果秒数大于9999,秒计数器清零
 }
 if(count<=1&&!(v%100))
 {
  speaker=0;
 }
 else speaker="1";
 TR1=1;
}

系统分类: 单片机   |   用户分类: 程序设计   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(1134)    回复(4)  

投一票您将和博主都有获奖机会!

最新评论

  • 彩云

    2007-10-10 13:28:43

    看不大懂,博主真厉害。

    努力学习中,争取有一天能看懂博主的文章!

    投一票

  • steven

    2007-10-22 10:20:29

    同一行业的兄弟。51,Pic通吃,强!呵呵

    博客里面的技术帖子感觉非常亲切,有时间多多交流。

     

  • 彩云

    2007-10-25 11:45:27

    转了一圈全是广告,这下可算看到精彩的贴子了,非投一票不可

  • l0p0c

    2007-10-26 14:48:11

    o(∩_∩)o...哈哈