• 大小: 21KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: 其他
  • 标签: 数码管  按键  

资源简介

这个是数码管驱动,2个IO口驱6位数码管,而且同时还能外接12个按键

资源截图

代码片段和文件信息

/*
 *单片机型号: AT89S52
 *开发环境:   Keil uVision3
 *晶震频率:   12M
 *功能:     TM1637做时钟显示,可以由按键控制数码屏显示0-9
*/
#include
#include
#include
#define uchar unsigned char
#define uint  unsigned int
uchar CODE[16] = {0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x770x7c0x390x5e0x790x71};
uchar show_LED[6]key;
uchar TIME_count;
uchar TIME_secondsseconds_2sub_1sub_2; //时间寄存器依次从秒个位至分十位

/**********************************
     定时中断函数入口
功能: 每50MS中断一次
**********************************/  
void time0(void) interrupt 1 using 2
{
  TH0=0x3c;
  TL0=0xb0;
  TIME_count++;
  if(TIME_count==20)
  {
    TIME_count = 0;
    TIME_seconds++; // 秒寄存器加1
   }
}    
/*********************************
     时钟函数
功能: 处理时钟显示
**********************************/
void TIME_show()
{
  show_LED[0] = CODE[TIME_seconds];// 数码屏上最后一个“8”字,依次下去
  show_LED[1] = CODE[seconds_2];   //数码屏倒数第二个“8”字,
  show_LED[2] = CODE[sub_1];
  show_LED[3] = CODE[sub_2];

  if(TIME_seconds == 10)   //对时间数据进行处理,以免溢出。
   {
     TIME_seconds = 0;
 seconds_2+=1;
}
  if(seconds_2 == 6)
   {
     seconds_2 = 0;
 sub_1 +=1;
}
  if(sub_1 == 10)
   {
     sub_1 = 0;
 sub_2 +=1;
}
  if(sub_2 == 6)
   {
 sub_2 = 0;
 sub_1 = 0;
 seconds_2 = 0;
}

}
/*********************************
    延时函数
功能: 1ms延时
**********************************/
void delay_ms(uchar cyc)
{
//cyc=1的时候延时1ms
uchar iijj;
for(jj=1;jj<=cyc;jj++)
{
for(ii=0;ii<200;ii++)
{
nop;
}
}

//----------主函数-----------------
void main()
{
 P1=0xff;//初始化单片机I/O口

 TH0=0x3c;
 TL0=0xb0;
 TMOD=0x01;  //定时器设置
 IE=0x82;
 EA=1;
 ET0=1;
 TR0=1;

 while(1)//循环
 {
 key=readkey();
 if (key !=255)  show_LED[5] = CODE[key];
 TIME_show();
 showled(show_LED);
 delay_ms(50);
 }
}     

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      12569  2010-03-23 17:32  ok!TM1637-c51数码管显示演示代码\tm1637

     文件       2008  2010-10-31 11:48  ok!TM1637-c51数码管显示演示代码\tm1637.c

     文件       3820  2010-03-23 17:18  ok!TM1637-c51数码管显示演示代码\TM1637.H

     文件       2254  2010-03-23 17:32  ok!TM1637-c51数码管显示演示代码\tm1637.hex

     文件         44  2010-03-23 17:32  ok!TM1637-c51数码管显示演示代码\tm1637.lnp

     文件       4966  2010-03-23 17:32  ok!TM1637-c51数码管显示演示代码\tm1637.LST

     文件      15469  2010-03-23 17:32  ok!TM1637-c51数码管显示演示代码\tm1637.M51

     文件      13966  2010-03-23 17:32  ok!TM1637-c51数码管显示演示代码\tm1637.OBJ

     文件       1450  2010-04-07 22:20  ok!TM1637-c51数码管显示演示代码\tm1637.Opt

     文件        268  2010-04-07 22:20  ok!TM1637-c51数码管显示演示代码\tm1637.plg

     文件       2009  2010-04-07 21:25  ok!TM1637-c51数码管显示演示代码\tm1637.Uv2

     文件       1450  2010-04-07 21:25  ok!TM1637-c51数码管显示演示代码\tm1637_Opt.Bak

     文件       1995  2010-03-23 16:30  ok!TM1637-c51数码管显示演示代码\tm1637_Uv2.Bak

     目录          0  2010-06-02 18:31  ok!TM1637-c51数码管显示演示代码

----------- ---------  ---------- -----  ----

                62268                    14


评论

共有 条评论