这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » PIC16F877A的T0定时器制作的电子钟程序

共1条 1/1 1 跳转至

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

工程师
2020-05-28 23:41:26     打赏

 经过努力,利用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--);

  }




共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]