PIC16F877A的T0定时器制作的电子钟程序

控制/MCU

1878人已加入

描述

  经过努力,利用PIC16F877A的T0定时器制作的电子钟实验成功!下面是部分源程序:

  /#include 《pic.h》 //调用头文件

  __CONFIG(0x3F32); //芯片配置字

  #define uchar unsigned char

  #define uint unsigned int

  const uchar table[]={

  0xC0,/*0*/ 0xF9,/*1*/

  0xA4,/*2*/ 0xB0,/*3*/

  0x99,/*4*/ 0x92,/*5*/

  0x82,/*6*/ 0xF8,/*7*/

  0x80,/*8*/ 0x90,/*9*/

  0x88,/*A*/ 0x83,/*b*/

  0xC6,/*C*/ 0xA1,/*d*/

  0x86,/*E*/ 0x8E,/*F*/};

  const uchar table1[]={

  0x40,/*0*/ 0x79,/*1*/

  0x24,/*2*/ 0x30,/*3*/

  0x19,/*4*/ 0x12,/*5*/

  0x02,/*6*/ 0x78,/*7*/

  0x00,/*8*/ 0x10,/*9*/};

  //0-9的显示代码

  uchar sec,min,couter;

  void delay(uint x);

  void ShowLed(uchar a,uchar b,uchar c);

  void SHOW();

  void main (void)

  {

  uchar temp1;

  TRISA=0;

  TRISD=0;

  ADCON1=0X06;

  OPTION=0x07;

  INTCON=0XA0;

  TMR0=0x70;

  while(1)

  {

  if(couter》49)

  {

  couter=0;

  sec++;

  if(sec》59)

  {

  sec=0;

  min++;

  }

  if(min》59)

  min=0;

  }

  SHOW();

  }

  }

  void interrupt TMR0INT()

  {

  T0IF=0;

  couter++;

  TMR0=0x70;

  }

  void delay(uint x)//延时

  {

  uint a,b;

  for(a=x;a》0;a--)

  for(b=110;b》0;b--);

  }

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

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分