找回密码
 立即注册

QQ登录

只需一步,快速开始

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

STM32翻页时钟有源程序显示是实心字体如何改成空心字体?

[复制链接]
回帖奖励 50 黑币 回复本帖可获得 50 黑币奖励! 每人限 1 次
跳转到指定楼层
楼主
STM32翻页时钟有源程序显示是实心字体,改成空心字体    那位师博对STM32单片机有经验的帮看看   实心字体,改成空心字体翻页钟    修改后上传谢谢


单片机源程序如下:
  1. /*******************************************/
  2. /*    LCM128*64指针式万年历                */
  3. /*    硬件:LCM128*64  M16 DS1302           */
  4. /*    软件:WinAVR  2.0.6.1                 */
  5. /*    时钟:内部4M                          */
  6. /*    制作:hyj                             */
  7. /*******************************************/


  8. #include <avr/io.h>
  9. #include <util/delay.h>
  10. #include <avr/pgmspace.h>
  11. #include <avr/interrupt.h>
  12. //#include <font2.h>
  13. #include <VFD.h>

  14. //变量定义
  15. unsigned char sec,min,hour,day,month,year,week,c_moon,year_moon,month_moon,day_moon;  //秒.分.时.日.天.年.星期

  16. unsigned char mode;

  17. extern unsigned char disp_set,show,two_show,three_show;

  18. unsigned char temp_sec=70,temp_min=70,temp_hour=10,x,y,disp_old=0;

  19. //unsigned char disp_ram[672];   //移动显示缓存

  20. volatile unsigned int yid=0;
  21. extern unsigned char yid_speed;
  22. //   移动显示步数   移动速度

  23. volatile unsigned int count = 1000;

  24. extern unsigned char inittime[];

  25. extern int t;

  26. unsigned char temp1,temp2;

  27. void disp_update()
  28. {
  29.     ;
  30. }


  31. /****************************************************************************
  32. 函 数 名: Port_init(void)
  33. 功    能:端口初始化
  34. 说    明:方向及上拉电阻设置
  35. 入口参数:无
  36. 返 回 值:无
  37. *****************************************************************************/
  38. void Port_init(void)
  39. {
  40.     PORTA = 0xFF;
  41.     DDRA  = 0x20;
  42.     PORTB = 0x9A;
  43.     DDRB  = 0xFA;
  44.     PORTC = 0x00;
  45.     DDRC  = 0xFE;
  46.     PORTD = 0x00;
  47.     DDRD  = 0x70;
  48.     PORTB |=  (1 << PB3);
  49. }
  50. /**********************************************************************
  51. 函 数 名time1_init()
  52. 功    能: 定时器1初始化
  53. 说    明:无
  54. 入口参数:无
  55. 返 回 值:无
  56. ***********************************************************************/
  57. void time1_init(void)
  58. {
  59.     TCCR1B = 0x00;//停止定时器
  60.     TIMSK |= 0x04;//中断允许
  61.     TCNT1H = 0xFC;
  62.     TCNT1L = 0x2F;//初始值
  63.     OCR1AH = 0xFB;
  64.     OCR1AL = 0xFF;//匹配A值
  65.     OCR1BH = 0xFB;
  66.     OCR1BL = 0xFF;//匹配B值
  67.     ICR1H  = 0xFF;
  68.     ICR1L  = 0xFF;//输入捕捉匹配值
  69.     TCCR1A = 0x00;
  70.     TCCR1B = 0x05;//启动定时器
  71. }

  72. /**********************************************************************
  73. 函 数 名SIGNAL(SIG_OVERFLOW1)
  74. 功    能: 定时器1中断处理
  75. 说    明:增加移动显示内容,移动步数
  76. 入口参数:无
  77. 返 回 值:无
  78. ***********************************************************************/
  79. SIGNAL(SIG_OVERFLOW1)
  80. {
  81.     sei();
  82. //    if (count) {count --;}
  83. //    else {VFD_OFF;}
  84.     if(yid<304)
  85.     {
  86.         yid++;
  87.     }
  88.     else
  89.     {
  90.         yid=0;
  91. //        t=gettemp();

  92.     }
  93.     TCNT1L = 64335+yid_speed*150 ;
  94.     TCNT1H = ((64335+yid_speed*150)>>8) ;
  95. //    gettemp();
  96.     if (disp_set == 0) {
  97.         VFD_disp();
  98.     }

  99. }

  100. /**********************************************************************
  101. 函 数 名main()
  102. 功    能: 初始化及循环显示内容
  103. 说    明:主函数
  104. 入口参数:无
  105. 返 回 值:无
  106. ***********************************************************************/
  107. int main(void)
  108. {
  109.     unsigned char temp;

  110.     Port_init();
  111.     VFD_Init();
  112.     time1_init();
  113.     DS3231Init();
  114.     sei();
  115.     if (e2prom_read(0)>1)
  116.     {
  117.         for (temp = 0; temp < 0xff; temp++)
  118.         {
  119.             e2prom_write(temp,0);
  120.         }
  121.     }
  122.     disp_ram_init();
  123.     gengxinshijian();
  124.     huamaohao();
  125.     gettemp();
  126.     VFD_update();
  127.     VFD_analog_rest_data();

  128.     while(1)
  129.     {
  130. //                gettemp();
  131.         data_transition();
  132. //                        gengxinshijian();

  133.         key();
  134.         switch(disp_set)
  135.         {
  136.         case 0:
  137. //           VFD_updata();  //移动显示会改变的内容更新
  138. //            analog_time();      //指针式时钟显示
  139. //            VFD_disp();    //移动信息显示
  140.             disp_old = 0;
  141.             gengxinshijian();
  142.             break;

  143.         case 3:
  144.             set_menu();        //显示菜单
  145.             break;

  146.         case 10:
  147.             disp_old = 0;
  148.             two_menu();       //二级菜单
  149.             break;

  150.         case 20:
  151.             disp_old = 0;
  152.             three_menu();     //三级菜单
  153.             break;
  154.         }
  155.     }

  156. }
复制代码

所有资料51hei提供下载:
vfd_翻页时钟源代码.rar (38.18 KB, 下载次数: 19)
V6原理图.pdf (37.51 KB, 下载次数: 14)


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

使用道具 举报

沙发
ID:123289 发表于 2019-7-29 09:16 | 只看该作者
找到字库,将字库中对应的点阵图点修改成你所需要的。
回复

使用道具 举报

板凳
ID:17109 发表于 2019-7-30 00:49 来自手机 | 只看该作者
yzwzfyz 发表于 2019-7-29 09:16
找到字库,将字库中对应的点阵图点修改成你所需要的。

师博修改一下可以吗
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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