打印

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

[复制链接]
4491|28
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
经过一上午的努力终于将DS1302的万年历设计做出来了,使用的是Nokia5110液晶
第一行显示当前日期
第二行显示时间
第三行显示星期
后面几行是加的一些标记了


把程序工程传上来:
stm32f3_ds1302.zip (2.31 MB)

这是主函数:
/**
  ******************************************************************************
  * @file    main.c
  * @author  568581185
  * @version V1.1.0
  * @date    2013-01-28
  * @brief   Main program body
  * @pins:
  *         Nokia5110:RST=PC0,CE=PC1,DC=PC2,DIN=PC3,CLK=PC4;
  *         DS1302:   RST=PC5,CLK=PC6,IO=PB0;                       
  ******************************************************************************
  */


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



/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
#define ABS(x)         (x < 0) ? (-x) : x



/* Private variables ---------------------------------------------------------*/
  RCC_ClocksTypeDef RCC_Clocks;
__IO uint32_t TimingDelay = 0;
__IO uint32_t UserButtonPressed = 0;



__IO uint8_t DataReady = 0;
__IO uint8_t PrevXferComplete = 1;
__IO uint32_t USBConnectTimeOut = 100;

/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/

void GPIO_LCD_Init(void)
{
        /* Configure all the GPIOA in Input Floating mode */
        GPIO_InitTypeDef GPIO_InitStructure;
        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);
        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;
        GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_OUT;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_NOPULL;
        GPIO_Init(GPIOC, &GPIO_InitStructure);
}
/**
  * @brief  Main program.
  * @param  None
  * @retval None
  */
int main(void)
{  
  
  SystemInit();
  /* SysTick end of count event each 10ms */
  RCC_GetClocksFreq(&RCC_Clocks);
  SysTick_Config(RCC_Clocks.HCLK_Frequency / 100);
  GPIO_LCD_Init();
  LCD_Init();
  LCD_write_english_string(0,0,"20  -  -  ");
  LCD_write_english_string(0,1,"  :  :  ");       
  LCD_write_english_string(0,3,"STM32F3 DS1302");
  LCD_write_english_string(0,4,"21IC ID:");
  LCD_write_english_string(0,5,"     568581185");
  ds1302_init();
  ds1302_write_time();
  while (1)
  {      
   ds1302_read_time();
   
   LCD_Write_2Num(2,0,time_buf[1]);
   LCD_Write_2Num(5,0,time_buf[2]);
   LCD_Write_2Num(8,0,time_buf[3]);
   
   LCD_Write_2Num(0,1,time_buf[4]);
   LCD_Write_2Num(3,1,time_buf[5]);
   LCD_Write_2Num(6,1,time_buf[6]);
   
   Show_Week();
  }
}







/**
  * @brief  Inserts a delay time.
  * @param  nTime: specifies the delay time length, in 10 ms.
  * @retval None
  */
void Delay(__IO uint32_t nTime)
{
  TimingDelay = nTime;

  while(TimingDelay != 0);
}

/**
  * @brief  Decrements the TimingDelay variable.
  * @param  None
  * @retval None
  */
void TimingDelay_Decrement(void)
{
  if (TimingDelay != 0x00)
  {
    TimingDelay--;
  }
}

// 显示星期几
void Show_Week(void)
{
        switch(time_buf[7])
        {
                case 1:
                                LCD_write_english_string(0,2,"Monday");
                                break;
                case 2:
                                LCD_write_english_string(0,2,"Tuesday");
                                break;
                case 3:
                                LCD_write_english_string(0,2,"Wednesday");
                                break;
                case 4:
                                LCD_write_english_string(0,2,"Thursday");
                        break;
                case 5:
                                LCD_write_english_string(0,2,"Friday");
                                break;
                case 6:
                                LCD_write_english_string(0,2,"Saturday");
                                break;
                case 7:
                                LCD_write_english_string(0,2,"Sunday");
                                break;
                default:
                                break;
        }
}
用手机流量发的,实在是找不到地方上网,为了发这个帖子用了将近10M的流量。
希望各位兄弟看后帮忙顶一下啊!
谢谢
沙发
568581185|  楼主 | 2013-1-29 11:52 | 只看该作者
顶下,别沉了。。

使用特权

评论回复
板凳
myfish| | 2013-1-29 12:04 | 只看该作者
帮顶~~~~

使用特权

评论回复
地板
1537141654| | 2013-1-31 18:36 | 只看该作者
顶起

使用特权

评论回复
5
louyj| | 2013-2-17 09:22 | 只看该作者
帮顶一个。

使用特权

评论回复
6
jomosiron| | 2013-2-17 10:58 | 只看该作者

使用特权

评论回复
7
jomosiron| | 2013-2-17 10:59 | 只看该作者
顶起

使用特权

评论回复
8
568581185|  楼主 | 2013-2-17 12:58 | 只看该作者
jomosiron 发表于 2013-2-17 10:59
顶起

:lol:lol谢了兄弟!!

使用特权

评论回复
9
zzyaizll| | 2013-2-21 14:07 | 只看该作者
顶起

使用特权

评论回复
10
zhdm365| | 2013-3-30 20:05 | 只看该作者
能给出代码,相当敬佩

使用特权

评论回复
11
21世纪黄毛| | 2013-3-30 20:26 | 只看该作者
支持支持

使用特权

评论回复
12
dfsa| | 2013-3-30 23:09 | 只看该作者
很有参考价值的源代码

使用特权

评论回复
13
txcy| | 2013-3-30 23:21 | 只看该作者
这个实现起来应该不太难

使用特权

评论回复
14
gxgclg| | 2013-3-30 23:35 | 只看该作者
再改进一下就可以出产品了:lol

使用特权

评论回复
15
fenghuolun8002| | 2013-3-31 11:14 | 只看该作者
feichangbucuo .

使用特权

评论回复
16
无冕之王| | 2013-3-31 15:29 | 只看该作者
功能还是简单了一点

使用特权

评论回复
17
秋天落叶| | 2013-3-31 15:38 | 只看该作者
DIY产品还是很有成就感的:lol

使用特权

评论回复
18
sinadz| | 2013-3-31 15:52 | 只看该作者
最近也想DIY个产品:lol

使用特权

评论回复
19
xsgy123| | 2013-3-31 18:42 | 只看该作者
鼓励DIY,支持原创

使用特权

评论回复
20
无冕之王| | 2013-3-31 18:52 | 只看该作者
已经很不错了,支持LZ继续DIY

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

20

主题

955

帖子

4

粉丝