跑馬燈是一種電腦編程工具,利用涂鴉等效果顯示文字。電腦中的跑馬燈,跑馬燈在編程中,通常指有時需要用一矩形條顯示少量用戶特別關心的信息,這條信息串首尾相連,向一個方向循環滾動。證券業中常用“跑馬燈”來顯示不斷變化的股票行情;實際應用中也常通過“跑馬燈”來監視是否死機。一般是指各種發光二極管,如主板和主機箱上的指示燈。開機后用來指示各種工作狀態。
這個例子主要還是熟悉有關定時器A的寄存器配置以及IAR的配置方式。
[cpp] view plain copy/***********************************************
程序功能:實現流水燈以三種流動方式和四種流動速度
的不同組合而進行點亮“流動”
------------------------------------------------
撥碼開關設置:將LED位撥至ON,其余撥至OFF
測試說明:觀察流水燈流動順序和速度的變化
************************************************/
#include 《msp430x14x.h》
typedef unsigned int uint;
uint i = 0,j = 0,dir = 0;
uint flag = 0,speed = 0; //flag--燈光流動方式,speed--燈光流動速度
/****************主函數****************/
void main(void)
{
/*下面六行程序關閉所有的IO口*/
P1DIR = 0XFF;P1OUT = 0XFF;
P2DIR = 0XFF;P2OUT = 0XFF;
P3DIR = 0XFF;P3OUT = 0XFF;
P4DIR = 0XFF;P4OUT = 0XFF;
P5DIR = 0XFF;P5OUT = 0XFF;
P6DIR = 0XFF;P6OUT = 0XFF;
WDTCTL = WDTPW + WDTHOLD; //關閉看門狗
P6DIR |= BIT2;P6OUT |= BIT2; //關閉電平轉換
P5OUT &= ~BIT7;
CCTL0 = CCIE; //使能CCR0中斷
CCR0 = 50000;
TACTL = TASSEL_2 + ID_3 + MC_1; //定時器A的時鐘源選擇SMCLK,8分頻增計數模式
P2DIR = 0xff; //設置P2口方向為輸出
P2OUT = 0xff;
_EINT(); //使能全局中斷
LPM0; //CPU進入LPM0模式各時鐘全部工作
}
/*******************************************
函數名稱:Timer_A
功 能:定時器A的中斷服務函數,在這里通過標志
控制流水燈的流動方向和流動速度
參 數:無
返回值 :無
********************************************/
#pragma vector = TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
if(flag == 0)
{
P2OUT = ~(0x80》》(i++)); //燈的點亮順序D8 -》 D1
}
else if(flag == 1)
{
P2OUT = ~(0x01《《(i++)); //燈的點亮順序D1 -》 D8
}
else
{
if(dir) //燈的點亮順序 D8 -》 D1,D1 -》 D8,循環繞圈
{
P2OUT = ~(0x80》》(i++));
}
else
{
P2OUT = ~(0x01《《(i++));
}
}
if(i == 8)
{
i = 0;
dir = ~dir;
}
j++;
if(j == 10)
{
i = 0;
j = 0;
flag++;
if(flag == 4) flag = 0;
switch(speed)//根據speed的值來選擇相應的速度,速度的選擇主要通過改變分頻來實現
{
case 0:
TACTL &=~ (ID0 + ID1);//這個地方其實沒必要,意思是清零TACTL的78兩位
//ID1的值是0x0080 ID2的值是0x0040通過計算就可以得出
TACTL |= ID_3;//改為八分頻
break;
case 1:
TACTL &=~ (ID0 + ID1);
TACTL |= ID_2;
break;
case 2:
TACTL &=~ (ID0 + ID1);
TACTL |= ID_1;
break;
case 3:
TACTL &=~ (ID0 + ID1);
TACTL |= ID_0;
break;
default:
break;
}
if(flag != 3) speed++;
if(speed == 4) speed = 0;
}
}
-
寄存器
+關注
關注
31文章
5424瀏覽量
123508 -
定時器
+關注
關注
23文章
3289瀏覽量
117342 -
跑馬燈
+關注
關注
5文章
117瀏覽量
35231
發布評論請先 登錄
評論