1硬件设计
本设计是根据企业、学校的作息时间表设定铃声提醒,还可以根据需要更改。首先设计硬件电路部分,本设计要求具有以下特点:时间提醒很重要,不能出现差错,所以要求系统稳定;市场竞争激烈,新产品层出不穷,要求价格低,易操作。
1.1智能作息时间控制提醒系统电路图
本设计的核心芯片是8位单片机STM8S105,还有其他三个功能模块,分别是操作模块、时间提醒模块、实时显示模块。
1.2核心模块8位单片机STM8S105
本款单片机拥有高级的STM8内核,它是意法半导体公司单独研发的八位单片机的内核,其中在程序中可以直接寻址的寄存器有六个。它的SWIM模块和DM模块可以进行非侵入式调试以及在线实时调试还可以进行快速的存储编程。它自带三级软件优先级的嵌套中断和三十二个硬件优先级中断。它的单电压闪存最多32k字节,EEPROM最多1k字节,另外芯片还有写保护,有两个单独的定时器构成看门狗,看门狗一旦激活不能复位,除了进行复位。芯片还带有UART2,全功能UART,同步模式,SPI主模式,智能卡模式,IrDA模式,LIN2.1主/从模式,SPI—全双工和半双工,8M位/秒,I²C—最高至400k位/秒等接口。
2软件设计
硬件部分已经设计完成,基本功能模块都已具备,下面我们来进行软件部分设计,通过编程来实现具体的任务,根据程序的不同可以实现基本功能以及进一步的功能。我们首先设计出软件的主程序,然后再分模块填充完整。
2.1软件系统主程序
软件系统的主程序依靠8位单片机STM8S105来实现各个模块的功能,起到协调统筹的作用,使用按键来启动外部中断,DS1302每500MS就和核心单片机进行通讯,实现准确显示时间和日期的功能,精简了单片机的工作,使用功耗较低的OLED实现显示功能,像素为128*64。软件主程序流程图如图1所示。
2.2软件系统子程序
1)键盘扫描子程序。在按键扫描程序中重要的部分就是去抖,因为按键的物理结构导致在按键过程中会出现电压抖动现象,并且需要几毫秒的时间才能趋于稳定,所以需要经过去抖处理,才能使按键识别信息准确。我们可以通过过硬件或者软件进行去抖处理,通过安装触发器实现硬件去抖,通过外部中断进行边沿检测来实现软件去抖。
2)时间校正模块。该模块由四个独立按键组成,在屏幕上显示时间可以按下TIME键;修改时间可以连续3秒按下SET键;切换月、日、时、分可以单击SET键,调整完按TIME键确认;增加年份可以按下“上”键;减少年份可以按下“下”键。在进行时间校正时,在一分钟内没有进行操作,就会退出校正,且不保存已设置的数据。在按下保存按键后,单片机将当前设置的数据传输到DS1302中,从而更改时间。3)OLED显示模块。OLED显示模块采用0.96英寸的单色12864点阵显示屏幕。使其和8位单片机STM8S105内部硬件SPI相连,使用串行数据传输来控制。由于OLED屏幕无字库,要使用取模软件,这样很容易实现多种字符显示。
3系统调试
由于本系统是关于时间显示的设备,因此要具有稳定性,时间精度要高,在调试时我们通过硬件的稳定性和软件的精确性来共同保障系统性能。根据该系统的情况,我们首先对硬件进行调试,使用硬件制作完成后,使用仪器仪表对电路从输入到输出逐级进行检查,保证电路导通,功能完整。然后写入程序进行软件调试,先分模块调试,对键盘扫描模块、时间校正模块、显示模块分别进行调试,没有问题进行整机联调,直至系统功能完全实现。
作者:孔庆芳,天津现代职业技术学院