找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7117|回复: 2
打印 上一主题 下一主题
收起左侧

msp430电子时钟闹钟LCD显示程序

[复制链接]
跳转到指定楼层
楼主
电子时钟lcd显示


msp430单片机源程序:
  1. /*警告:由于G2 LaunchPad上的LED2使用了P1.6(I2C引脚),所以所有涉及到I2C的实验都必须把P1.6跳线拔除,包含本例程!
  2. * main.c
  3. */
  4. #include"MSP430G2553.h"
  5. #include"TCA6416A.h"
  6. #include"HT1621.h"
  7. #include"LCD_128.h"
  8. #include"key.h"
  9. #include"clock.h"
  10. #include "DAC8411.h"

  11. #define myMCLK                        16000000
  12. /*************************************************************
  13.    
  14.    I2C_IO10所连的KEY1按键 用于设置
  15.    I2C_IO10所连的KEY2按键 用于加
  16.    I2C_IO10所连的KEY3按键 用于减
  17.    由于G2 LaunchPad上的LED2使用了P1.6(I2C引脚),所以所有涉及到I2C的实验都必须把P1.6跳线拔除,
  18. **************************************************************/   
  19.    
  20. void LCD_Display_Pass();               
  21. void main()
  22. {
  23.         unsigned int i;
  24.         WDTCTL = WDTPW + WDTHOLD;        //关闭看门狗
  25.         P1DIR = 0;                      //设输入位
  26.         P2DIR = 0;
  27.         
  28.         BCSCTL1 = CALBC1_16MHZ;      //设置系统时钟DCO频率16MHz
  29.         DCOCTL = CALDCO_16MHZ;
  30.         TCA6416A_Init();             //I2C IO扩展器初始化
  31.               
  32.         // 初始化IO扩展口
  33.             PinOUT(0,1);           // 指定0号管脚输出为1
  34.             PinOUT(1,0);           // 指定1号管脚输出为0
  35.             PinOUT(2,1);           // 指定2号管脚输出为1
  36.             PinOUT(3,0);           // 指定3号管脚输出为0
  37.             PinOUT(4,1);           // 指定4号管脚输出为1
  38.             PinOUT(5,0);           // 指定5号管脚输出为0
  39.             PinOUT(6,1);           // 指定6号管脚输出为1
  40.             PinOUT(7,0);           // 指定7号管脚输出为0
  41.         DAC8411_Init();                 //初始化数模转换器
  42.             HT1621_init();                        // 初始化lcd_128
  43.         LCD_Display_Pass();             //液晶调试一下用。看是否显示正常PASS
  44.         TimerAInit();                   //初始化定时器
  45.         while(1)
  46.         {
  47.           PinIN();                      //输入检测函数,读按键值
  48.           I2C_IODect();                 //事件检测函数,检查按键是否按下并进入相应设置
  49.           TimeShow();                   //显示时间
  50.           if(On_the_Hour_Flag==1)       //整点报警
  51.           {
  52.             On_the_Hour_Flag=0;         //清零
  53.             for(i=0;i<1000;i++)
  54.             {
  55.             write2DAC8411(50000);        //数模转换
  56.             __delay_cycles(8000);       //延时循环
  57.             write2DAC8411(0);
  58.             __delay_cycles(8000);
  59.             }
  60.           }
  61.              if(Alarm_Flag==1)   //闹钟报警
  62.           {
  63.             Alarm_Flag=0;        //清零
  64.         for(i=0;i<10000;i++)     //1K频率响10S
  65.             {
  66.             write2DAC8411(50000);   //50000与0相差大,频率高
  67.             __delay_cycles(8000);
  68.             write2DAC8411(0);
  69.             __delay_cycles(8000);
  70.             }
  71.           }
  72.         }
  73. }

  74. /******************************************************************************************************
  75. * 名    称:LCD_Display_Pass()
  76. * 功    能:显示PASS字母的函数
  77. * 入口参数:无
  78. * 出口参数:无
  79. * 说    明:使用先显示数字,后删除特定段的方法实现字母显示
  80. * 范    例:无
  81. ******************************************************************************************************/
  82. void LCD_Display_Pass()
  83. {
  84.         LCD_DisplayNum(8855);
  85.         LCD_ClearSeg(_LCD_3C);
  86.         LCD_ClearSeg(_LCD_3D);
  87.         LCD_ClearSeg(_LCD_4D);
  88.         //----显示logo----
  89.         LCD_DisplaySeg(_LCD_TI_logo);
  90.         LCD_DisplaySeg(_LCD_QDU_logo);
  91.         HT1621_Reflash(LCD_Buffer);
  92. }



复制代码

所有资料51hei提供下载:
程序最终版--电容.zip (639.59 KB, 下载次数: 101)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:258761 发表于 2017-12-7 18:59 | 只看该作者
有电路图吗
回复

使用道具 举报

板凳
ID:289377 发表于 2018-3-8 20:22 | 只看该作者
请问能把key那个头文件和子函数发出来嘛
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表