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

PIC16F877A的T0定时器制作的电子钟程序,第1张

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

  }

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2517934.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-05
下一篇 2022-08-05

发表评论

登录后才能评论

评论列表(0条)

保存