|
- // GND 電源地
- // VCC 接5V或3.3v電源
- // D0 P33(時鐘)
- // D1 P34(數據)
- // RES 接P35
- // DC 接P32
- // CS 接P36
- #include <io430.h>
- #include "oled.h"
- char e=34,s=27,i=16;
- int a=0;
- int j;
- int ii;
- void main( void )
- {
- WDTCTL = WDTPW + WDTHOLD;
-
- P2REN |= BIT1;
- P2OUT |= BIT1;
- P2IES |= BIT1;
- P2IFG &= ~BIT1; //打開中斷
- P2IE |= BIT1;
-
- OLED_Init(); //初始化OLED
- OLED_Clear();
-
- TA0CCTL0 = CCIE;
- TA0CCR0 = 2500;
-
- OLED_ShowCHinese(0,0,0);
- OLED_ShowCHinese(18,0,1);
- OLED_ShowCHinese(36,0,2);
- OLED_ShowCHinese(54,0,3);
- OLED_ShowCHinese(72,0,4);
- OLED_ShowCHinese(90,0,5);
- OLED_ShowCHinese(108,0,6);
- OLED_ShowChar(30,4,16);
- OLED_ShowChar(40,4,e);
- OLED_ShowChar(50,4,38);//時間:
- OLED_ShowChar(60,4,s);
- OLED_ShowChar(70,4,i);
- // TA0CTL|=TASSEL_1+MC_2+TACLR;//時鐘源
- //TA0CTL=TASSEL_1+TACLR+MC_1;
- TA0CTL=TASSEL_1+TACLR+MC_3;
- //TACLR 為定時器清除位
- //MC_3處于增減計數模式下
- //TASSEL_1時鐘源選擇為輔助時鐘
- __enable_interrupt();
-
- while(1)
- {
- if(a%2==1)
- {
- TA0CCR0 = 2500; //增計數模式,ccr0計數到0時P1IF置位。
- //TA0CTL=TASSEL_1+TACLR+MC_3;
- TA0CCTL0 = CCIE; //允許中斷
- }
- if(a%2==0)
- {
- // TA0CTL=MC_0;
- TA0CCTL0 = ~CCIE; //禁止中斷
- }
- }
- }
- #pragma vector=TIMER0_A0_VECTOR
- __interrupt void TIMER0_A0_ISR(void)
- {
- ii++;
- //if(ii==12)
- if(ii==7)
- {
- OLED_ShowChar(30,4,16);
- OLED_ShowChar(40,4,e);
- OLED_ShowChar(50,4,38);
- OLED_ShowChar(60,4,s);
- OLED_ShowChar(70,4,i);
- i++;
-
- if(i==26)
- {
- i=16;
- s++;
- }
- if(s==33)
- {
- s=27;
- e++;
- }
- if(e==37)
- {
- e=34;
- }
- ii=0;
- }
- }
- #pragma vector=PORT2_VECTOR
- __interrupt void Port_2(void) //按鍵按下
- {
- int x;
- for(x=0;x<25000;x++);//延時消抖
- if((P2IN&0xff)!=0xff)
- {
- a++;
- }
- P2IFG &= ~BIT1;//標志位清零
- }
- /*
- #pragma vector=PORT1_VECTOR
- __interrupt void Port_1(void)
- {
- int j;
- for(j=0;j<25000;j++);//延時消抖
- if((P1IN&0xff)!=0xff)
- {
- e=34;
- s=27;
- i=16;
- }
- P1IFG &= ~BIT1;//標志位清零
- }*/
復制代碼
|
-
-
oled計時器.rar
2020-11-1 00:17 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
718.68 KB, 下載次數: 42, 下載積分: 黑幣 -5
|