找回密码
 立即注册

QQ登录

只需一步,快速开始

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

STM32串行方式下12864万年历制作

  [复制链接]
跳转到指定楼层
楼主
一个利用12864来显示时间,可以自己设定时间日期星期

YY_STM32---万年历--程序说明
这个程序只是我花了七多个小时写一个万年历,所以难以避免其中BUG很多。所以我也非常希望各位多提意见。让我得已进步。。。下面我把程序运行的实现以及一些处理简易的叙述一下。方便大家理解程序。
定时单元:使用TIM3定时器,向上技术模式。计数5000次即500MS.通过一个全局变量作为分频后得到一秒的定时中断。
显示单元:采用LCD12864点阵显示,这种屏幕刷新速度慢,拖影严重,唯一的好处就是操作简单,成本低廉。这个实例采用了串口的方式实现显示,接口定义为:PB7—RST///PSB—PA4(其实这个可以不接)//EN—PA2//RW—PA6,其他的电源线大家就自己找地方了。这个接口也可以通过程序中的KEY.C文件中修改,但是大家更改接口后记得打开时钟。
运行载体:YY_STM32,就是本次大家一起焊接的板。这个程序也是相当于一个测试开发板的吧。
调节时间方法:本身是想用三个外部中断来控制的,但是PA0的外部接法让我迷惑了下,,所以见采用隔时采集SET(K2)按键的输入电平来检测是否按键。时间调节的方式:首先按下K2(确认键),然后开始调节年份,左边的K1是上调功能,右边的K3是下调功能,年份调节的范围是1000~9000年,年份调节好了之后然后再按下确认键,进入月份调节,然后在调节日期,这个程序有自动识别闰年和平年的功能,调节月份之后,日期会根据月份确定天数。然后调节星期,这里我没有写成中文的显示,原因就是。。。。懒的写。其实有兴趣的在外面加一个开关语句就可以实现了。星期调节之后就是调节小时和分钟。在调节分钟时,秒钟会自动清零。方便调节。分钟调节完后再按下确认键(K2),就退出了调节模式。进入自动走时的功能。
倒计时:大家会注意到在第三排左边,有一个倒计,这是根据一天剩余的时间计算出来的剩余秒数。就是吓唬吓唬浪费时间的哥们,我是看着这个倒计时心痛时间了。。。当然,这个调节时间会在调节时间后自动计算。而不是单纯性的i—的单目操作。
LED灯:这个程序在运行时,LED1和LED2会交替闪烁,这样可以我们观察程序是否在运行。这个灯交替的频率是1HZ。但这是理论频率。我这公司的示波器之烂,测量频率没有一次准确过。。
建议:我在写这个的时候,12864的字符位置有点小麻烦,我这里也建议大家多多使用仿真器(我没打广告),这样在程序卡住的时候可以硬件仿真实时调整,非常方便。相比串口下载,,,Jlink可算非常有能耐了。。
然后,,,然后其实这个程序非常简单的了。我也花了半个小时写了相比而言比较明白的注释。因为这是第二次写STM32的程序,所以如果有谁看不懂的,我想应该是我没有写的浅显易懂了。。所以可以找我给你解释一下。我也想多多给我找问题然后,,,然后大家自己看程序说话吧。。同时由于看视频容易睡觉,,,关于第一课的要求有些不是太清楚,周末找时间看。这里先把万年历交出来,然后再看其他的作业。。。
-------这个论坛允许上传的图片只有20M,我只能选几张相比这下清楚的照片给大家看一看。。
@易文_工_四川  

单片机源程序如下:
  1. /********************************************************************
  2. * 文件名  : 通过YY_STM32在12864上显示万年历
  3. * 描述    :  年份范围1000~9999年,可以判断闰年。
  4. * 创建人  : @易文_工_四川        
  5.               zhouyibin0718@163.com
  6. * 版本号  : 2015-01-28
  7. ***********************************************************************/
  8. #include "delay.h"
  9. #include "key.h"
  10. #include "sys.h"
  11. #include "12864.h"
  12. #include "timer.h"


  13. u8 seconds=00;//秒钟
  14. u8 minute=45;//分钟
  15. u8 hours=16;//小时
  16. u8 day=28;//日
  17. u8 month=1;//月
  18. u32 years=2015;//年
  19. u8 week=3;//星期
  20. u8 num;//用于定时器分频处理
  21. u8 set;//确定键
  22. u8 up;//上调键
  23. u8 down;//下调键
  24. u32 count;//倒计时,倒计起来。。。吓死人。

  25. int main(void)
  26. {       
  27.          delay_init();                                              
  28.          NVIC_Configuration();                                             
  29.          KEY_Init();                                   
  30.          GPIO_ResetBits(GPIOA,GPIO_Pin_4);         //用于确定12864工作方式
  31.          delay_ms(10);
  32.          lcdinit();                     //LCD初始化
  33.          delay_ms(1);         
  34.    TIM3_Int_Init(4999,7199);        //10Khz的计数频率,计数到5000为500ms
  35.    L12864_string(1,0," YY_STM32 万年历");
  36.    L12864_string(2,0,"    年  月  日  ");
  37.    L12864_string(3,0,"星期  倒计      ");
  38.    L12864_string(4,0,"    时  分  秒  ");
  39.         while(1)
  40.         {  
  41.    timerinit();//单天内时间计算程序
  42.          dayinit();//年月日计算程序
  43.          delay_ms(20);
  44.          disp();//显示刷新时间
  45. ……………………

  46. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码


所有资料51hei提供下载:
YY_STM32.rar (2.85 MB, 下载次数: 184)
YY-STM32 V1.3原理图.pdf (848.46 KB, 下载次数: 98)


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

使用道具 举报

沙发
ID:1 发表于 2017-6-21 02:28 | 只看该作者
好资料,51黑有你更精彩!!!
回复

使用道具 举报

板凳
ID:189300 发表于 2017-7-10 09:27 | 只看该作者
可以的
回复

使用道具 举报

地板
ID:197515 发表于 2018-5-26 19:55 | 只看该作者
嗯,学习学习。
回复

使用道具 举报

5#
ID:336726 发表于 2018-7-1 00:11 | 只看该作者
为啥我下载下来不好使呢?
回复

使用道具 举报

6#
ID:336726 发表于 2018-7-2 15:39 | 只看该作者
为啥调时那么困难呢
回复

使用道具 举报

7#
ID:370907 发表于 2018-7-13 14:41 | 只看该作者
挺好的资料,实用
回复

使用道具 举报

8#
ID:424360 发表于 2018-11-11 08:50 | 只看该作者
强无敌,楼主辛苦
回复

使用道具 举报

9#
ID:425130 发表于 2018-11-12 17:20 | 只看该作者
很给力的资料
回复

使用道具 举报

10#
ID:331618 发表于 2019-6-27 15:19 | 只看该作者
是STM32F103ct86吗
回复

使用道具 举报

11#
ID:662632 发表于 2019-12-16 15:19 | 只看该作者
有没有接线图
回复

使用道具 举报

12#
ID:665478 发表于 2019-12-17 09:53 | 只看该作者
好资料,很详细,51黑有你更精彩!!!
回复

使用道具 举报

13#
ID:669769 发表于 2020-1-3 09:54 | 只看该作者
51黑论坛_YY_STM32.rar.td  无法打开,用迅雷下载也不行.
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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