基于单片机的定时打铃设计 下载本文

西安文理学院本科毕业设计(论文)

图4.6 键盘电路

第16页

西安文理学院本科毕业设计(论文)

第五章 系统软件设计

本章详细介绍了各个模块的软件设计流程以及部分源代码,包括了时钟程序、人机界面以及主程序。

5.1 开发环境

STC89C52单片机软件开发平台为Keil uvision4 C52,仿真环境为Protues,下载软件为STC_ISP。

Keil C52是美国Keil Software公司出品的52系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。

Protues软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8052、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译。

STC-ISP 是一款单片机下载编程烧录软件,是针对STC系列单片机而设计的,可下载STC89系列、12C2052系列和12C5410等系列的STC单片机,使用简便,现已被广泛使用。

5.2 各模块程序设计 5.2.1 主程序流程图

在本次设计中,主程序主要是在单片机的控制下,建立人机操作界面,对设定时间进行储存分析,驱动液晶显示出相关信息,并通过对比分析定时时间与时钟,控制蜂鸣器的通、断,从而达到控制打铃的通、断电。在这个过程中,单片机首先进行初始化,包括设置单片机各个端口的方向,各个变量的初始化,液晶显示初始化、蜂鸣器断开以及单片机振荡频率的校准等。整个系统软件设计的流程图如图5.1所示。

第17页

西安文理学院本科毕业设计(论文)

开始 系统初始化 N 是否有键按下 Y 执行按键程序 N 是否到达定时时间 Y 蜂鸣器吸合

图5.1 主程序流程图

5.2.2 DS1302计时程序的编写

DS1302串行时钟芯片的主要组成部分:移位寄存器控制逻辑、振荡器、实时时钟以及RAM。为了初始化任何的数据传送,把RST置为高电平且把提供地址和命令信息的8位装入到移位寄存器中。数

第18页

西安文理学院本科毕业设计(论文)

据在SCLK的上升沿串行输入。无论是读周期还是写周期发生,也无论传送方式是单字节传送还是多字节传送,开始8位指定的40个字节中的那个将被访问。在开始8个时钟周期把命令字装入移位寄存器之后,另外的时钟在读操作时输出数据,在写操作时输入数据。时钟脉冲的个数在单字节方式下为8加8,在多字节方式下为8加最大可达248的数。

如图18为DS1302的命令字节,每一数据传送由命令字节初始化。最高位有效位MSB必须为1。如果它是零,禁止写DS1302,位6为逻辑0指定时钟日历数据;逻辑1指定RAM数据。位1和5指定进行输入或输出的特定寄存器。最低位LSB 为逻辑0指定进行写操作;逻辑1指定进行读操作,命令字节总是从最低有效为LSB开始输入。

图18 DS1302的命令字节

图19所示为DS1302的读写时序。多字节方式下,通过对地址31寻址,可以把时钟/日历或RAM寄存器规定为多字节方式。如前所述,位6规定为时钟或RAM而位0规定为读或写,在时钟/日历寄存器中的地址9至31或RAM寄存器的地址31不能存储数据,在多字节方式中读或写从地址0的位0开始。当以多字节方式写RAM时,为了传送数据不必写所有31字节,不管是否写了全部31字节,所写的每一个字节都将传送至RAM。

图5.2 DS1302的读写时序

DS1302总共有12个寄存器,其中的7个寄存器分别与日历、时钟相关,存放的数据位为BCD码形式。表3为它的日历、时间寄存器及控制字,其中奇数为读操作,偶数为写操作

第19页

【4】