|
分享一個(gè)大作業(yè)的簡(jiǎn)單程序-電子時(shí)鐘
0.png (56.6 KB, 下載次數(shù): 156)
下載附件
2017-6-6 03:42 上傳
單片機(jī)源程序如下:
- #include<msp430x14x.h>
- #include"LCD1602.h"
- #include"settimer.h"
- #include"pushkey.h"
-
- extern int second; //1秒計(jì)數(shù)單位
- extern int minute; //1分鐘計(jì)數(shù)單位
- extern int hour; //1小時(shí)計(jì)數(shù)單位
- extern uchar table[11]; //時(shí)間顯示列表
- int flag1 = 0; //第一個(gè)按鍵標(biāo)志
- 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 ); //設(shè)置字符指針,讓液晶從頭開(kāi)始顯示字符
- display_hour();
- display_minute();
- display_second();
- }
- }
- /*******************************定時(shí)器中斷*****************************************/
- #pragma vector=TIMERA0_VECTOR //定時(shí)器中斷函數(shù),1s進(jìn)入一次
- __interrupt void TIMER_A( void )
- {
- if( flag1 == 1 ) //開(kāi)始計(jì)時(shí)
- {
- second++;
- if( second >= 60 )
- {
- second = 0; //second計(jì)數(shù)到60秒后清零
- minute++; //minute加1
- if( minute >= 60 )
- {
- minute = 0; //minute清零
- hour++; //hour加1
- if( hour >= 24 )
- hour = 0; //hour計(jì)數(shù)到24后清零
- }
- }
- }
- LPM3_EXIT; //退出低功耗模式3
- }
- /******************************按鍵檢測(cè)中斷***************************************/
- #pragma vector = PORT1_VECTOR
- __interrupt void PORT1_ISR( void )
- {
- uint i;
- uchar pushkey;
- pushkey = P1IFG & ( BIT0 + BIT1 ); //1、2哪個(gè)鍵按下,則觸發(fā)中斷,P1IFG相應(yīng)位會(huì)置1
- P2DIR |= ( BIT0 + BIT1 +BIT6 );
- P2OUT |= ( BIT0 + BIT1 +BIT6 ); //讓LED先都熄滅
-
- for( i = 0; i < 1000; i++ ); //類(lèi)似于鍵盤(pán)消抖
- if( ( P1IN & pushkey ) == pushkey ) //按鍵曾經(jīng)按下去過(guò),觸發(fā)了中斷,但是按鍵又彈起來(lái)了,P1IN處檢測(cè)是輸入了高電平
- { //按鍵變?yōu)楦唠娖搅耍袛噙@個(gè)是為毛刺
- P1IFG=0;
- return;
- }
-
- if( pushkey & BIT0 ) //第一個(gè)按鍵按下去了
- {
- flag1 ^= 1; //可以開(kāi)始計(jì)時(shí)
- if( flag1 == 1 )
- {
- P2OUT &=~ BIT0; //讓第一個(gè)LED亮起
- delay_key( 3000 );
- P2OUT |= BIT0;
- }
-
- if( flag1 == 0 )
- {
- P2OUT &=~ BIT6; //讓第六個(gè)LED亮起
- delay_key( 3000 );
- P2OUT |= BIT6;
- }
- }
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
代碼下載:
430大作業(yè)電子時(shí)鐘.rar
(19.58 KB, 下載次數(shù): 75)
2017-6-5 12:19 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|