section5.c

来自「MSP430系列单片机资料-7册-46.3M-pdf.zip」· C语言 代码 · 共 79 行

C
79
字号
#include <MSP430X14X.h>
#include "I2C.h"
#include "Display.h"
char Time_Flag;
char pTime[7];
void main(void)
{
    int i;
    char chrTemp[7];
    char chrHi;
    char chrLow;
    char pBuf[7];
    
    WDTCTL = WDTPW + WDTHOLD;   // 关闭看门狗
    
    _DINT();			// 关闭中断
    //初始化
    Init_CLK();
    Init_TimerB();
    Init_DispPort();
    I2C_Initial();
    
    //初始化变量
    Time_Flag = 0;
    _EINT(); 	                // 打开中断
    ////////////////////////////////
    // 设置为24小时制
    Set24TimeMode();	   
    pTime[0] = 4; 
    pTime[1] = 1; 
    pTime[2] = 1; 
    pTime[3] = 1; 
    pTime[4] = 1; 
    pTime[5] = 1; 
    pTime[6] = 1; 
    // 设置时间
    I2C_Write(pTime);   
    // 循环处理
    for(;;)
    {
    	if(Time_Flag == 1)
    	{
    	    Time_Flag = 0;//清楚标志
    	    
    	    for(i = 0;i < 7;i++)
    	        chrTemp[i] = pTime[i];
    	    
    	    // 星期
    	    pBuf[0] = chrTemp[3];
    	    
    	    // 小时
    	    chrHi = (char)((chrTemp[4] / 16) & 0x0f);
    	    chrLow = (char)(chrTemp[4] & 0x0f);
    	    pBuf[1] = chrHi;
    	    pBuf[2] = chrLow;
    	    
    	    // 分
    	    chrHi = (char)((chrTemp[5] / 16) & 0x0f);
    	    chrLow = (char)(chrTemp[5] & 0x0f);
    	    pBuf[3] = chrHi;
    	    pBuf[4] = chrLow;
    	    
    	    // 秒
    	    chrHi = (char)((chrTemp[6] / 16) & 0x0f);
    	    chrLow = (char)(chrTemp[6] & 0x0f);
    	    pBuf[5] = chrHi;
    	    pBuf[6] = chrLow;
    	    // 显示
    	    Display(pBuf);
    	}
    }
    return;
}
interrupt [TIMERB0_VECTOR] void TimerB_ISR(void)
{
    I2C_Read(pTime);
    Time_Flag = 1;
}

⌨️ 快捷键说明

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