基于单片机的的智能药盒的设计 - 图文 联系客服

发布时间 : 星期一 文章基于单片机的的智能药盒的设计 - 图文更新完毕开始阅读8a29b2ea0242a8956bece41d

河南理工大学毕业设计(论文)说明书

开 始

中断处理;中断次数++ 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