電子時鐘lcd顯示
0.png (50.57 KB, 下載次數: 114)
下載附件
2017-9-21 17:21 上傳
msp430單片機源程序:
- /*警告:由于G2 LaunchPad上的LED2使用了P1.6(I2C引腳),所以所有涉及到I2C的實驗都必須把P1.6跳線拔除,包含本例程!
- * main.c
- */
- #include"MSP430G2553.h"
- #include"TCA6416A.h"
- #include"HT1621.h"
- #include"LCD_128.h"
- #include"key.h"
- #include"clock.h"
- #include "DAC8411.h"
- #define myMCLK 16000000
- /*************************************************************
-
- I2C_IO10所連的KEY1按鍵 用于設置
- I2C_IO10所連的KEY2按鍵 用于加
- I2C_IO10所連的KEY3按鍵 用于減
- 由于G2 LaunchPad上的LED2使用了P1.6(I2C引腳),所以所有涉及到I2C的實驗都必須把P1.6跳線拔除,
- **************************************************************/
-
- void LCD_Display_Pass();
- void main()
- {
- unsigned int i;
- WDTCTL = WDTPW + WDTHOLD; //關閉看門狗
- P1DIR = 0; //設輸入位
- P2DIR = 0;
-
- BCSCTL1 = CALBC1_16MHZ; //設置系統時鐘DCO頻率16MHz
- DCOCTL = CALDCO_16MHZ;
- TCA6416A_Init(); //I2C IO擴展器初始化
-
- // 初始化IO擴展口
- PinOUT(0,1); // 指定0號管腳輸出為1
- PinOUT(1,0); // 指定1號管腳輸出為0
- PinOUT(2,1); // 指定2號管腳輸出為1
- PinOUT(3,0); // 指定3號管腳輸出為0
- PinOUT(4,1); // 指定4號管腳輸出為1
- PinOUT(5,0); // 指定5號管腳輸出為0
- PinOUT(6,1); // 指定6號管腳輸出為1
- PinOUT(7,0); // 指定7號管腳輸出為0
- DAC8411_Init(); //初始化數模轉換器
- HT1621_init(); // 初始化lcd_128
- LCD_Display_Pass(); //液晶調試一下用。看是否顯示正常PASS
- TimerAInit(); //初始化定時器
- while(1)
- {
- PinIN(); //輸入檢測函數,讀按鍵值
- I2C_IODect(); //事件檢測函數,檢查按鍵是否按下并進入相應設置
- TimeShow(); //顯示時間
- if(On_the_Hour_Flag==1) //整點報警
- {
- On_the_Hour_Flag=0; //清零
- for(i=0;i<1000;i++)
- {
- write2DAC8411(50000); //數模轉換
- __delay_cycles(8000); //延時循環
- write2DAC8411(0);
- __delay_cycles(8000);
- }
- }
- if(Alarm_Flag==1) //鬧鐘報警
- {
- Alarm_Flag=0; //清零
- for(i=0;i<10000;i++) //1K頻率響10S
- {
- write2DAC8411(50000); //50000與0相差大,頻率高
- __delay_cycles(8000);
- write2DAC8411(0);
- __delay_cycles(8000);
- }
- }
- }
- }
- /******************************************************************************************************
- * 名 稱:LCD_Display_Pass()
- * 功 能:顯示PASS字母的函數
- * 入口參數:無
- * 出口參數:無
- * 說 明:使用先顯示數字,后刪除特定段的方法實現字母顯示
- * 范 例:無
- ******************************************************************************************************/
- void LCD_Display_Pass()
- {
- LCD_DisplayNum(8855);
- LCD_ClearSeg(_LCD_3C);
- LCD_ClearSeg(_LCD_3D);
- LCD_ClearSeg(_LCD_4D);
- //----顯示logo----
- LCD_DisplaySeg(_LCD_TI_logo);
- LCD_DisplaySeg(_LCD_QDU_logo);
- HT1621_Reflash(LCD_Buffer);
- }
復制代碼
所有資料51hei提供下載:
程序最終版--電容.zip
(639.59 KB, 下載次數: 103)
2017-9-21 13:33 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|