|
- /********************************************************************
- //DM430-A型開發板數碼管顯示程序,依次顯示0~7
- //數碼管控制采用74HC573鎖存器控制,采用動態顯示機制
- //數碼管為4位共陰型,對應的位低電平有效,可以控制位信號選擇哪一位顯示
- //調試環境:EW430 V5.30
- ********************************************************************/
- #include <msp430x14x.h>
- #include "Config.h" //開發板配置頭文件,主要配置IO端口信息
- //***********************************************************************
- // MSP430IO口初始化
- //***********************************************************************
- void Port_Init()
- {
- LED8SEL = 0x00; //設置IO口為普通I/O模式,此句可省
- LED8DIR = 0xFF; //設置IO口方向為輸出
- LED8PORT = 0xFF; //P2口初始設置為FF
-
- DATASEL = 0x00; //設置IO口為普通I/O模式,此句可省
- DATADIR = 0xFF; //設置IO口方向為輸出
- DATAPORT = 0xFF; //P4口初始設置為FF
-
- CTRSEL = 0x00; //設置IO口為普通I/O模式,此句可省
- CTRDIR |= BIT3 + BIT4; //設置IO口方向為輸出,控制口在P63,P64
- CTRPORT = 0xFF; //P6口初始設置為FF
- }
- //***********************************************************************
- // 74HC573控制數碼管動態掃描并顯示數據
- //***********************************************************************
- void Display()
- {
- uchar i,j;
- j=0x01; //此數據用來控制位選
- for(i=0;i<8;i++)
- {
- DCTR0; //控制數碼管段數據的74HC573的LE管腳置高
- WCTR1; //控制數碼管位的74HC573的LE管腳置高
- DATAPORT=~j; //設置要顯示的位,也就是哪一個數碼管亮
- WCTR0; //鎖存位數據,下面送上段數據以后,就顯示出來了
- DCTR1;
- DATAPORT=table[i]; //送要顯示的數據,就是段數據,如顯示0送的是0x3f
- DCTR0; //鎖存段數據,數碼管亮一個時間片刻
- j=j<<1; //移位,準備進行下一位的顯示
- delay_ms(1); //顯示一個時間片刻,會影響亮度和閃爍性
- }
- }
- //***********************************************************************
- // 主程序
- //***********************************************************************
- void main(void)
- {
- WDT_Init(); //看門狗初始化
- Clock_Init(); //時鐘初始化
- Port_Init(); //端口初始化,用于控制IO口輸入或輸出
- while(1)
- {
- Display(); //調用顯示函數,依次顯示1~7
- }
- }
復制代碼
|
-
-
數碼管.zip
2018-10-30 09:17 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
20.77 KB, 下載次數: 7, 下載積分: 黑幣 -5
|