当前位置:首页 > 基于单片机的的智能药盒的设计 - 图文
河南理工大学毕业设计(论文)说明书
开 始
中断处理;中断次数++ Y 中 断 ?
N 中断返回 Y 按键按下?
N 按键扫描子程序 N 中断次数=20?
Y
中断次数=0;秒钟++ 定时按键按 N N 刷新秒钟 下? 秒钟=60?
Y Y 秒钟=0;分钟++
记录此时间
N 刷新分钟 分钟=60?
N 定时时间=此 Y 时时间?
分钟=0;小时++
Y N
Y
小时=0 小时=24? 刷新小时 报警 结 束
图 4-2 主程序流程图
17
河南理工大学毕业设计(论文)说明书
4.2 系统软件子程序
系统软件子程序较多,主要有延时子函数、数据刷新子函数、LCD测忙子函数、LCD写命令子函数、LCD写数据子函数、LCD读状态子函数、LCD读数据子函数、初始化子函数、按键扫描子函数、中断子函数等。其中较为重要的为按键扫描子函数和中断子函数。现仅介绍按键扫描子函数和中断子函数。
4.2.1. 按键扫描子函数
按键扫描子函数检测2+2共4个键的输入信息。2个为时间调节按键,其中一个为功能按键,一个为调节键,当功能按键按下时,开启调节功能,随功能键按下次数不同,调节键分别对时间的时和分进行调节;另外2个为定时时间和药物用量的调节键,配合4个定时按键使用。程序流程如图 4-3所示:
图 4-3 按键扫描子函数程序流程图
开始 检测s1的输入,记录输入次数s1num 判断s1num的值,利用s2调节时间的时和分 检测s3的输入,记录输入次数s3num 判断s3num的值,利用s4调节服药时间和用量 结束
18
河南理工大学毕业设计(论文)说明书
4.2.2. 中断子函数
当定时器寄存器TH0/TL0溢出时,溢出标志位TF0被置位,定时器中断发生,当单片机转去执行定时器中断时,定时器溢出标志位TF0被硬件清零。在中断子函数中对变量做计数控制实现计数定时。
定时器中断子程序流程如图 4-4所示:
变量count加1 开 始 单片机执行定时器中断 向定时器TH0装入初值 向定时器TH0装入初值 结 束 图 4-4 中断子程序流程图
19
河南理工大学毕业设计(论文)说明书
5 系统的调试
本系统的大多软硬件的调试均在普中科技单片机开发板上完成。在开发板上实验成功后,开始焊接,简单连线即可实现功能。
5.1 软件调试
软件调试过程中采用逐步添加模块功能程序的方法,一步步添加各功能模块的应用程序,逐步修改完善。
初步软件程序仅显示时间,完成时钟的功能,后逐步添加位定义,完成所有与按键输入有关的程序,实现系统各参的可调节,再之后添加LCD1602读取数据的子程序,完成对LCD1602显示的各参的记录,完成时间定时的功能,最后添加报警提醒程序,实现报警功能。
在系统软件编程的过程中,可分为以下几个阶段: 1、编写简单的时钟程序,实现时钟的运行。
2、在时钟的基础上,增加2个键,并添加驱动程序实现其输入功能,一个为功能键,一个为调节键;当功能键按下,启用调节键的调节功能;功能键按下1次,调节键对分钟进行调节;功能键按下2次,调节键对小时进行调节;功能键按下3次,退出时钟调节,时钟在调节后的基础上开始运行。
3、再增加2个键,对所需设定的时间和用药量进行调节,一个为功能键,一个为调节键,分别对小时、分钟、四种用药量共6个量进行调节。
4、再增加4个键并增加报警程序。在将设定时间和用量调节好后,按下4个键中的一个,如此4次,系统即可记录4次服药过程的各参。
软件调试所使用的软件为KEIL,是电子是电子方向技术人员使用较多的软件,使用版本为KeilμVision4英文版,是高效的开发应用程序。这一版本还可支持很多最新的ARM芯片。
KEIL的优点如下:
1、KeilμVision4生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。
2、与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。尤其是对用过汇编语言后再使用C来开发的人而言,其与汇编相比所体现出来的好处更加深刻。
KEIL软件的编译界面如图 5-1所示:
20
共分享92篇相关文档