51单片机的使用十分简单,用它可以来做很多设计,而且51单片机结实耐造,我觉得用51来完成我的这个设计就可以满足相关的需求了。毕竟是仿真设计,这个是初代,经过一部分修改和提升,就可以在硬件上实现了(实物已经做出来了,效果还行)。

接下来我就简单介绍以下我的时钟。

文章目录

  • 序言
  • 一、51单片机的相关性能和操作
  • 二、设计部分
    • 1.设计思路
    • 2.代码
  • 总结

前言

其实51单片机挺好用的,操作简单,结实可靠,51可以满足本科阶段的相当部分的设计要求,而且还不需要什么高深的编码能力,只要简单学过c语言就可以掌握。这个时钟日历的设计十分的简单,不需要太多的知识,接下来我就简单介绍一下。


一、51单片机的性能和分析

stc89c52是STC公司设计和生产的一款8位的控制器,功能;8k字节的Flash,512字节的RAM,32位I/O口线,看门狗定时器,内置4KBEEPROW,3个16位定时器,另外还有4个外部中断。还有一款单片机是stc89c51,有两个定时器,3个外部中断,其他与52没有多大的差异。不过51系列的单片机在编程时代码容量不大,没有具体的参数,不过我去年打算做一个游戏机,不过代码太长,最终编译失败,然后我就用32做了一个,在以后的文章中会给大家分享的。

尽管我很喜欢51系列的单片机,不过它确实有些落后了,想想还是有点英雄落幕的感觉,现在在大学的一些比赛中,51还是可以承担一部分主控要求的,不过越来越少了,因为近些年来电子设计类比赛的题目越来越难了,或者说变得灵活了。从最开始的设计制作电压表、稳压电路、升降压装置、遥控类装置,到近些年的颜色识别、形状识别、球板平衡、立杆不倒,控制和自动化类的题目越来越灵活,每一届电赛在控制题上都有创新,要用到新的东西,大部分都用的不太熟悉,不过电源题在框架上没有太多的延申,基本都是工程上学过的东西,不过对于精度的要求越来越高,一定要对电路原理和设计有所了解,也要掌握PID控制的方法,这个在精密控制的应用上十分广泛。抱歉扯远了,回归正题,51确实落后了,不过,我们可以通过学习51来锻炼我们的编码能力,现阶段的编程c语言就足够了,在以后学习32的过程中,编码能力显得十分重要。

二、设计部分

1.设计思路

上图就是电子时钟日历的仿真设计,这个是刚开机的状态,可以通过右下脚的按钮来校准时间和日期。接下来我们就来介绍并操作一下。

我们可以看到上图屏幕中的第二行,从左到右分别表示年、月、日、时、分、秒。

接下来我们按右下脚的第一个按钮(选择),显示屏的第一行就会出现一个‘*”号,这个星号在那个数字上面,就表示这个数字可以调整了。

现在星号在月份的上面,就表示月份可以调整,这时我们可以通过按第二个按钮和第三个按钮来调整月份的大小,“加”键表示按下去后,月份数字加一,“减”键相反,比如我们把调整为12月,我们可以通过长按“加“键,或长按减键。效果如下图所示。

接下来,我们可以可以继续调整日期的数字,这里我设置了每个月,大月,小月的天数,也就是说,你的日期输调整的最大值,即不会大于现实中日期的天数。比如说,2022年的二月,有28 天,所以当日期数字加到28 时,再加的话就会变成1.

最下面的那两个键,基本没有什么作用,我就不一一介绍了。这个日历的时间还算精准,一个小时会差一秒,有时快一秒,有时慢一秒,所以一天下来的话,会差10-25秒,这个是我测出来的,因为51的定时器是16位的,所以调整的范围有限,对了,这个调时和数字可以长按加减键,效果其实都是一样的,所以我们仅用三个键就可以完成对时钟日历的校准。本人技术有限,写的不太完整请谅解。

实物展示;这个要电池才行,我电池去做别的项目了。

2.代码

部分代码:

下面的代码是显示相关数字的函数

void lcdprint(unsigned int nia,unsigned int yue,unsigned int day,unsigned int h,unsigned int min,unsigned int sec)
{int n2=nia/10;int n1=nia%10;int y2=yue/10;int y1=yue%10;int d2=day/10;int d1=day%10;int h2=h/10;int h1=h%10;int m2=min/10;int m1=min%10;int s2=sec/10;int s1=sec%10;lcdstation(0,1);年份数字wc51ddr(n2+0x30);lcdstation(1,1);wc51ddr(n1+0x30);lcdstation(3,1);wc51ddr(y2+0x30);月份数字lcdstation(4,1);wc51ddr(y1+0x30);lcdstation(6,1);wc51ddr(d2+0x30);日期数字lcdstation(7,1);wc51ddr(d1+0x30);lcdstation(9,1);wc51ddr(h2+0x30);小时数lcdstation(10,1);wc51ddr(h1+0x30);lcdstation(12,1);wc51ddr(m2+0x30);分lcdstation(13,1);wc51ddr(m1+0x30);lcdstation(14,1);wc51ddr(s2+0x30);秒lcdstation(15,1);wc51ddr(s1+0x30);}

void timer1_int (void) interrupt 3
{
     TH1=(65536-9960)/256;
     TL1=(65536-9960)%256;
     ms++;
     if(ms==80){
        ms=0;
        sec++;
        if(sec==60){
        sec=0;
        min++;
        if(min==60){
        min=0;
        h++;
          if(h==24){
          h=0;
          day++;
          if(yue==1||yue==3||yue==5||yue==7||yue==8||yue==10||yue==12){
             if(day>31){
             day=1,yue++;
             if(yue>12){
             yue=1;
             nia++;
              if(nia==100){nia=0;}
             }            
             }
             
          }

这个是中断中应该设置的函数(部分)。


总结

这个日历时钟是不是有一定的作用,我觉得不算难,可以尝试动手做一下,可以给我留言。

要完整资料的可以加我QQ,2649191761

基于51单片机的可调式电子仿真日历(时钟)相关推荐

  1. 基于单片机超声波视力保护系统设计-基于51单片机8音键电子琴仿真设计-基于8086八路模拟信号采集均值显示系统设计-基于8086八路数据电压温度采集系统-基于8086波形发生器仿真设计【毕设课设分享】

    539基于单片机超声波视力保护系统设计-设计资料 硬件构成:单片机+最小系统+LCD1602液晶显示模块+超声波模块+DS18B20温度采集模块+光线检测模块+ADC0832模块+蜂鸣器模块+LED指 ...

  2. 基于51单片机的废气检测I2Cproteus仿真

    目录 文章目录 前言 二.设计步骤 1.proteus设计 2.keil5代码编程设计 总结 前言 前段时间高中同学让我帮忙给她做一个数电课设,反正也没事做就随便做了做,现在总结一下,话不多说直接上效 ...

  3. 【019】基于51单片机的交通灯Proteus仿真设计

    一.资料内容 (1).基于51单片机的交通灯proteus仿真设计一份: (2).基于51单片机的交通灯proteus仿真设计keli源代码一份: (3).基于51单片机的交通灯proteus仿真设计 ...

  4. 【034】基于51单片机的HX711电子秤Proteus仿真设计

    一.压缩包资料内容 (1).基于51单片机的HX711电子秤proteus仿真设计一份: (2).基于51单片机的HX711电子秤proteus仿真设计keli源代码一份: (3).基于51单片机的H ...

  5. 基于51单片机的烟雾火灾报警器proteus仿真设计

    基于51单片机的烟雾火灾报警器proteus仿真设计 1 开发环境 仿真图:proteus8.9以上 程序代码:KEIL4/KEIL5 原理图:AD 设计编号:A0004 代码讲解+仿真讲解+仿真演示 ...

  6. 【008】【毕业设计】基于51单片机的烟雾报警系统proteus仿真与实物设计

    ​一.压缩包资料内容(私信获取) (1).基于51单片机的烟雾报警系统proteus仿真设计一份: (2).基于51单片机的烟雾报警系统proteus仿真设计keli源代码一份: (3).基于51单片 ...

  7. 【013】【毕业设计】基于51单片机的节能路灯proteus仿真设计

    ​一.资料内容(私信) (1).基于51单片机的节能路灯proteus仿真设计一份: (2).基于51单片机的节能路灯proteus仿真设计keli源代码一份: (3).基于51单片机的节能路灯pro ...

  8. 基于51单片机多路温度检测proteus仿真 ds18b20

    本设计是基于51单片机多路温度检测proteus仿真_ds18b20(仿真+程序+原理图) 仿真图proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:C0042 ...

  9. 【039】基于51单片机的简易门铃Proteus仿真设计

    一.压缩包资料内容 (1).基于51单片机的简易门铃proteus仿真设计一份: (2).基于51单片机的简易门铃proteus仿真设计keli源代码一份: (3).基于51单片机的简易门铃prote ...

最新文章

  1. Global.asax中Application_Error无法执行
  2. 用JS解决图片太大,把网站撑变形的问题
  3. python 怎么在一行获取多个数字
  4. 论文浅尝 | Iterative Cross-Lingual Entity Alignment Based on TransC
  5. https open api_Web上的分享(Share)API
  6. CCNA training notes
  7. 了解招聘中的这些潜台词,找工作少走弯路
  8. mybatis中存储过程的调用
  9. China’s movie heroes 《红海行动》展现中国英雄本色
  10. 2018 C语言大作业--21_Ekko制作教程
  11. LAV Filter 源代码分析 2: LAV Splitter
  12. arm裸板驱动总结(makefile+lds链接脚本+裸板调试)
  13. Atitit spring原理 反射 ioc 与注解api 目录 1. 反射的使用 1 1.1. 使用jdk原生反射api 1 1.2. 使用apache 工具包 commons-beanutil
  14. 《哲学与人生》的读书札记
  15. 南邮80c51汇编语言编程实验,实验三 查表 多分支(80C51单片机汇编语言编程)
  16. 夏令营导师自荐信计算机专业,北大夏令营的自荐信
  17. 代码的坏味道之十三 :Speculative Generality(夸夸其谈未来性)
  18. 计算机均价的公式,【转】二手笔记本电脑的价格计算方法和举例
  19. 计算机科学引论试题,内工大计算机科学引论在线测试题.pdf
  20. AutoJs学习-实现悬浮窗动画和滑动

热门文章

  1. 个人作业4——alpha阶段个人总结1
  2. 香农说,要有熵。信息时代由此开启……
  3. 【11月比赛合集】40+场可报名的数据挖掘奖金赛,任君挑选!
  4. 一文搞懂Nginx限流(简单实现)
  5. 手机长曝光是什么意思_手把手教你如何实现手机长曝光!
  6. python爬虫豆瓣电影短评_豆瓣Python爬虫:500条电影短评
  7. 苹果高通和解后,华为5G芯片市场地位稳了?
  8. 群晖的moments套件 发生未知错误
  9. machinations游戏经济系统验证工具
  10. 高数_一元函数的定积分的应用