做了一块MSP430 F5529转接板看起来漂亮一点,没有就直接用杜邦线接线。
https://blog.csdn.net/x1131230123/article/details/108772807
Analog clock. Starting with the current time, draw a clock face and the hour, minute and seconds hand.
Use the RTC module in the MSP430, and move the hands to show the correct time.
1、
模拟时钟 OLED
功能:实时显示时钟;按键修改时钟。
2、
最终效果:
3、
硬件:OLED和MSP430 F5529自带的2个按键
OLED接线
// | P3.1|<- Data In (UCB0SOMI)
// | F5 P3.0|-> Data Out (UCB0SIMO) --D1(OLED)
// | P3.2|-> Serial Clock Out (UCB0CLK) --D0(OLED)
// | P2.0|->RES(OLED)
// | P2.2|->DC(OLED)
// | P8.1|->CS(OLED)
主函数中初始化时钟为25MHZ,初始化OLED,初始化2个按键。初始化模拟时钟的表盘显示,初始化MSP430 F5529内部的RTC模块,打开总中断。
int main(void)
{
WDTCTL = WDTPW + WDTHOLD; /* Stop WDT */
initClock(); //25MHZ
OLED_Init(); /* 初始化OLED */
/*按键1 */
P1DIR &= ~(BIT1);
P1OUT |= (BIT1);
P1REN |= (BIT1);
/*按键2 */
P2DIR &= ~(BIT1);
P2OUT |= (BIT1);
P2REN |= (BIT1);
init_Point_Clock();
Display_Pointer(Point_Time[1], 1);
SetupRTC(); /* set RTC */
_EINT();
while (1)
{
KEY_Scan();
}
}
每一秒发生中断,去更新模拟时钟的显示:去掉上次时间的指针显示----->显示这次的时间指针。每一秒发生中断,去更新时钟数字的显示。
Display_Pointer(Point_Time[1], 0); //去掉上次时间的指针显示
Point_Time[1].hour = RTCHOUR;
Point_Time[1].minute = RTCMIN;
Point_Time[1].second = RTCSEC;
Display_Pointer(Point_Time[1], 1); //显示这次的时间指针
主函数不断KEY_Scan()循环检测按键,处理按键。
按键1 修改想要更改的项目
按键2 增加数值
上一篇:MSP430 F5529 单片机 OLED 俄罗斯方块
下一篇:CCS-msp430
推荐阅读最新更新时间:2024-11-17 14:13