沒用Keil,用的IAR。
單片機源程序如下:
- #include <msp430f5529.h>
- #include "SPI.h"
- #include "MAX7456.h"
- #define uint unsigned int
- #define uchar unsigned char
- #define ulong unsigned long
- void initClk(){
- UCSCTL3 |= SELREF_2; // Set DCO FLL reference = REFO
- UCSCTL4 |= SELA_2; // Set ACLK = REFO
- __bis_SR_register(SCG0); // Disable the FLL control loop
- UCSCTL0 = 0x0000; // Set lowest possible DCOx, MODx
- UCSCTL1 = DCORSEL_5; // Select DCO range 24MHz operation
- UCSCTL2 = FLLD_1 + 243; // Set DCO Multiplier for 12MHz
- // (N + 1) * FLLRef = Fdco
- // (243 + 1) * 32768 = 8MHz
- // Set FLL Div = fDCOCLK/2
- __bic_SR_register(SCG0); // Enable the FLL control loop
- __delay_cycles(375000);
- // Loop until XT1,XT2 & DCO fault flag is cleared
- //等待起震
- do{
- UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
- // Clear XT2,XT1,DCO fault flags
- SFRIFG1 &= ~OFIFG; // Clear fault flags
- }while (SFRIFG1&OFIFG); // Test oscillator fault flag
-
- }
- void main(){
- P1DIR |= BIT0; // P1.0 set as output
-
- WDTCTL = WDTPW + WDTHOLD;
- MAX7456_Delay_mS(1000);
- initClk();
- initSPI();
- initMAX7456();
- // spiWriteReg(VM0,OSD_EN);
- // Max7456_Learn_Char(uchar number, uchar *data);
-
-
- MAX7456_Write_Char_XY(0x05,0x08,0x0C); //顯示'B'
- // MAX7456_Write_Char_XY(0x0A,0x08,0x0D); //顯示'C'
- MAX7456_Delay_mS(1000);
- spiWriteReg(VM0,0X48); //設置為PAL 自動模式 顯示OSD使能
- // Max7456_Display_AllChar();
-
- P1OUT = BIT0;
- MAX7456_Delay_mS(10000);
- P1OUT = 0x0000;
-
- __bis_SR_register(LPM0_bits); // Enter LPM0
- __no_operation(); // For debugger
-
-
- while(1){
-
- // spiWriteReg(VM0,0X48); //設置為PAL 自動模式 顯示OSD使能
-
- // MAX7456_Delay_mS(9000);//延時
- // spiWriteReg(DMM,0X04);//清理顯存
- }
- }
復制代碼
所有資料51hei提供下載:
msp430_spi_max7456.7z
(1.4 MB, 下載次數: 12)
2019-7-23 02:42 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|