【我的DIY设计】+DS1302、5110液晶电子万年历设计

[复制链接]
6135|28
 楼主| 568581185 发表于 2013-1-28 19:47 | 显示全部楼层 |阅读模式
经过一上午的努力终于将DS1302的万年历设计做出来了,使用的是Nokia5110液晶
第一行显示当前日期
第二行显示时间
第三行显示星期
后面几行是加的一些标记了
1.jpg
2.jpg
把程序工程传上来:
stm32f3_ds1302.zip (2.31 MB, 下载次数: 136)

这是主函数:
  1. /**
  2.   ******************************************************************************
  3.   * @file    main.c
  4.   * @author  568581185
  5.   * @version V1.1.0
  6.   * @date    2013-01-28
  7.   * @brief   Main program body
  8.   * @pins:
  9.   *         Nokia5110:RST=PC0,CE=PC1,DC=PC2,DIN=PC3,CLK=PC4;
  10.   *         DS1302:   RST=PC5,CLK=PC6,IO=PB0;                       
  11.   ******************************************************************************
  12.   */


  13. /* Includes ------------------------------------------------------------------*/
  14. #include "main.h"



  15. /* Private typedef -----------------------------------------------------------*/
  16. /* Private define ------------------------------------------------------------*/
  17. /* Private macro -------------------------------------------------------------*/
  18. #define ABS(x)         (x < 0) ? (-x) : x



  19. /* Private variables ---------------------------------------------------------*/
  20.   RCC_ClocksTypeDef RCC_Clocks;
  21. __IO uint32_t TimingDelay = 0;
  22. __IO uint32_t UserButtonPressed = 0;



  23. __IO uint8_t DataReady = 0;
  24. __IO uint8_t PrevXferComplete = 1;
  25. __IO uint32_t USBConnectTimeOut = 100;

  26. /* Private function prototypes -----------------------------------------------*/
  27. /* Private functions ---------------------------------------------------------*/

  28. void GPIO_LCD_Init(void)
  29. {
  30.         /* Configure all the GPIOA in Input Floating mode */
  31.         GPIO_InitTypeDef GPIO_InitStructure;
  32.         RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);
  33.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6;
  34.         GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_OUT;
  35.     GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  36.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  37.     GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_NOPULL;
  38.         GPIO_Init(GPIOC, &GPIO_InitStructure);
  39. }
  40. /**
  41.   * @brief  Main program.
  42.   * @param  None
  43.   * @retval None
  44.   */
  45. int main(void)
  46. {  
  47.   
  48.   SystemInit();
  49.   /* SysTick end of count event each 10ms */
  50.   RCC_GetClocksFreq(&RCC_Clocks);
  51.   SysTick_Config(RCC_Clocks.HCLK_Frequency / 100);
  52.   GPIO_LCD_Init();
  53.   LCD_Init();
  54.   LCD_write_english_string(0,0,"20  -  -  ");
  55.   LCD_write_english_string(0,1,"  :  :  ");       
  56.   LCD_write_english_string(0,3,"STM32F3 DS1302");
  57.   LCD_write_english_string(0,4,"21IC ID:");
  58.   LCD_write_english_string(0,5,"     568581185");
  59.   ds1302_init();
  60.   ds1302_write_time();
  61.   while (1)
  62.   {      
  63.    ds1302_read_time();
  64.    
  65.    LCD_Write_2Num(2,0,time_buf[1]);
  66.    LCD_Write_2Num(5,0,time_buf[2]);
  67.    LCD_Write_2Num(8,0,time_buf[3]);
  68.    
  69.    LCD_Write_2Num(0,1,time_buf[4]);
  70.    LCD_Write_2Num(3,1,time_buf[5]);
  71.    LCD_Write_2Num(6,1,time_buf[6]);
  72.    
  73.    Show_Week();
  74.   }
  75. }







  76. /**
  77.   * @brief  Inserts a delay time.
  78.   * @param  nTime: specifies the delay time length, in 10 ms.
  79.   * @retval None
  80.   */
  81. void Delay(__IO uint32_t nTime)
  82. {
  83.   TimingDelay = nTime;

  84.   while(TimingDelay != 0);
  85. }

  86. /**
  87.   * @brief  Decrements the TimingDelay variable.
  88.   * @param  None
  89.   * @retval None
  90.   */
  91. void TimingDelay_Decrement(void)
  92. {
  93.   if (TimingDelay != 0x00)
  94.   {
  95.     TimingDelay--;
  96.   }
  97. }

  98. // 显示星期几
  99. void Show_Week(void)
  100. {
  101.         switch(time_buf[7])
  102.         {
  103.                 case 1:
  104.                                 LCD_write_english_string(0,2,"Monday");
  105.                                 break;
  106.                 case 2:
  107.                                 LCD_write_english_string(0,2,"Tuesday");
  108.                                 break;
  109.                 case 3:
  110.                                 LCD_write_english_string(0,2,"Wednesday");
  111.                                 break;
  112.                 case 4:
  113.                                 LCD_write_english_string(0,2,"Thursday");
  114.                         break;
  115.                 case 5:
  116.                                 LCD_write_english_string(0,2,"Friday");
  117.                                 break;
  118.                 case 6:
  119.                                 LCD_write_english_string(0,2,"Saturday");
  120.                                 break;
  121.                 case 7:
  122.                                 LCD_write_english_string(0,2,"Sunday");
  123.                                 break;
  124.                 default:
  125.                                 break;
  126.         }
  127. }
用手机流量发的,实在是找不到地方上网,为了发这个帖子用了将近10M的流量。
希望各位兄弟看后帮忙顶一下啊!
谢谢
 楼主| 568581185 发表于 2013-1-29 11:52 | 显示全部楼层
顶下,别沉了。。
myfish 发表于 2013-1-29 12:04 | 显示全部楼层
帮顶~~~~
1537141654 发表于 2013-1-31 18:36 | 显示全部楼层
louyj 发表于 2013-2-17 09:22 | 显示全部楼层
帮顶一个。
jomosiron 发表于 2013-2-17 10:58 | 显示全部楼层
jomosiron 发表于 2013-2-17 10:59 | 显示全部楼层
 楼主| 568581185 发表于 2013-2-17 12:58 | 显示全部楼层
jomosiron 发表于 2013-2-17 10:59
顶起

:lol:lol谢了兄弟!!
zzyaizll 发表于 2013-2-21 14:07 | 显示全部楼层
zhdm365 发表于 2013-3-30 20:05 | 显示全部楼层
能给出代码,相当敬佩
21世纪黄毛 发表于 2013-3-30 20:26 | 显示全部楼层
支持支持
dfsa 发表于 2013-3-30 23:09 | 显示全部楼层
很有参考价值的源代码
txcy 发表于 2013-3-30 23:21 | 显示全部楼层
这个实现起来应该不太难
gxgclg 发表于 2013-3-30 23:35 | 显示全部楼层
再改进一下就可以出产品了:lol
fenghuolun8002 发表于 2013-3-31 11:14 | 显示全部楼层
feichangbucuo .
无冕之王 发表于 2013-3-31 15:29 | 显示全部楼层
功能还是简单了一点
秋天落叶 发表于 2013-3-31 15:38 | 显示全部楼层
DIY产品还是很有成就感的:lol
sinadz 发表于 2013-3-31 15:52 | 显示全部楼层
最近也想DIY个产品:lol
xsgy123 发表于 2013-3-31 18:42 | 显示全部楼层
鼓励DIY,支持原创
无冕之王 发表于 2013-3-31 18:52 | 显示全部楼层
已经很不错了,支持LZ继续DIY
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:个人淘宝小店:http://shop70915068.taobao.com 邮件:785606460@qq.com

20

主题

955

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部