《基于单片机的的智能药盒的设计(共53页).doc》由会员分享,可在线阅读,更多相关《基于单片机的的智能药盒的设计(共53页).doc(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 摘要随着社会的发展和人们生活水平的提高,人们对生活的健康质量也追求越来越高,为了方便老年人吃药,结合当前智能药盒蓬勃的发展状况,本文介绍了一种基于单片机的家庭用智能药盒的设计。首先,本文介绍了此系统所涉及的硬件的结构和工作原理,主要包括STC90C51单片机、LCD1602液晶和单片机的定时/计数器。其次,介绍了系统硬件的模块化设计和软件的编程思想。最后是对系统进行调试之后得出最后的结果。在第一部分着重介绍了单片机的各项参数、内部结构、引脚功能,LCD1602的硬件电路、显示原理和各项命令,定时/计数器和蜂鸣器原理的简单介绍。在第二部分则系统地介绍了各模块之间的运作
2、模式和工作流程。最后调试完善后得到的系统运行基本模式为:系统基于单片机控制,通过对单片机STC90C516定时器中断的设计,使其完成对时钟运行的控制,并通过LCD1602液晶显示出来。当系统检测到有时间设置功能键或用药设置功能键有输入时,进入关中断调时及设置状态,之后开中断并按下定时键记录当前设置的时间及用药量的值。在调节好系统时间之后,系统时间向前运行的过程中不断将系统实时时间与记录时间作比较,两者相等时发出警报并显示所设置的用药量,一分钟后系统实时时间与记录时间不在相等则自动退出提醒,如此实现每天四次用药及每次四种用药服用量的提醒,比较适合普通家庭使用。关键词:智能药盒; STC90C51
3、6; 时钟; 1602显示专心-专注-专业 Abstract With the development of society and peoples living standards improve,more and more people pursue a higher level of health.In order to facilitate the old to take medicine,in combination with the vigorous development situation of smart pillbox,this paper introduces a des
4、ign of domestic smart pillbox based on STC90C516 SCM(Single chip microcomputer).First,this paper introduces the system structure and working principle of hardware involved,mainly includes SCM,LCD1602 and the counter timer of the SCM.Secondly,the paper introduces the system hardware modular design an
5、d soft programming ideas.Finally,get the final result after debugging.The first part introduces the various parameters of SCM,the internal structure and pin functions,as well as hardware circuit and various commands of LCD1602,the principle of LCD1602,counter timer and buzzer.The second part introdu
6、ces the operation model and work process between each module systematically.After the completion of debugging,the system basic operation mode is:the system is based on STC90C516,through the design of STC90516 timer interrupt,the system control the clock running forward,and display the time on the LC
7、D1602.When the system detects that the time setting keys or the dosage keys have input,close the interrupt and setting the value of time or dosage,then open the interrupt and press the time-setting keys down to record the time and dosage,As the system time running forward,comparing record time with
8、the current time,when two values are equal activate the alarm and display the dosage value,a minute latter,the two values are not equal,the system close the alarm,this is the way of reminding a person to take four kinds of medicine four times a day its suitable for ordinary families.Key words: smart
9、 pillbox STC90C516 clock LCD1602 目录 1 绪论1.1 选题目的和意义很多老年人随着年龄的增长,都有健忘的毛病,对于这些老年人来说在生病的时候甚至是日常生活中按时吃药是一个难题,如果需要在不同时间吃不同的药,几乎很难独立完成,这次的毕业设计题目所指的智能药盒就是针对这些老年人所设计的,是一种为了方便老年人服药而设计的药物存储容器,它可以更好地管理高龄人群吃药麻烦的问题,根据对老年人每天吃药的时间进行定时,来实现一天内对老年人每天三次或更多次的定时提醒,提醒使用者服用多种药物中的一种或多种,以帮助人们改掉不按时吃药的坏习惯。1.2 目前智能药盒的现状现状是刚刚起步
10、,主要针对老年人,但随着对这种刚性的市场需求认识的加深,市场一定会迎来一个发展热潮。一开始出现的便携小药盒,造型简单,容量小,不能满足人们的需求,于是,随即又发展出现了大容量且功能齐全的药盒。随着逐渐更新完善,发展出现了造型多样的全新设计的人性化智能电子药盒,易操作,能定时,更简单。为更多人带来了便利。电子药盒不仅用于收纳不同的药片,还可以放置保健品,这样也就拓展了电子药盒的消费对象,扩大了消费群体,提升电子药盒的使用价值。以前大多电子药盒的电路通常由分立的数字电路器件组成,不仅功能单一,而且重量和体积都较大,特别是功耗大,提高了使用成本,因而具有很大的局限性。所以更加智能的电子药盒成为新的需
11、要。近几年,随着单片机技术的快速发展,以单片机为核心的大规模集成电路在各种产品中得到了极其广泛的应用。而以单片机为核心的数字电路正是由于具有功能丰富,体积小,功耗低等优势,符合电子药盒这一产品的特点,具有极大的市场潜力和开发价值。如今电子药盒在选择机型的过程中综合考虑单片机性能体积和产品耐用性等因素,正向微型化,智能化的方向发展。一切科技都是为了服务人们更好的生活。鉴于目前不少老年人苦于用药的合理管理和定时服用,智能的药品管理系统正是大众所需。近几年,随着单片机技术的快速发展,以单片机为核心的大规模集成电路在各种产品中得到了极其广泛的应用。而以单片机为核心的数字电路正是由于具有功能丰富,体积小
12、,功耗低等优势,符合电子药盒这一产品的特点,具有极大的市场潜力和开发价值。针对目前的现状,设计一种家庭用智能药盒,本设计是以STC90C516单片机为核心,并与键盘输入和1602LCD液晶显示屏相结合的自动按时提醒控制系统,有较高的应用价值和现实意义。1.3 本文的结构本系统基于单片机定时/计数器时钟程序进行计时,同时通过1602LCD液晶显示屏显示时间,时间采用24时制。当需要进行设定时,可根据外部键盘输入时间点。当时间达到预定时间时单片机通过写入的程序在输出端输出低电平,以致控制蜂鸣器实现声音提醒的目的。本系统采用单片机技术,电路简洁,成本低,控制精度和效率也较高,稳定性好,易操作,显示直
13、观,解决了老年人用药的日常问题,适合普通家庭使用,对于提高老年人健康生活很有意义。介绍本文结构如下:第一章为绪论部分,简要介绍了选题的背景及意义,研究的现状和发展趋势以及本文的主要内容和结构。第二章总体方案设计,简要介绍整个系统的结构及工作原理,论证系统总体方案的设计。第3章 为系统硬件设计部分,介绍各个模块的资料、原理并对电路功能进行分析,对硬件进行器件布局和线路设计,得出系统硬件电路图。第四章为系统软件设计部分,主要介绍系统各部分软件的设计思想和工作流程。第五章为系统的调试。第六章为总结与展望,主要是对本设计的总结。2 系统总体方案设计2.1 设计要求利用STC90C516单片机、8个按键
14、、LCD1602液晶显示屏、蜂鸣器、LED发光二极管等设计一个家庭用智能药盒。该系统硬件部分由单片机最小系统、按键电路、液晶显示电路、声光报警电路组成,系统能完成时间的实时显示、每天四次定时、每次用药四种药用量提醒的功能。系统基本功能如下:(1)显示采用LCD1602显示实时时间、用药量、 调设信息显示等。(2) 定时时间与用药量的设定系统须实现每天四次时间的定时,每次用药时须对四种药做出用量的提醒,通过6个按键完成,1个功能键,1个调节键,4次定时对应的4个定时按键。(3)实时时间调节 实时时间通过另外2个按键进行调节,其中之一为功能键,另一个为调节键。(4)报警功能实时时钟运行到定时时间时
15、,LCD1602显示此次用药量,蜂鸣器响起,LED闪烁,提醒用药时间到。2.2 总体设计思路本设计采用模块化设计的方法,以STC90C516RD+单片机为核心设计一种家庭用智能药盒。系统采用单片机为主控芯片,结合单片机最小系统所必须的上电复位电路,内部晶振电路,采用电源模块为整个系统提供稳定直流电源,采用单片机芯片提供的定时器设计系统时钟,LCD显示模块负责时间及其他参数的的显示,语音模块接收单片机发送来的信号完成声音信号的提醒,LED发光二极管配合语音模块的蜂鸣器起到辅助的报警作用。在程序的设计问题上,以单片机内部资源为核心,调用程序存储区的各个模块的驱动程序,通过单片机的引脚对系统中其他模
16、块资源进行驱动和调用,通过主程序调用按键扫描子程序和LCD1602数据刷新程序,将按键模块和LCD1602联系起来,使得按键的输入信息可以实时地显示在LCD1602液晶屏上,程序调用LCD1602读数据的子程序,并运算判断是否进入报警时间,进入到报警时间时,将之前设定的用药的信息刷新到LCD1602上,并通过作用单片机管脚,驱动蜂鸣器发声和LED发光二极管发光,起到必要的报警功能。系统基本原理如图 2-1所示: 图 2-1 系统原理图本系统采用STC90C516RD+作为单片机最小控制系统的核心,STC90C516RD+是STC90C51系列单片机的一种;采用LCD1602液晶屏作为显示器件;
17、以单片机内部定时器中断作为系统时钟。系统通过单片机实现对各个系统模块的协调控制,由单片机检测2+2+4共8个按键的输入,并将输入信息实时显示在LCD1602上。定时设置通过6个按键完成,1个功能键,1个调节键,4次定时对应的4个定时按键,功能键按下后,即可通过调节键调节,随按下功能键次数的不同,完成对时间和用药量六个值的设定,最后一次按下功能键,并按下4个定时按键的其中一个,LED发光二极管闪动,以确定定时按键确实被按下,则记录此时各参的值,表示一次定时操作结束,则时钟继续向前运行。定时设置完成后,对系统始终时间做出调整。由2个按键完成,一个是功能键,一个是调节键,按下功能键,即可对时间作出调
18、整,随功能键按下次数不同,分别对分钟数和小时数作出调整,调整结束后,最后一次按下功能键,时钟开始运行。系统利用单片机的定时器运行实时时钟,由单片机检测此时实时时间是否与4个定时时间之一相等。实时时钟运行到定时时间时,LCD1602显示此次用药量,蜂鸣器响起,LED闪烁,提醒用药时间到,一分钟后,实时时钟越过定时时间,实时时间与定时时间不再相等,则系统自动退出报警程序。2.3 系统结构设计系统结构由STC90C516单片机、2+2+4键盘、电源、晶振电路、复位电路、LCD显示、蜂鸣器电路、发光二极等几部分构成。系统结构如图 2-2所示: 图 2-2 系统结构图 3 硬件电路的设计3.1 单片机最
19、小系统单片机最小系统主要由STC90C516单片机、晶振电路、复位电路等构成,单片机最小系统如图 3-1所示: 图 3-1 单片机最小系统电路图3.1.1. STC90C51RC/RD+系列单片机简介STC90C51RC/RD+系列单片机是宏晶科技推出的新一代超强抗干扰、高速、低功耗的单片机,指令代码完全兼容传统8051单片机,12时钟机器周期和6时钟机器周期可以任意选择。内部集成MAX810专用复位电路,时钟频率在12MHz以下时,复位脚可直接接地。STC90C51RC/RD+单片机中包含中央处理器(CPU)、程序存储器(FLASH)、数据存储器(SPAM)、定时/计数器、UART串口、I/
20、O接口、EEPROM、看门狗等模块。STC90C51RC/RD+系列单片机几乎包含了数据采集和控制所需要的所有单元模块,可称得上一个片上系统。 1、增强型6时钟/机器周期,12时钟/机器周期8051 CPU。2、工作电压:5.5V-3.8V(5V单片机)/3.6V-2.0V(3V 单片机)。3、工作频率范围:0-40MHz,相当于普通8051的080MHz,实际工作频率可达48MHz。4、用户应用程序空间4K/6K/7K/8K/10K/12K/13K/16K/32K/40K/48K/56K/61K/字节。5、片上集成1280字节/512/256字节RAM。6、通用I/O口(35/39个),复位
21、后为:P1/P2/P3/P4是准双向口/弱上拉(普通8051传统I/O口)。P0口是开漏输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。7、ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器/仿真器,可通过串口(P3.0/P3.1)直接下载用户程序,8K程序3-5秒即可完成一片。8、EEPROM功能。9、看门狗。10、内部集成MAX810专用复位电路,外部晶体12M以下时,可省外部复位电路,复位脚可直接接地。11、共3个16位定时器/计数器,其中定时器0还可以当成2个8位定时器使用。12、外部中断4路,下降沿中断或低电平触发中断,Power Down模式可由
22、外部中断低电平触发中断方式唤醒。13、通用异步串行口(UART),还可用定时器软件实现多个UART。14、工作温度范围:0-75/-40-+85。15、封装:LQFP-44,PDIP-40,PLCC-44。 图 3-2 STC90C51RC/RD+系列单片机引脚图 1、电源 Vcc(引脚号40),芯片电源,接+5V;Gnd(引脚号20),电源接地端。2、时钟 XTAL1(引脚号19)内部振荡电路反相放大器的输入端,是外接晶振的一个引脚。当采用外部振荡器时,此引脚接地。XTAL2(引脚号18)内部振荡器的反相放大器输出端,是外接晶振的另一端。当采用外部振荡器时,此引脚接外部振荡源。3、控制总线
23、(1)ALE/(引脚号30):正常操作时为ALE功能(允许地址锁存),用来把地址的低字节锁存到外部锁存器。ALE引脚以不变的频率(振荡器频率的1/6)周期性地发出正脉冲信号。因此,它可用作对外输出的时钟信号或用于定时。但要注意,每当访问外部数据存储器时,将跳过一个ALE脉冲。ALE端可以驱动(吸收或输出电流)8个LSTTL电路。(2)(引脚号29):外部程序存储器读选通信号。在从外部程序存储器取指令(或数据)期间,在每个机器周期内两次有效。可以驱动8个LSTTL电路。(3)RST/VPD(引脚号9):复位信号输入端。振荡器工作时,该引脚上持续2个机器周期的高电平可实现复位操作。此引脚还可接上备
24、用电源。在Vcc掉电期间,由VPD 向内部RAM提供电源,以保持内部RAM中的数据。(4)/Vpp(引脚号31):为内部程序存储器和外部程序存储器的选择端。当为高电平时,访问内部程序存储器;当为低电平时,访问外部程序存储器。4 、I/O线(1) P0口(引脚号3239):单片机的双向数据总线和低8位地址总线。在访问外部存储器时实现分时操作,先用作地址总线,在ALE信号的下降沿,地址被锁存;然后用作为数据总线。它也可以用作双向输入/输出口。P0口能驱动8个LSTTL负载。(2) P1口(引脚号18):准双向输入/输出口,它能驱动4个LSTTL负载。(3)P2口(引脚号2128):准双向输入/输出
25、口。在访问外部存储器时,用作高8位地址总线。P2口能驱动4个LSTTL负载。(4)P3口(引脚号1017):准双向输入/输出口,它能驱动4个LSTTL负载。P3口的每一引脚还有另外一种功能:P3.0RXD:串行口输入端。P3.1TXD:串行口输出端。P3.2:外部中断0中断请求输入端。P3.3:外部中断1中断请求输入端。P3.4T0:定时器/计数器0外部输入端。P3.5T1:定时器/计数器1外部输入端。P3.6:外部数据存储器写选通信号。P3.7:外部数据存储器读选通信号。3.1.2. 晶振电路单片机工作时,从取指令到译码再进行微操作,必须在时钟信号控制下才能有序地进行,时钟电路就是为单片机工
26、作提供基本时钟的。单片机的时钟信号通常有两种产生方式:内部时钟方式和外部时钟方式。内部时钟方式是在单片机XTAL1和XTAL2引脚上跨接上一个晶振和两个稳频电容,可以与单片机片内的电路构成一个稳定的自激振荡器。晶振的取值范围一般为024MHz,常用的晶振频率有6MHz、12 MHz、11.0592 MHz、24 MHz等。一些新型的单片机还可以选择更高的频率。外接电容的作用是对振荡器进行频率微调,使振荡信号频率与晶振频率一致,同时起到稳定频率的作用,一般选用2030pF的瓷片电容。外部时钟方式则是在单片机XTAL1引脚上外接一个稳定的时钟信号源,它一般适用于多片单片机同时工作的情况,使用同一时
27、钟信号可以保证单片机的工作同步。时序是单片机在执行指令时CPU发出的控制信号在时间上的先后顺序。单片机的时序概念有4个,可用定时单位来说明,包括振荡周期、时钟周期、机器周期和指令周期。振荡周期:是片内振荡电路或片外为单片机提供的脉冲信号的周期。时序中1个振荡周期定义为1个节拍,用P表示。时钟周期:振荡脉冲送入内部时钟电路,由时钟电路对其二分频后输出的时钟脉冲周期称为时钟周期。时钟周期为振荡周期的2倍。时序中1个时钟周期定义为1个状态,用S表示。每个状态包括2个节拍,用P1、P2表示。机器周期:机器周期是单片机完成一个基本操作所需要的时间。一条指令的执行需要一个或几个机器周期。一个机器周期固定的
28、由6个状态S1S6组成。指令周期:执行一条指令所需要的时间称为指令周期。一般用指令执行所需机器周期数表示。单片机多数指令的执行需要1个或2个机器周期,只有乘除两条指令的执行需要4个机器周期。了解了以上几个时序的概念后,我们就可以很快的计算出执行一条指令所需要的时间。例如:若单片机使用12MHz的晶振频率,则振荡周期=1/(12MHz)=1/12us,时钟周期=1/6us,机器周期=1us,执行一条单周期指令只需要1us,执行一条双周期指令则需要2us。晶振电路如图 3-3所示: 图 3-3 系统晶振电路图3.1.3. 复位电路无论是在单片机刚开始接上电源时,还是运行过程中发生故障都需要复位。复
29、位电路用于将单片机内部各电路的状态恢复到一个确定的初始值,并从这个状态开始工作。单片机的复位条件:必须使其RST引脚上持续出现两个(或以上)机器周期的高电平。单片机的复位形式:上电复位、按键复位,此处采用上电复位。按键复位电路中,当按键没有按下时,电路同上电复位电路。如在单片机运行过程中,按下RESET键,已经充好电的电容会快速通过电阻的回路放电,从而使得RST引脚上的电位快速变为高电平,此高电平会维持到按键释放,从而满足单片机复位的条件实现按键复位。单片机要复位只需要在第9引脚接个高电平持续2s 就可以实现,电容的的大小是10uF,电阻的大小是10k。所以根据公式,可以算出电容充电到电源电压
30、的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K10UF=0.1S。单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用1030uF,单片机最小系统容值越大需要的复位时间越短。单片机复位电路如图3-4所示: 图 3-4 系统复位电路3.2 显示电路显示电路中的显示器件为LCD1602,其数据端口与单片机的P0口相接,电路连接如图 3-5所示: 图 3-5 LCD1602连接图1602采用标准的16脚接口,其中:第1脚:VSS为地电源。第2脚:VCC接5V正电源。第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比
31、度最高,对比度过高时会产生重影,使用时可以通过一个1K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第1516脚:背光灯电源。数据位命令RSRWDB7DB6DB5DB4DB3DB2DB1DB0清屏 0 0 0 0 0 0 0 0 0 1 归位
32、0 0 0 0 0 0 0 0 0 * 输入方式 0 0 0 0 0 0 0 1 I/D S 显示开关 0 0 0 0 0 0 1 D C B 光标、画面 0 0 0 0 0 1 S/C R/L * * 功能设置 0 0 0 0 1 DL N F * *CGRAM地址 0 0 0 1 A5 A4 A3 A2 A1 A0DDRAM地址 0 0 1 A6 A5 A4 A3 A2 A1 A0读BF及AC 0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0写数据 1 0 数 据读数据 1 1 数 据 LCD1602指令与时序说明如下 : 表 3-1 LCD1602指令表LCD1602
33、在工作的过程中,在数据线上传送数据时,需将传送数据在数据线上持续一小段时间,保证单片机的P0口数据传送或接收成功,其基本操作时序如表 3-2所示:表 32 LCD1602基本操作时序操作 输入输出读状态RS=L,R/W=H,E=HD0D7=状态字写指令RS=L,R/W=L,D0D7=指令码,E=高脉冲无读数据RS=H,R/W=H,E=HD0D7=数据写数据RS=H,R/W=L,D0D7=数据,E=高脉冲无3.3 键盘电路在单片机应用系统中,除了复位按键外,还需要其他按键,即键盘按键,以便控制系统的运行状态或向系统输入运行参数。键盘电路一般由键盘接口电路、按键(由控制系统运行状态的功能键和向系统
34、输入数据的数字调节键组合)以及键盘扫描程序等部分组成。本系统键盘电路共有8个按键组成,按42的格式布置。键盘的电路连接如图 3-6所示: 图 3-6 系统按键电路连接图键盘的工作原理是:按下键帽时,按键内的复位弹簧被压缩,动片触点与静片触点相连,按键接通,相应键向单片机端口发送一个低电平,松开键帽,按键断开。3.4 蜂鸣器报警电路系统中单片机的P2.3脚与蜂鸣器相连,开启蜂鸣器功能。当单片机的管脚输出固定频率电平时蜂鸣器响起。声音是由振动所产生的,一定频率的震动就产生了一定频率的声音,其电路连接图如图 3-7所示: 图 3-7 蜂鸣器电路连接图一般情况下,P2.3脚处于高电平,当系统进入报警时
35、间时,单片机控制P2.3脚输出一定频率方波,蜂鸣器振动发声,实现声音报警功能。3.5 发光二极管电路发光二极管在系统中结合蜂鸣器报警同步作用,其电路连接如图 3-8所示: 图 3-8 发光二极管电路连接图发光二极管一端接电源供电,通过电阻与单片机P2.4脚连接,一般情况下,P2.4为高电平,发光二极管处于熄灭状态,当进入报警时间时,P2.4脚降为低电平,发光二极管导通亮起,其中的电阻起到对通过二极管的电流的调节作用,使得二极管正常发光。3.6 定时模式装入初值的计算对于定时模式,是对机器周期计数,而机器周期与选定的主频密切相关。因此,需根据应用系统所选定的主频计算出机器周期值。现在以主频12M
36、Hz为例,则机器周期为 实际定时时间Tc = xTp。式中Tp为机器中期,Tc为所需定时时间,x为所需计数次数,x为所需计数次数。Tp和Tc一般为已知值,在求出Tp后即可求得所需计数值x,再将x求补码,即求得定时计数初值。即 例如设定时时间为Tc =5ms,机器周期Tp=1s ,可求得定时计数次数 设选用工作方式1,则n=16,则应设置的定时时间计算出值为 还需将它分解成两个8位十六进制数,分别求得低8位为B0H装入TLx,高8位为3CH装入THx中。工作方式0、1、2的最大计数次数分别为8192、65536和256。 4 系统软件设计本软件所实现的功能是:单片机检测按键的输入信息,并实时地显
37、示在LCD1602上,在系统记录下四次用药时间和每次的用药量之后,调节好系统时钟后系统开始运行,在运行的过程中,单片机将定时的四个时间与系统的实时时间相比较,相等时即报警,并显示此次用药的服用量。主程序调用子程序,子程序之间又嵌套调用,总之,各元件所对应的子程序在主程序的调用驱动作用下,协调运行工作,共同实现实现药盒的系统功能。各个程序模块的结构如图 4-1所示: 图 4-1 各程序模块结构图4.1 系统主程序主程序模块主要完成控制系统各部件的初始化和实现各功能子程序的调用,也可经两重或多重嵌套调用子程序,主程序下辖多个子程序模块,系统通过运行主程序将各个子程序模块的功能协调实现。整个的系统运
38、行在主程序的无尽循环中,不断地进行运算操作,实现各阶段的相应功能。在本系统的主程序中,随主程序运行到不同的阶段,主程序要在时钟的驱动下,首先完成对系统各个模块的初始化,之后进入到循环当中;在进入到循环后对键盘扫描子程序进行调用,扫描键盘输入信息,经运算后调用数据刷新子程序将输入信息实时地显示在LCD1602上,实现四次时间定时和和每次用药服用量的设定,然后完成对实时时间的调节;当实时时钟向前运行时,将定时时间与系统实时时间作比较,两者相等时则进入报警程序。 主程序流程如图 4-2所示: 开 始 中断处理;中断次数+ 中断? Y 中断返回 N 按键按下? Y 中断次数=20? 按键扫描子程序 N
39、 N Y 中断次数=0;秒钟+定时按键按下? 刷新秒钟 秒钟=60? N N 秒钟=0;分钟+ Y Y 记录此时间 刷新分钟 分钟=60?定时时间=此时时间? N N Y分钟=0;小时+ Y 报警 小时=24? N 刷新小时 结 束 Y 小时=0 图 4-2 主程序流程图4.2 系统软件子程序系统软件子程序较多,主要有延时子函数、数据刷新子函数、LCD测忙子函数、LCD写命令子函数、LCD写数据子函数、LCD读状态子函数、LCD读数据子函数、初始化子函数、按键扫描子函数、中断子函数等。其中较为重要的为按键扫描子函数和中断子函数。现仅介绍按键扫描子函数和中断子函数。4.2.1. 按键扫描子函数按
40、键扫描子函数检测2+2共4个键的输入信息。2个为时间调节按键,其中一个为功能按键,一个为调节键,当功能按键按下时,开启调节功能,随功能键按下次数不同,调节键分别对时间的时和分进行调节;另外2个为定时时间和药物用量的调节键,配合4个定时按键使用。程序流程如图 4-3所示: 开始检测s1的输入,记录输入次数s1num 判断s1num的值,利用s2调节时间的时和分 检测s3的输入,记录输入次数s3num 判断s3num的值,利用s4调节服药时间和用量 结束图 4-3 按键扫描子函数程序流程图4.2.2. 中断子函数当定时器寄存器TH0/TL0溢出时,溢出标志位TF0被置位,定时器中断发生,当单片机转
41、去执行定时器中断时,定时器溢出标志位TF0被硬件清零。在中断子函数中对变量做计数控制实现计数定时。定时器中断子程序流程如图 4-4所示: 开 始单片机执行定时器中断 向定时器TH0装入初值 向定时器TH0装入初值 变量count加1 结 束图 4-4 中断子程序流程图5 系统的调试本系统的大多软硬件的调试均在普中科技单片机开发板上完成。在开发板上实验成功后,开始焊接,简单连线即可实现功能。5.1 软件调试软件调试过程中采用逐步添加模块功能程序的方法,一步步添加各功能模块的应用程序,逐步修改完善。初步软件程序仅显示时间,完成时钟的功能,后逐步添加位定义,完成所有与按键输入有关的程序,实现系统各参的可调节,再之后添加LCD1602读取数据的子程序,完成对LCD1602显示的各参的记录,完成时间定时的功能,最后添加报警提醒程序,实现报警功能。在系统软件编程的过程中,可分为以下几个阶段:1、编写简单的时钟程序,实现时钟的运行。2、在时钟的基础上,增加2个键,并添加驱动程序实现其输入功能,一个为功能键,一个为调节键;当功能键按下,启用调节键的调节功能;功能键按下1次,调节键对分钟进行调节;功能键按下2次,调节
限制150内