/*****************************************************
程序功能:在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--);
}
一周热门 更多>