×
单片机 > 单片机程序设计 > 详情

利用单片机的数码管模拟时钟的显示时间

发布时间:2020-05-26 发布时间:
|

#include

 

#define SEGPORT P0

sbit seg_select = P2^1;        

sbit bit_select = P2^0;          

 

unsigned char duanma[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};               

unsigned char weima[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; 

unsigned char TempData[8];

 

unsigned char shi = 20, fen = 54, miao = 55;

 

void display()

{

  static unsigned char i = 0;

  SEGPORT = 0x0;

  seg_select = 1;

  seg_select = 0;

  

  SEGPORT = 0xff;

  bit_select = 1;

  bit_select = 0;

  SEGPORT = TempData[i];

  seg_select = 1;

  seg_select = 0;

  

  SEGPORT = weima[i];

  bit_select = 1;

  bit_select = 0;

  

i++;

  if(8 == i)

{

i = 0;

    }  

}

 

void time0_init(void)

{

  EA = 1;                              //打开总中断

  TMOD |= 0x01;                        //设置定时器工作方式

  TH0 = (65536 - 20000) / 256;

  TL0 = (65536 - 20000) % 256;        //设置定时器初值

  ET0 = 1;                           //打开定时器中断

  TR0 = 1;

 

}

 

void timer0_isr() interrupt 1

{

  static unsigned char i = 0;

          TH0 = (65536 - 20000) / 256;

  TL0 = (65536 - 20000) % 256;    //设置定时器初值,

  i++;

  

if(50 == i)

{

i = 0;

miao++;

if(60 == miao)

{

 

miao = 0;

fen++;

  

if(60 == fen)

{

fen = 0;

shi++;

  

if(24 == shi)

{

shi = 0;

  

}

}

}

}

TempData[0] = duanma[shi / 10];

TempData[1] = duanma[shi % 10];

TempData[2] = 0x40;

TempData[3] = duanma[fen / 10];

TempData[4] = duanma[fen % 10];

TempData[5] = 0x40;

TempData[6] = duanma[miao / 10];

TempData[7] = duanma[miao % 10];

}

 

void time1_init(void)

{

          EA = 1;

  TMOD |= 0x10;

  TH1 = (65536 - 20000) / 256;

  TL1 = (65536 - 20000) % 256;

  ET1 = 1;

  TR1 = 1;

 

}

 

void time1_isr() interrupt 3

{

          TH1 = (65536 - 1000) / 256;

  TL1 = (65536 - 1000) % 256;     

  display();

}               

 

void main()

{

time0_init();

time1_init();

while(1)

{

   

         }

   

}


关键字:单片机  数码管  模拟时钟  显示时间

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址