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

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

表1寄存器地址和内容

秒 分 小时 写寄存器 80H 82H 84H 读寄存器 81H 83H 85H CH 0 12/24 日 月 星期 年 控制 86H 88H 8AH 8CH 8EH 87H 89H 8BH 8DH 8FH WP 0 0 0 0 0 0 0 0 0 Bit7 Bit6 Bit5 10秒 10分 10 A/P 10日 10月 0 0 日 月 星期 年 0 0 0 0 0 时 Bit4 Bit3 秒 分 时 Bit2 Bit1 Bit0

10年 0 0 这部分的编程中设置固定模式定时的时候,主要用到的是计时过程中的分的数值变化,执行定时时把分的数值提取出来,在这基础上加上模式定时时间,待到下一个时间到达定时时间时执行相反动作。

5.2.3 LCD1602显示电路程序编写

这部分的显示过程主要是显示从DS1302读取的日历和时钟数值,同时当检测到独立式按键有键按下时,显示相应的设置菜单等。 基本操作时序:

读状态:输入:RS=L,RW=H,E=H 输出:DO~D7=状态字 写状态:输入:RS=L,RW=L,D0~D7=指令码,E=高脉冲 输出:无

读数据:输入:RS=H,RW=H,E=H 输出:DO~D7=数据 写数据:输入:RS=H,RW=L,D0~D7=数据,E=高脉冲 输出:无

图20为LCD1602的具体读写时序。

【8】

第20页

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

a.读操作时序

b.写操作时序

图5.3 LCD1602的读写时序

5.2.4 按键电路程序编写

按键电路有6个独立按键组成,分别是界面上翻键,界面下翻键,光标移动按键,加键,

减键,确定键。本设计中有20组数据控制打铃,界面上翻和下翻键能进入修改模式,分别修改各组数据以及当前时间,每组数据包括7个控制星期是否选择的数字,以及开始的时间和终止的时间,在各个界面内通过光标移动键来实现对不同数字选中,选中之后通过增加和减小键来增大和减小。修改数据成功之后通过确定键来写入。

第21页

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

第六章 系统制作及调试

6.1 硬件制作

电路设计软件Protel是目前国内最流行的通用CAD软件,它是将电路原理图设计、PCB板图设计、电路仿真和PLD设计等多个实用工具软件组合后构成的CAD工作平台。

本设计是首先在Protel软件上画好单片机最小系统、液晶与单片机连接电路、蜂鸣器的外围电路及与单片机的链接电路、键盘与单片机的连接电路、电源电路等的原理图,然后对原理图进行仿真,仿真无误后生成网络表后装载到PCB环境中生成需要的PCB。其中,单片机控制蜂鸣器部分为了确保其在实际应用的准确性,首先在万用板上焊接好蜂鸣器电路,并接上打铃后对其进行验证,证明使用本电路能正常工作后,再打印PCB、转印到铜板上、用用双氧水稀释浓盐酸腐蚀、钻孔,并根据原理图由低器件(如电阻)到高器件安放元器件(确保元器件的参数与电路中的一致),然后焊接元器件,完成了定时快关打铃的硬件电路板的制作。

6.2 硬件电路调试

硬件单元电路制作好后,在上电之前,应该先用万用表对各个独立元件进行检查,在排除了虚焊、短路、断路等问题后再通电进行电路功能的调试。具体调试过程如下所述:

6.2.1 独立元件的检测

任何组装好的电子电路,在通电调试之前,必须认真检查电路连线是否有误。检查的方法是对照电路图,按一定的顺序逐级对应检查,例如:对电路板的电阻阻值进行确定,可以通过读取电阻上的色环进行确认。特别是注意电源是否接错,电源与地是否有短接,集成电路和晶体管的引脚是否接错,轻轻拨一拨元器件,观察焊点是否牢固等。用万用表检测是不是有短路和断路现象。

给系统上电后,看下电源灯亮不亮。假如不亮,就要检查电源指示灯发光二极管的好坏。还要用万用表测一下单片机等芯片的电压是不是符合要求。假如不是,就要进行各个芯片的检查,看一下各个芯片的引脚有没有焊好,芯片是否损坏。

6.2.2 单片机最小系统的调试

单片机STC89C52最小系统的检测分为硬件调试及软件调试。硬件调试时用万用表测量单片机的工作电压及各个管脚的电压是否达到正常工作电压。在此检测中还要烧入程序对各个I/O口的输出进行测试,查看I/O口所输出的电压是否与程序所控制值一致。例如:编写一个调试程序,使的所有I/O口从P1.0口开始依次赋予低电平,用万用表测量其输出电压,确定是否与程序所付值一致,一致则证明正确;然后又对其依次赋予高电平,确定是否与程序所付值一致,一致则证明正确。两次测试都正确,证明单片机最小系统是正常工作的。

第22页

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

6.2.3 显示模块的调试

显示模块硬件连接相对比较简单,检查与调试过程中也没有遇到什么困难。这次设计中,结果用LCD1602来显示。在给系统上电后,要观察LCD的亮度,为了减少功耗,LCD1602的背景灯的接地管脚同过I/O口P2.0的高低电平实现灭亮的要求,这种接法其背光灯会较暗,但是能够满足其在白天和夜晚都可以看清楚显示内容的要求。

6.2.4 键盘模块的调试

独立键盘调试相对容易。将独立键盘与单片机相连的IO口置高电平,按下按钮,用万用表测量电平是否变低。变低则证明键盘正常。

6.2.5 蜂鸣器电路的调试

蜂鸣器的外围电路硬件检测的工作最为简单,首先是测出三极管8050在给出工作电平时它的各个管脚的电压值,然后看看是否工作在放大状态。三极管工作在放大状态,就能给蜂鸣器提供足够的电流,从而驱动蜂鸣器工作。

通过对定时开关打铃的硬件制作与调试,系统的实物图如附录3所示。

6.3 软件调试

软件调试与硬件调试相类似也需要一步一步来。

6.3.1 显示模块调试

先在主程序中只写入1602液晶的初始化程序,让液晶在第一行显示几个字符。若未显示则检查,看是否使能显示,以及读写时序是否正确。

6.3.2 时钟模块调试

读取1302的当前时间值,同时可以向1302写入时间数据看是否程序能正常工作。

6.3.3 键盘模块调试

在主程序中键入按键扫描程序,初始化一个变量,当检测到按键按下时,将对应键值赋值给此变量,让液晶显示变量的值,检测按键是否工作。

6.3.4 人机界面模块调试

在主程序中加入人机界面程序,按照操作检查对应操作是否起效。

第23页