天津职业技术师范大学2013届本科生毕业设计
4系统软件设计
4.1主程序流程图 4.1.1主流程概述
主程序包括按键模块、LCD16864显示模块、DS1302时钟模块、DS18B20温度测试模块、电机控阀门、闹铃模块等。通过开始查询按键,有键按下则开始调整时间和设置闹钟,若没有按下,则执行下面的时间、日期及闹钟时间的显示,最后依次循环这些相同的操作,相应流程图如图4-1所示:
图4-1 程序主流程图
20
天津职业技术师范大学2013届本科生毕业设计
4.1.2设计思想
本课题的设计思想是根据宠物自动喂食器的要求来设计的,如图4-1所示。程序的主要流程的大致过程如下所示:
1)首先初始化各个硬件设备,初始化所需的定时器、中断等; 2)程序初始化之后,正常情况下给宠物自动添加食物; 3)DS18B20温度测试和DS1302时钟电路模块开始工作;
4)接着进行数据的读取,判断LED12864显示是否正确,分三种情况来说: ? 若LED显示器没按定时器的要求正确显示,通过按键进行调整闹铃,直
到正确为止;
? 若万年历的数据显示不正确,也是通过按键进行调整年、月、日、时、
分、秒,直到调整到我们需要的时间显示;
? 若显示正确,能够在显示器上直观的看出显示的正确结果。
5)当调整好闹铃和万年历时,当到达设定时间时,蜂鸣器发出声音,彩灯
点亮,步进电机会控制门阀打开宠物喂食器,进而使得宠物进食,一直循环进行;
6)最后结束显示万年历。
4.2程序设计软件概述
本设计是以AT89S52最小系统为主控,通过编写软件控制单片机,通过按键操作设定喂食时间和调整万年历,实现温度和万年历的显示,喂食过程伴随照明灯的点亮,启动闹铃。
本系统中单片机的开发软件是采用 KeilC51软件,该软件集编译和调试于一体,包括查看单片机I/O口,串口通信,定时器等内部资源。下载软件和程序写入。
KeilC51是美国公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在结构性、功能、可读性、可维护性显著的优势,所以很容易学。此软件包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境将这些部分组合在一起。如果你使用C语言编程,那么KeilC51就是你的最佳选择,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。KeilC51软件是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编,PLM语言和C语言的程序设计。
21
天津职业技术师范大学2013届本科生毕业设计
4.3软件调试
1.使用Keil软件编程步骤:
1) 使用软件Project菜单项中的New Project建立一个新的工程。 2) 为新工程选择芯片,添加源程序文件(.c 或是.asm)。
3) 对工程进行相关的配置,Option for Target1配置页面窗口中选中Output页面
中的Create HEX选项。
4) 编写程序并使用Project菜单项中的Build All子菜单为应用创建可执行(.HEX)。 2.调试程序
调试程序是发现查找程序的逻辑错误的过程。 1) AT89S52单片机下载线,打开实验 箱电源。 2) 打开电脑桌面上的双龙电子软件SLISP。
3) 在SLISP软件界面中,器件—选择AT89S52, FLASH存储器—选择由Keil
软件生成的**.Hex文件,之后点击软件界面最下方的编程按钮,下载程序,下载完成,单片机会自己执行程序。
4) 观察程序执行结果,程序运行结果与预期不一致,则返回Keil编程界面,检
查程序逻辑。
22
天津职业技术师范大学2013届本科生毕业设计
5系统调试
5.1硬件调试方法
1.是焊接的顺序问题。
当初板子做好以后,我一口气就把所有的元件焊上去了,这样对于没有调试过的板子,就很难找到原因。所以焊接的顺序很重要,应该是应该按功能划分的器件进行焊接,顺序是功能部件的焊接--调试(OK)--另一功能部件的焊接,这样能容易找到问题的所在。
2.调试功能划分的器件上出现问题,按以下步骤进行: 1)检查原理图连接是否正确。 2)检查原理图与PCB图的一致性。
3)检查原理图与器件的DATASHEET上引脚是否一致。 4)用万用表检查是否有虚焊,引脚短路现象。
5)查询器件的DATASHEET,分析一下时序是否一致,同时分析一下命令字是否正确。
6)用示波器进行检测。如我就是通过示波器对SRAM各个引脚进行检查,发现地址线都是有信号的,而数据线无信号出现,才找到问题所在。
7)飞线。用别的的口线进行控制,看看能不能对其进行正常操作,多试验,才能找到问题出现在什么地方。
3.多观察,多思考。在调试过程中,对于出现的任何现象都不要放过,问题的解决就是从一些小的现象入手的。
4.软件的调试要和硬件配合进行,往往问题可能不是硬件上的问题。
5.2硬件调试技巧
1.排除逻辑故障
这类故障往往是由于设计和加工制板过程中工艺性错误所造成的。主要包括错线、开路、短路。排除的方法是首先将加工的印制板认真对照原理图,看两者是否一致。应特别注意电源系统检查,以防止电源短路和极性错误,并重点检查
23
天津职业技术师范大学2013届本科生毕业设计
系统总线(地址总线、数据总线和控制总线)是否存在相互之间短路或与其它信号线路短路。必要时利用数字万用表的短路测试功能,可以缩短排错时间。 2.排除元器件失效
造成这类错误的原因有两个:一个是元器件买来时就已坏了;另一个是由于安装错误,造成器件烧坏。可以采取检查元器件与设计要求的型号、规格和安装是否一致。在保证安装无误后,用替换方法排除错误。 3.排除电源故障
在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。加电后检查各插件上引脚的电位,一般先检查VCC与GND之间电位,若在5V~4.8V之间属正常。
5.3调试遇到问题
1. LCD12864调试
在测试中遇到LCD12864不能够显示出时间和日期,经过检查才发现是LCD12864的背光没有调好,通过调节接在LCD12864上3脚上的滑动变阻器,改变所给的电压,可以清晰地看见了LCD能够显示。 2.对于DS1302在测试
发现上电后不久会发热,在检查电路过程中,不是因为发现芯片短路,最终检查发现原来是DS1302的引脚接法不正确,给+5V的应该是芯片的脚,给后备电池的是1脚,换过来之后,芯片就不发热了,而且可以正常显示出我们要显示的时间和日期。 3. 电源调试
将变压器接入电路,接到220V的电源,用万用表测量发现有的地方没有接电源线,出现断路现象。
24