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

2007-10-10 12:48 3517 13 15 分类: MCU/ 嵌入式
//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;
}
PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户741296 2007-10-26 14:48

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

用户659278 2007-10-22 10:20

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

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

 

相关推荐阅读
用户741296 2008-10-08 10:31
在搞51跑TCP/IP的东西……
    换了工作,也换了城市。    在这个公司,开始着手整51跑TCP/IP的东西,感觉好费劲!但必须整,这对自己也是个提高啊!     以后在ARM中也会用到TCP这一块,不如提前整整,先给后面最...
用户741296 2008-08-28 15:28
ASN.1学习笔记
ASN.1即抽象语法符号,用来定义应用程序数据和表示协议数据单元的抽象语言。优点是独立于机器、语言及应用程序的内部表示。适用于描述现代通信中复杂的、变化的、可扩展的数据结构。比如3G和VoIP均采用了...
用户741296 2008-07-16 16:26
辞职了!哈哈……
 辞职了!这是最后一次以这家公司员工的身份这里发帖。心里轻松许多……虽然辞职了,但心里是非常喜悦的!离开了这个让自己心里非常不爽的公司。但有一点不可否认,就是我在这里学到了很多。我不是忘恩负义,只是这...
用户741296 2008-04-11 15:00
这个项目终于接近尾声了!
    又是很久沒有發日誌了!    主要是由於這段時間忙著趕一個項目。終於算是接近尾聲了,因為現在正在測試,肯定後面還有一些工作要做。    這個項目其實也沒有什麽,通過雙串口實現上下行的通訊連接,...
用户741296 2008-02-29 15:54
好久没有写东西了!
    好久没有在这里写东西了,想写点什么。那就汇总一下近来的工作吧!    年前一段时间一直在整SD卡的相关工作,其实很早一段时间就开始整了,只是没有东西才没有及时动手,但一直在研究相关资料。所以,...
用户741296 2008-01-02 10:59
崭新的2008已经开始!
    崭新的2008已经开始!    在2008,世界瞩目中国。2008是属于中国的!北京奥运会,将会把中国带向世界,也会把世界带回中国。    让我们在2008,让中国在2008,展现自我,展现辉...
EE直播间
更多
我要评论
2
13
关闭 站长推荐上一条 /3 下一条