51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > 单片机源码 > 详细内容
51时钟源程序一例(C语言)
发布时间:2009/6/4  阅读次数:1007  字体大小: 【】 【】【

作者:    来源:互联网

c51源程序如下:
//说明:利用定时/计数器0方式1,实现数码管显示(时,分,秒)
//作者:Zou Mulin
#include"reg51.h"     
#define COUNT 1000
unsigned char LED_seg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char LED_bit[6]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
unsigned LED_buf[8]={0};
unsigned int i=0,aa=00,bb=33,cc=16;

void delay(unsigned int n)
{
for(;n>0;n--);
}

void convert()
{
LED_buf[0]=aa%10;
LED_buf[1]=aa/10;
LED_buf[2]=bb%10;
LED_buf[3]=bb/10;
LED_buf[4]=cc%10;
LED_buf[5]=cc/10;
}
/**********T/C0中断服务程序**********/
void TIMER0_ISR (void) interrupt 1
{    
          TH0= (65536-COUNT)/256;
          TL0= (65536-COUNT)%256; //重新赋计数值
          i++;
          if(i==1000){aa+=1; i=0;}
          if(a==60){aa=0;bb+=1;}
          if(b==60){bb=0;cc+=1;}
          if(c==24){aa=0;bb=0;cc=0;}
}

/**********主函数*******************/
void main(void)
{
unsigned char j;
           TMOD=0x01;                    
           TH0= (65536-COUNT)/256;
           TL0= (65536-COUNT)%256;
           ET0=1;          
EA=1;                    
           TR0=1;                             
           while(1)
{
         convert();
          for(j=0;j<8;j++)
          {
          P0=LED_seg[LED_buf[j]];
               P1=LED_bit[j];
          delay(100);
          }
}                    

}
我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
    暂无已审核评论!

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号