本设计应用STC90C516RD+芯片作为核心,采用C语言进行编程实现以下功能:时,分,秒,年,月,日的显示及调整。 该设计的电子时钟系统由时钟电路、LED显示电路和按键调整电路三部分组成。 我们共设计四个独立按键,包括一个模式键(key1)、一个增加建(key2)、一个减小键(key3)和开始键(因为模式键中含有暂停(原因有两点:下面介绍)的功能)。当按下模式键,选定要调整的数字的时候,“加”“减”可以帮我们调到我们所需的状态。 一、键盘选择: (1)矩阵式 行列式键盘的原理就是每一行线与每一列线的交叉地方不相通,而是接上一个按键,通过按键来接通。 特点:以省出不少的I/O口资源,编写相对复杂点,适用于键数比较多的情况。 (2)独立式 独立式键盘是指各个按键相互独立地连接到各自的单片机的I/O口,I.O口只需要做输入口就能读到所有按键。 特点:电路简单,程序容易写,适用于按键数较少的情况。 故,我们选择独立式键盘,且接P3口。 二、LCD1602 RS:寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。接P2^6。 RW:为读写信号线,高电平1时进行读操作,低电平0时进行写操作。因为我们不从液晶读取任何数据,只向其写入命令和显示数据,因此此端始终为写状态,即低电平接地,RW=0。 接P2^5。 E:使能控制端,高电平1时读取信息 接P2^7。 三、上面提到暂停的原因: - 暂停,时钟将不再走动,这样方便调节所需要的时间。
- 如果不暂停会发现进行减法的时候,减到零或一时,有可能会发生乱码,暂停之后就会发现进行减法时不会发生乱码。(实践中发现)
该程序中有完善的体制,包括润平年、最大天数的判定以及时分秒,年月日位置的确定及写入等等。详细请看程序中具体实现操作。 该作品中,通过按键来实现光标移动来确定调整位置是一大亮点。 |