时钟显示,如何让其在某一时间将时间定住,进行计时显...

2019-07-15 16:53发布

/*****************************************************
程序功能:在1602液晶上显示用MCU的timerA模拟的数字
          式实时时钟。
-----------------------------------------------------
测试说明:观察液晶显示
*****************************************************/
#include <msp430x14x.h>
#include "cry1602.h"
#include "clock.h"
#include "cry1602.c"
#include "clock.c"

uchar tishi[]={"   speed    is "};   //提示信息
extern uchar second,minute,hour,hour0;
extern uchar pmin,phour,ps1;
void delay(void);
#define SetTime(H,M,S) {second=S;minute=M;hour=H;hour0=H;}
#define keyin    (P1IN & 0x0f)
/*************************主函数************************/
void main(void)
{   

    /*下面六行程序关闭所有的IO口*/
  //  P1DIR = 0XFF;P1OUT = 0XFF;
    P2DIR = 0XFF;P2OUT = 0XFF;
    P3DIR = 0XFF;P3OUT = 0XFF;
    P4DIR = 0XFF;P4OUT = 0XFF;
    P5DIR = 0XFF;P5OUT = 0XFF;
    P6DIR = 0XFF;P6OUT = 0XFF;

    WDTCTL = WDTPW + WDTHOLD;   //关闭看门狗
   // P6DIR |= BIT2;P6OUT |= BIT2;//关闭电平转换
   // P6DIR |= BIT6;P6OUT &= ~BIT6;//关闭电平转换
       
               CCR0 = 32768 - 1;           //设置定时器A的中断时间为1S
           TACTL = TASSEL_1 + MC_1;    //计数时钟ACLK, 增计数模式
           CCTL0 |= CCIE;              //使能CCR0比较中断

           _EINT();

            }

                      //打开全局中断

    //请在此处设置正确时间
    SetTime(0,00,00);           //顺序:时,分,秒,格式:BCD码

    LcdReset();
    DispNChar(0,0,15,tishi);     //显示提示文字
    Disp1Char(6,1,':');          //显示字符 :
    Disp1Char(9,1,':');

    while(1)
    {
        LPM3;                    //进入LPM3低功耗模式
        Display();   

    }   
}

/*******************************************
函数名称:TimerA_ISR
功    能:定时器A的中断服务函数
参    数:无
返回值  :无
********************************************/
#pragma vector=TIMERA0_VECTOR
__interrupt void TimerA_ISR(void)
{
    Clock();
    LPM3_EXIT;
}
void delay(void)
{
    uint tmp;

    for(tmp = 12000;tmp > 0;tmp--);
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。