⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 基于MSP430F149的ds1302驱动程序。
💻 C
字号:
#include <msp430x14x.h>
#include "ds1302.h"

#define dpydat P4OUT
#define dpy0 BIT2;
#define dpy1 BIT3;
#define dpy2 BIT4;
#define dpy3 BIT5;
#define dpy4 BIT6;
#define dpy5 BIT7;

unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
int min10,min1,hour10,hour1,sec10,sec1,secflash,dpybit=0x00;

void gettime()
{
  unsigned char hour,min,sec;
  hour=rtc_gethour();
  min=rtc_getmin();
  sec=rtc_getsec();
  hour1=hour%10;
  hour10=hour/10;
  min1=min%10;
  min10=min/10;
  sec1=sec%10;
  sec10=sec/10;
  if (sec%2)
    secflash=1;
  else
    secflash=0;
}

void rtcinit ()
{
  rtc_wp(0);
  rtc_stop(0);
  rtc_charger(1,1);
}

void sysinit ()
{
  P4OUT = 0xff;
  P4DIR = 0xff;
  P6OUT = 0xfc;
  P6DIR = 0xfc;
  IE1 |= WDTIE;                      //开WDT中断
}

void main ()
{
  WDTCTL = WDT_ADLY_1_9;             //WDT工作于定时模式,定时时间为(2^6)/(2^15)s
  sysinit ();
  rtcinit ();
  _EINT();
  while (1)
  {
 gettime();
  }
  
}
#pragma vector=WDT_VECTOR
__interrupt void wdtisr ()
{
  switch (dpybit)
  {
  case 0: P6OUT |= 0xfc;
          dpydat = ~table[hour10];
          P6OUT &= ~dpy5;
          break;
  case 1: P6OUT |= 0xfc;
            dpydat = ~(table[hour1]|0x80);
          P6OUT &= ~dpy4;
          break;
  case 2: P6OUT |= 0xfc;
          dpydat = ~table[min10];
          P6OUT &= ~dpy3
          break;
  case 3: P6OUT |= 0xfc;
   //       if (secflash)
            dpydat = ~(table[min1] | 0x80);
   //       else
  //          dpydat = ~table[min1];
          P6OUT &= ~dpy2;
          break;
  case 4: P6OUT |= 0xfc;
          dpydat = ~table[sec10];
          P6OUT &= ~dpy1;
          break;
  case 5: P6OUT |= 0xfc;
          dpydat = ~table[sec1];
          P6OUT &= ~dpy0;
          break;
  }
  dpybit++;
    dpybit=dpybit%6;
}
  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -