我们做了一个大致的全部的简介,说明了制作的过程和源代码,然后还有仿真用的硬件电路,这篇文章,将会对代码的使用作一个大致的介绍。

首先说一下思路。秒表,就是既可以计时,也可以用作跑表,记录短暂的时间数据。那么就需要一个精确的时间控制元件来实现,我们使用的是定时器,这里为了简便,我使用了5ms来作为时间的最小分度值,也就是钟表跳动一格就是5ms。大家可以使用更小的或更大的时间分度,影响的只是最终的时间精度。由于需要显示出当前的数据,所以还需要一个中断程序去刷新数码管,刷新的频率,自己决定,我使用的2ms,八个数码管,10ms以内刷新都是可以看到所有数据的,因为进入中断是消耗时间的,所以为了减小误差,就需要刷新的定时器和计时的定时器需要分开,使用两个定时器,而51单片机中,刚好有两个定时器T0、T1。

然后是计时和跑表在使用时是不一样的,时钟是一直在走,不需要停止,而跑表需要频繁的启动和停止,如果使用一个定时器,那么怎么两个功能共同实现呢?其实可以这样来用,就是在计时的分度上采用一个,都是5ms。当5ms计时一次时,这个计时一次,采用不同的变量来传递,这样就可以实现分开控制,我们只需要保证变量不出现错误即可。

这样跑表就可以通过控制变量的数据来控制时间的长短。

因为按键有限,所以需要实现不同的功能,就需要我们将有限的按键赋予更加丰富的含义,就需要对控制的功能进行分块处理,于是就有了:时钟功能,ms显示功能,跑表功能,回放功能,清零功能。这些不同的功能就类似于不同的页面,这样当切换到不同的页面,按键按就可以在这个页面中重新赋值,起到新的作用了。就通过软件增加了按键的数量。

时钟功能是显示的时分秒,因为只是一个简单的跑表,所以我没有花费太多时间去处理时钟的手动控制,也就是手动校时,权且就当是个计时器吧。ms显示功能是为了我在对照中断的TH0和TL0的数据设置的,通过与外部标准时间对比,可以查看我的时间数据与标准时间的误差有多大,这样可以设置一个合理的计数值,去适当弥补这个设计误差。

跑表功能,就是秒表计时功能,具备跑表的启停,分圈保存数据等,为了便于查看这些保存的数据,我在后边还设置了回放功能,可以查看之前保存的数据。因为保存的组数有限,仅仅是为了设计,所以并没有设置太多的数组,这些数组中的数据在上电过程中是不会丢失的,如果需要保存新的数据,除了自动覆盖,还可以使用清零功能,将存储的所有数据全部清空。

设计的思路就是这些,根据这些思路可以把程序分为四大部分。

1,程序准备工作,定义变量、数组等等。

2,模式的判断和按键的动作处理

3,数据处理和整合。

4,中断程序。

围绕这四个步骤,开始进行程序的设计。

程序一点不负责,没有设计更加高深的知识,因为我饿也不是很懂。介绍了这些,也该结束了,下篇会把仿真及仿真现象进行说明和演示。

我现在也在学习一些东西,自己的作品也在不停的随着自己的学习在变化,今天学习了一个方法,关于变量的命名的,我之前也在摸索变量命名的规则,也没有头绪,找不到一个合适的规律。

今天学习的这个方法叫匈牙利命名法,一种编程规范。下篇咱们先来了解一下,我也再次加深下印象,为自己以后的编程打下一个坚实的基础,尽量让自己的程序有一定的规律和规则。方便自己,方便他人



转载请注明地址:http://www.abmjc.com/zcmbhl/1829.html
  • 上一篇文章:
  • 下一篇文章: 没有了
  •