标题: STM32+LCD12864汉字显示与定位 时钟,闹钟Proteus仿真程序 [打印本页]

作者: herui123456    时间: 2020-7-3 20:39
标题: STM32+LCD12864汉字显示与定位 时钟,闹钟Proteus仿真程序
师傅所教知识制作了一个LCD12864的屏幕显示,字模自己软件下载的,俺们新手,写的粗糙
期末项目为时钟的显示和设定,内含闹钟
PU原理图
按键:PA0:暂停时钟
在暂停时钟后再按一次PA0则开始选择改变分钟(反白),继续按下PA0开始设置时钟的改变(反白)
PA1与PA2连用检测按键:数字的增加
PB0:数据的减少
PB1与PB2连用检测按键:确认改变
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)

另外,我现在另添加的闹钟的设置,可在运行程序后设置闹钟,闹钟的设定没上传,原理类似
缺点: 1.  日期判定没有做完,只是进行了简单的判断,没有大月小月的判断,闰年这类的         2.  时钟的修改的增加判断23的时候没用反白和清屏
修改代码如下
                   //减少
                     if(Key_Scan(KEY2_GPIO_PORT,KEYB0_GPIO_PIN) == KEY_ON)
                        {
                                                        
                        if(a == 1)
                        {
                         a = a+ 22;                           
                        LCD12864_SeleScreen(LCD12864_Left);
                        LCD12864_Dsp_number1_1(38,3,a);
                        }else
                        {
                        a = a - 1;
                        LCD12864_SeleScreen(LCD12864_Left);
                                                LCD12864_Dsp_12x24_Num(38,3,0xff);
                        LCD12864_Dsp_number1_1(38,3,a);
                        }

                        }
                      //增加
                     if(Key_Scan(KEY1_GPIO_PORT,KEYA1_GPIO_PIN) == KEY_ON)
                        {
                                                        
                        if(a == 23)
                            {
                            ri = ri + 1;
                            a= a * 0+1;
                            LCD12864_SeleScreen(LCD12864_Right);                       
                            LCD12864_Dsp_number_2(35,0, ri);
                            LCD12864_SeleScreen(LCD12864_Left);
                            LCD12864_Dsp_12x24_Num(38,3,0xff);
                            LCD12864_Dsp_number1_1(38,3,a);

                            }else
                            {
                            a = a + 1;
                            LCD12864_SeleScreen(LCD12864_Left);
                            LCD12864_Dsp_12x24_Num(38,3,0xff);
                            LCD12864_Dsp_number1_1(38,3,a);
                            }   
                        }
[attach]242466[/attach]

单片机源程序如下:
  1. #include "stm32f10x.h"   // 相当于51单片机中的  #include <reg51.h>
  2. #include ".\LED\bsp_LED.h"
  3. #include ".\KEY\bsp_key.h"
  4. #include "delay.h"
  5. #include "sys.h"
  6. #include ".\beep\beep.h"


  7. int main(void)
  8. {

  9.     Init();
  10.         led_init();
  11.     key_init();
  12.     BEEP_Init();//喇叭初始化
  13.     play_successful();
  14.    
  15.     LCD12864_Dsp_zhonghe(2020,11,31,7,23,55
  16.     ,1,2);           //年份,月份,日期,星期,小时,分钟,
  17.     //闹钟
  18.     //    LCD12684_Dsp_perture();
  19. //    delay10ms(100);
  20. //    clearScreen(LCD12864_Full);
  21. //    LCD12864_Write_Command(0x3F);
  22. //    LCD12864_Dsp_time(2020);//年份
  23. //    LCD12864_Dsp_time2(11,25);//月份,日期
  24. //    LCD12864_Dsp_time1(5);  //星期  
  25. //    LCD12864_Dsp_shijian(24,58);//小时,分钟
  26.    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  27.    
  28. //    while(1)
  29. //    {
  30. ////       PlayMusic(); //播放生日快乐
  31. // //      play_music();
  32. //        play_music();
  33. //    }
  34. //   


  35. }
复制代码
另外我还录制了视频  文件太大 发不上来

所有资料51hei提供下载:
程序+仿真.7z (1.59 MB, 下载次数: 406)


作者: hhhlzj    时间: 2020-7-7 15:40
打不开proteus仿真文件是为什么啊
作者: gemxie    时间: 2020-7-7 19:20
谢谢分享了,下载下来学习。
作者: nzt0518    时间: 2020-7-11 21:31
hhhlzj 发表于 2020-7-7 15:40
打不开proteus仿真文件是为什么啊

试试高版本的   (8.9)
作者: 花一样的男子    时间: 2021-6-19 19:47
楼主,为什么你文件里发的和你这个贴子照片不一样呀,能分享一下这张照片的仿真吗
作者: herui123456    时间: 2021-8-17 15:20
花一样的男子 发表于 2021-6-19 19:47
楼主,为什么你文件里发的和你这个贴子照片不一样呀,能分享一下这张照片的仿真吗

去年的程序了,我源文件已经不知道在哪去了,我发的这个应该可以仿真起的,现在在弄云平台,抱歉了

作者: herui123456    时间: 2021-8-17 15:24
花一样的男子 发表于 2021-6-19 19:47
楼主,为什么你文件里发的和你这个贴子照片不一样呀,能分享一下这张照片的仿真吗

你把线连一下就好了,可以运行





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1