标题:
分享一个msp430的简单程序-电子时钟
[打印本页]
作者:
hc低调
时间:
2017-6-5 12:20
标题:
分享一个msp430的简单程序-电子时钟
分享一个大作业的简单程序-电子时钟
0.png
(56.6 KB, 下载次数: 156)
下载附件
2017-6-6 03:42 上传
单片机源程序如下:
#include<msp430x14x.h>
#include"LCD1602.h"
#include"settimer.h"
#include"pushkey.h"
extern int second; //1秒计数单位
extern int minute; //1分钟计数单位
extern int hour; //1小时计数单位
extern uchar table[11]; //时间显示列表
int flag1 = 0; //第一个按键标志
void main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
set_timer();
init_timer();
init_pushkey();
LcdReset();
while(1)
{
LPM3; //低功耗模式3
LcdWriteCommand( 0x80 + 0x00 , 1 ); //设置字符指针,让液晶从头开始显示字符
display_hour();
display_minute();
display_second();
}
}
/*******************************定时器中断*****************************************/
#pragma vector=TIMERA0_VECTOR //定时器中断函数,1s进入一次
__interrupt void TIMER_A( void )
{
if( flag1 == 1 ) //开始计时
{
second++;
if( second >= 60 )
{
second = 0; //second计数到60秒后清零
minute++; //minute加1
if( minute >= 60 )
{
minute = 0; //minute清零
hour++; //hour加1
if( hour >= 24 )
hour = 0; //hour计数到24后清零
}
}
}
LPM3_EXIT; //退出低功耗模式3
}
/******************************按键检测中断***************************************/
#pragma vector = PORT1_VECTOR
__interrupt void PORT1_ISR( void )
{
uint i;
uchar pushkey;
pushkey = P1IFG & ( BIT0 + BIT1 ); //1、2哪个键按下,则触发中断,P1IFG相应位会置1
P2DIR |= ( BIT0 + BIT1 +BIT6 );
P2OUT |= ( BIT0 + BIT1 +BIT6 ); //让LED先都熄灭
for( i = 0; i < 1000; i++ ); //类似于键盘消抖
if( ( P1IN & pushkey ) == pushkey ) //按键曾经按下去过,触发了中断,但是按键又弹起来了,P1IN处检测是输入了高电平
{ //按键变为高电平了,判断这个是为毛刺
P1IFG=0;
return;
}
if( pushkey & BIT0 ) //第一个按键按下去了
{
flag1 ^= 1; //可以开始计时
if( flag1 == 1 )
{
P2OUT &=~ BIT0; //让第一个LED亮起
delay_key( 3000 );
P2OUT |= BIT0;
}
if( flag1 == 0 )
{
P2OUT &=~ BIT6; //让第六个LED亮起
delay_key( 3000 );
P2OUT |= BIT6;
}
}
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
代码下载:
430大作业电子时钟.rar
(19.58 KB, 下载次数: 75)
2017-6-5 12:19 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
TCILAY
时间:
2021-5-21 00:33
楼主,为啥我烧录后不能用呢,lcd屏显示都是方块
作者:
654823041
时间:
2021-6-16 09:34
楼主有电路图吗
作者:
2727833635
时间:
2022-11-5 17:38
求电路图
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1