电子时钟lcd显示
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)
|