基于单片机的的智能药盒的设计

上传人:沈*** 文档编号:125227554 上传时间:2022-07-26 格式:DOC 页数:53 大小:3.74MB
收藏 版权申诉 举报 下载
基于单片机的的智能药盒的设计_第1页
第1页 / 共53页
基于单片机的的智能药盒的设计_第2页
第2页 / 共53页
基于单片机的的智能药盒的设计_第3页
第3页 / 共53页
资源描述:

《基于单片机的的智能药盒的设计》由会员分享,可在线阅读,更多相关《基于单片机的的智能药盒的设计(53页珍藏版)》请在装配图网上搜索。

1、 摘要随着社会的发展和人们生活水平的提高,人们对生活的健康质量也追求越来越高,为了方便老年人吃药,结合当前智能药盒蓬勃的发展状况,本文介绍了一种基于单片机的家庭用智能药盒的设计。首先,本文介绍了此系统所涉及的硬件的结构和工作原理,主要包括STC90C51单片机、LCD1602液晶和单片机的定时/计数器。其次,介绍了系统硬件的模块化设计和软件的编程思想。最后是对系统进行调试之后得出最后的结果。在第一部分着重介绍了单片机的各项参数、内部结构、引脚功能,LCD1602的硬件电路、显示原理和各项命令,定时/计数器和蜂鸣器原理的简单介绍。在第二部分则系统地介绍了各模块之间的运作模式和工作流程。最后调试完

2、善后得到的系统运行基本模式为:系统基于单片机控制,通过对单片机STC90C516定时器中断的设计,使其完成对时钟运行的控制,并通过LCD1602液晶显示出来。当系统检测到有时间设置功能键或用药设置功能键有输入时,进入关中断调时及设置状态,之后开中断并按下定时键记录当前设置的时间及用药量的值。在调节好系统时间之后,系统时间向前运行的过程中不断将系统实时时间与记录时间作比较,两者相等时发出警报并显示所设置的用药量,一分钟后系统实时时间与记录时间不在相等则自动退出提醒,如此实现每天四次用药及每次四种用药服用量的提醒,比较适合普通家庭使用。关键词:智能药盒; STC90C516; 时钟; 1602显示

3、 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 design of domestic smart

4、 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 and soft programming id

5、eas.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 introduces the operation mod

6、el 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 LCD1602.When the system

7、 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 the current time,when

8、 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 pillbox STC90C516 cl

9、ock LCD1602 目录摘要IAbstractII1 绪论11.1 选题目的和意义11.2 目前智能药盒的现状11.3 本文的结构22 系统总体方案设计32.1 设计要求32.2 总体设计思路32.3 系统结构设计53 硬件电路的设计63.1 单片机最小系统63.1.1. STC90C51RC/RD+系列单片机简介63.1.2. 晶振电路93.1.3. 复位电路103.2 显示电路113.3 键盘电路123.4 蜂鸣器报警电路133.5 发光二极管电路143.6 定时模式装入初值的计算144 系统软件设计154.1 系统主程序164.2 系统软件子程序174.2.1. 按键扫描子函数184

10、.2.2. 中断子函数185 系统的调试195.1 软件调试195.2 硬件调试215.3 调试结果246 结论与展望26致谢27参考文献28附录1 系统单片机与按键电路图29附录2 系统报警与显示电路图30附录3 编程程序31 1 绪论1.1 选题目的和意义很多老年人随着年龄的增长,都有健忘的毛病,对于这些老年人来说在生病的时候甚至是日常生活中按时吃药是一个难题,如果需要在不同时间吃不同的药,几乎很难独立完成,这次的毕业设计题目所指的智能药盒就是针对这些老年人所设计的,是一种为了方便老年人服药而设计的药物存储容器,它可以更好地管理高龄人群吃药麻烦的问题,根据对老年人每天吃药的时间进行定时,来

11、实现一天内对老年人每天三次或更多次的定时提醒,提醒使用者服用多种药物中的一种或多种,以帮助人们改掉不按时吃药的坏习惯。1.2 目前智能药盒的现状现状是刚刚起步,主要针对老年人,但随着对这种刚性的市场需求认识的加深,市场一定会迎来一个发展热潮。一开始出现的便携小药盒,造型简单,容量小,不能满足人们的需求,于是,随即又发展出现了大容量且功能齐全的药盒。随着逐渐更新完善,发展出现了造型多样的全新设计的人性化智能电子药盒,易操作,能定时,更简单。为更多人带来了便利。电子药盒不仅用于收纳不同的药片,还可以放置保健品,这样也就拓展了电子药盒的消费对象,扩大了消费群体,提升电子药盒的使用价值。以前大多电子药

12、盒的电路通常由分立的数字电路器件组成,不仅功能单一,而且重量和体积都较大,特别是功耗大,提高了使用成本,因而具有很大的局限性。所以更加智能的电子药盒成为新的需要。近几年,随着单片机技术的快速发展,以单片机为核心的大规模集成电路在各种产品中得到了极其广泛的应用。而以单片机为核心的数字电路正是由于具有功能丰富,体积小,功耗低等优势,符合电子药盒这一产品的特点,具有极大的市场潜力和开发价值。如今电子药盒在选择机型的过程中综合考虑单片机性能体积和产品耐用性等因素,正向微型化,智能化的方向发展。一切科技都是为了服务人们更好的生活。鉴于目前不少老年人苦于用药的合理管理和定时服用,智能的药品管理系统正是大众

13、所需。近几年,随着单片机技术的快速发展,以单片机为核心的大规模集成电路在各种产品中得到了极其广泛的应用。而以单片机为核心的数字电路正是由于具有功能丰富,体积小,功耗低等优势,符合电子药盒这一产品的特点,具有极大的市场潜力和开发价值。针对目前的现状,设计一种家庭用智能药盒,本设计是以STC90C516单片机为核心,并与键盘输入和1602LCD液晶显示屏相结合的自动按时提醒控制系统,有较高的应用价值和现实意义。1.3 本文的结构本系统基于单片机定时/计数器时钟程序进行计时,同时通过1602LCD液晶显示屏显示时间,时间采用24时制。当需要进行设定时,可根据外部键盘输入时间点。当时间达到预定时间时单

14、片机通过写入的程序在输出端输出低电平,以致控制蜂鸣器实现声音提醒的目的。本系统采用单片机技术,电路简洁,成本低,控制精度和效率也较高,稳定性好,易操作,显示直观,解决了老年人用药的日常问题,适合普通家庭使用,对于提高老年人健康生活很有意义。介绍本文结构如下:第一章为绪论部分,简要介绍了选题的背景及意义,研究的现状和发展趋势以及本文的主要内容和结构。第二章总体方案设计,简要介绍整个系统的结构及工作原理,论证系统总体方案的设计。第三章 为系统硬件设计部分,介绍各个模块的资料、原理并对电路功能进行分析,对硬件进行器件布局和线路设计,得出系统硬件电路图。第四章为系统软件设计部分,主要介绍系统各部分软件

15、的设计思想和工作流程。第五章为系统的调试。第六章为总结与展望,主要是对本设计的总结。2 系统总体方案设计2.1 设计要求利用STC90C516单片机、8个按键、LCD1602液晶显示屏、蜂鸣器、LED发光二极管等设计一个家庭用智能药盒。该系统硬件部分由单片机最小系统、按键电路、液晶显示电路、声光报警电路组成,系统能完成时间的实时显示、每天四次定时、每次用药四种药用量提醒的功能。系统基本功能如下:(1)显示采用LCD1602显示实时时间、用药量、 调设信息显示等。(2) 定时时间与用药量的设定系统须实现每天四次时间的定时,每次用药时须对四种药做出用量的提醒,通过6个按键完成,1个功能键,1个调节

16、键,4次定时对应的4个定时按键。(3)实时时间调节 实时时间通过另外2个按键进行调节,其中之一为功能键,另一个为调节键。(4)报警功能实时时钟运行到定时时间时,LCD1602显示此次用药量,蜂鸣器响起,LED闪烁,提醒用药时间到。2.2 总体设计思路本设计采用模块化设计的方法,以STC90C516RD+单片机为核心设计一种家庭用智能药盒。系统采用单片机为主控芯片,结合单片机最小系统所必须的上电复位电路,内部晶振电路,采用电源模块为整个系统提供稳定直流电源,采用单片机芯片提供的定时器设计系统时钟,LCD显示模块负责时间及其他参数的的显示,语音模块接收单片机发送来的信号完成声音信号的提醒,LED发

17、光二极管配合语音模块的蜂鸣器起到辅助的报警作用。在程序的设计问题上,以单片机内部资源为核心,调用程序存储区的各个模块的驱动程序,通过单片机的引脚对系统中其他模块资源进行驱动和调用,通过主程序调用按键扫描子程序和LCD1602数据刷新程序,将按键模块和LCD1602联系起来,使得按键的输入信息可以实时地显示在LCD1602液晶屏上,程序调用LCD1602读数据的子程序,并运算判断是否进入报警时间,进入到报警时间时,将之前设定的用药的信息刷新到LCD1602上,并通过作用单片机管脚,驱动蜂鸣器发声和LED发光二极管发光,起到必要的报警功能。系统基本原理如图 2-1所示: 图 2-1 系统原理图本系

18、统采用STC90C516RD+作为单片机最小控制系统的核心,STC90C516RD+是STC90C51系列单片机的一种;采用LCD1602液晶屏作为显示器件;以单片机内部定时器中断作为系统时钟。系统通过单片机实现对各个系统模块的协调控制,由单片机检测2+2+4共8个按键的输入,并将输入信息实时显示在LCD1602上。定时设置通过6个按键完成,1个功能键,1个调节键,4次定时对应的4个定时按键,功能键按下后,即可通过调节键调节,随按下功能键次数的不同,完成对时间和用药量六个值的设定,最后一次按下功能键,并按下4个定时按键的其中一个,LED发光二极管闪动,以确定定时按键确实被按下,则记录此时各参的

19、值,表示一次定时操作结束,则时钟继续向前运行。定时设置完成后,对系统始终时间做出调整。由2个按键完成,一个是功能键,一个是调节键,按下功能键,即可对时间作出调整,随功能键按下次数不同,分别对分钟数和小时数作出调整,调整结束后,最后一次按下功能键,时钟开始运行。系统利用单片机的定时器运行实时时钟,由单片机检测此时实时时间是否与4个定时时间之一相等。实时时钟运行到定时时间时,LCD1602显示此次用药量,蜂鸣器响起,LED闪烁,提醒用药时间到,一分钟后,实时时钟越过定时时间,实时时间与定时时间不再相等,则系统自动退出报警程序。2.3 系统结构设计系统结构由STC90C516单片机、2+2+4键盘、

20、电源、晶振电路、复位电路、LCD显示、蜂鸣器电路、发光二极等几部分构成。系统结构如图 2-2所示: 图 2-2 系统结构图 3 硬件电路的设计3.1 单片机最小系统单片机最小系统主要由STC90C516单片机、晶振电路、复位电路等构成,单片机最小系统如图 3-1所示: 图 3-1 单片机最小系统电路图3.1.1. STC90C51RC/RD+系列单片机简介STC90C51RC/RD+系列单片机是宏晶科技推出的新一代超强抗干扰、高速、低功耗的单片机,指令代码完全兼容传统8051单片机,12时钟机器周期和6时钟机器周期可以任意选择。内部集成MAX810专用复位电路,时钟频率在12MHz以下时,复位

21、脚可直接接地。STC90C51RC/RD+单片机中包含中央处理器(CPU)、程序存储器(FLASH)、数据存储器(SPAM)、定时/计数器、UART串口、I/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/1

22、2K/13K/16K/32K/40K/48K/56K/61K/字节。5、片上集成1280字节/512/256字节RAM。6、通用I/O口(35/39个),复位后为: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以下时,可省外部复位电路,复位脚可直接

23、接地。11、共3个16位定时器/计数器,其中定时器0还可以当成2个8位定时器使用。12、外部中断4路,下降沿中断或低电平触发中断,Power Down模式可由外部中断低电平触发中断方式唤醒。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)内部振荡电路反相放大器的输入端,是外接晶振的一个引脚。当

24、采用外部振荡器时,此引脚接地。XTAL2(引脚号18)内部振荡器的反相放大器输出端,是外接晶振的另一端。当采用外部振荡器时,此引脚接外部振荡源。3、控制总线 (1)ALE/(引脚号30):正常操作时为ALE功能(允许地址锁存),用来把地址的低字节锁存到外部锁存器。ALE引脚以不变的频率(振荡器频率的1/6)周期性地发出正脉冲信号。因此,它可用作对外输出的时钟信号或用于定时。但要注意,每当访问外部数据存储器时,将跳过一个ALE脉冲。ALE端可以驱动(吸收或输出电流)8个LSTTL电路。(2)(引脚号29):外部程序存储器读选通信号。在从外部程序存储器取指令(或数据)期间,在每个机器周期内两次有效

25、。可以驱动8个LSTTL电路。(3)RST/VPD(引脚号9):复位信号输入端。振荡器工作时,该引脚上持续2个机器周期的高电平可实现复位操作。此引脚还可接上备用电源。在Vcc掉电期间,由VPD 向内部RAM提供电源,以保持内部RAM中的数据。(4)/Vpp(引脚号31):为内部程序存储器和外部程序存储器的选择端。当为高电平时,访问内部程序存储器;当为低电平时,访问外部程序存储器。4 、I/O线(1) P0口(引脚号3239):单片机的双向数据总线和低8位地址总线。在访问外部存储器时实现分时操作,先用作地址总线,在ALE信号的下降沿,地址被锁存;然后用作为数据总线。它也可以用作双向输入/输出口。

26、P0口能驱动8个LSTTL负载。(2) P1口(引脚号18):准双向输入/输出口,它能驱动4个LSTTL负载。(3)P2口(引脚号2128):准双向输入/输出口。在访问外部存储器时,用作高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:外部数据存储器写选通信号。

27、P3.7:外部数据存储器读选通信号。3.1.2. 晶振电路单片机工作时,从取指令到译码再进行微操作,必须在时钟信号控制下才能有序地进行,时钟电路就是为单片机工作提供基本时钟的。单片机的时钟信号通常有两种产生方式:内部时钟方式和外部时钟方式。内部时钟方式是在单片机XTAL1和XTAL2引脚上跨接上一个晶振和两个稳频电容,可以与单片机片内的电路构成一个稳定的自激振荡器。晶振的取值范围一般为024MHz,常用的晶振频率有6MHz、12 MHz、11.0592 MHz、24 MHz等。一些新型的单片机还可以选择更高的频率。外接电容的作用是对振荡器进行频率微调,使振荡信号频率与晶振频率一致,同时起到稳定

28、频率的作用,一般选用2030pF的瓷片电容。外部时钟方式则是在单片机XTAL1引脚上外接一个稳定的时钟信号源,它一般适用于多片单片机同时工作的情况,使用同一时钟信号可以保证单片机的工作同步。时序是单片机在执行指令时CPU发出的控制信号在时间上的先后顺序。单片机的时序概念有4个,可用定时单位来说明,包括振荡周期、时钟周期、机器周期和指令周期。振荡周期:是片内振荡电路或片外为单片机提供的脉冲信号的周期。时序中1个振荡周期定义为1个节拍,用P表示。时钟周期:振荡脉冲送入内部时钟电路,由时钟电路对其二分频后输出的时钟脉冲周期称为时钟周期。时钟周期为振荡周期的2倍。时序中1个时钟周期定义为1个状态,用S

29、表示。每个状态包括2个节拍,用P1、P2表示。机器周期:机器周期是单片机完成一个基本操作所需要的时间。一条指令的执行需要一个或几个机器周期。一个机器周期固定的由6个状态S1S6组成。指令周期:执行一条指令所需要的时间称为指令周期。一般用指令执行所需机器周期数表示。单片机多数指令的执行需要1个或2个机器周期,只有乘除两条指令的执行需要4个机器周期。了解了以上几个时序的概念后,我们就可以很快的计算出执行一条指令所需要的时间。例如:若单片机使用12MHz的晶振频率,则振荡周期=1/(12MHz)=1/12us,时钟周期=1/6us,机器周期=1us,执行一条单周期指令只需要1us,执行一条双周期指令

30、则需要2us。晶振电路如图 3-3所示: 图 3-3 系统晶振电路图3.1.3. 复位电路无论是在单片机刚开始接上电源时,还是运行过程中发生故障都需要复位。复位电路用于将单片机内部各电路的状态恢复到一个确定的初始值,并从这个状态开始工作。单片机的复位条件:必须使其RST引脚上持续出现两个(或以上)机器周期的高电平。单片机的复位形式:上电复位、按键复位,此处采用上电复位。按键复位电路中,当按键没有按下时,电路同上电复位电路。如在单片机运行过程中,按下RESET键,已经充好电的电容会快速通过电阻的回路放电,从而使得RST引脚上的电位快速变为高电平,此高电平会维持到按键释放,从而满足单片机复位的条件

31、实现按键复位。单片机要复位只需要在第9引脚接个高电平持续2s 就可以实现,电容的的大小是10uF,电阻的大小是10k。所以根据公式,可以算出电容充电到电源电压的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连接图16

32、02采用标准的16脚接口,其中:第1脚:VSS为地电源。第2脚:VCC接5V正电源。第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生重影,使用时可以通过一个1K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8

33、位双向数据线。第1516脚:背光灯电源。数据位命令RSRWDB7DB6DB5DB4DB3DB2DB1DB0清屏 0 0 0 0 0 0 0 0 0 1 归位 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 A

34、C3 AC2 AC1 AC0写数据 1 0 数 据读数据 1 1 数 据 LCD1602指令与时序说明如下 : 表 3-1 LCD1602指令表LCD1602在工作的过程中,在数据线上传送数据时,需将传送数据在数据线上持续一小段时间,保证单片机的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 键盘电路在单片机应用系统中

35、,除了复位按键外,还需要其他按键,即键盘按键,以便控制系统的运行状态或向系统输入运行参数。键盘电路一般由键盘接口电路、按键(由控制系统运行状态的功能键和向系统输入数据的数字调节键组合)以及键盘扫描程序等部分组成。本系统键盘电路共有8个按键组成,按42的格式布置。键盘的电路连接如图 3-6所示: 图 3-6 系统按键电路连接图键盘的工作原理是:按下键帽时,按键内的复位弹簧被压缩,动片触点与静片触点相连,按键接通,相应键向单片机端口发送一个低电平,松开键帽,按键断开。3.4 蜂鸣器报警电路系统中单片机的P2.3脚与蜂鸣器相连,开启蜂鸣器功能。当单片机的管脚输出固定频率电平时蜂鸣器响起。声音是由振动

36、所产生的,一定频率的震动就产生了一定频率的声音,其电路连接图如图 3-7所示: 图 3-7 蜂鸣器电路连接图一般情况下,P2.3脚处于高电平,当系统进入报警时间时,单片机控制P2.3脚输出一定频率方波,蜂鸣器振动发声,实现声音报警功能。3.5 发光二极管电路发光二极管在系统中结合蜂鸣器报警同步作用,其电路连接如图 3-8所示: 图 3-8 发光二极管电路连接图发光二极管一端接电源供电,通过电阻与单片机P2.4脚连接,一般情况下,P2.4为高电平,发光二极管处于熄灭状态,当进入报警时间时,P2.4脚降为低电平,发光二极管导通亮起,其中的电阻起到对通过二极管的电流的调节作用,使得二极管正常发光。3

37、.6 定时模式装入初值的计算对于定时模式,是对机器周期计数,而机器周期与选定的主频密切相关。因此,需根据应用系统所选定的主频计算出机器周期值。现在以主频12MHz为例,则机器周期为 实际定时时间Tc = xTp。式中Tp为机器中期,Tc为所需定时时间,x为所需计数次数,x为所需计数次数。Tp和Tc一般为已知值,在求出Tp后即可求得所需计数值x,再将x求补码,即求得定时计数初值。即 例如设定时时间为Tc =5ms,机器周期Tp=1s ,可求得定时计数次数 设选用工作方式1,则n=16,则应设置的定时时间计算出值为 还需将它分解成两个8位十六进制数,分别求得低8位为B0H装入TLx,高8位为3CH

38、装入THx中。工作方式0、1、2的最大计数次数分别为8192、65536和256。 4 系统软件设计本软件所实现的功能是:单片机检测按键的输入信息,并实时地显示在LCD1602上,在系统记录下四次用药时间和每次的用药量之后,调节好系统时钟后系统开始运行,在运行的过程中,单片机将定时的四个时间与系统的实时时间相比较,相等时即报警,并显示此次用药的服用量。主程序调用子程序,子程序之间又嵌套调用,总之,各元件所对应的子程序在主程序的调用驱动作用下,协调运行工作,共同实现实现药盒的系统功能。各个程序模块的结构如图 4-1所示: 图 4-1 各程序模块结构图4.1 系统主程序主程序模块主要完成控制系统各

39、部件的初始化和实现各功能子程序的调用,也可经两重或多重嵌套调用子程序,主程序下辖多个子程序模块,系统通过运行主程序将各个子程序模块的功能协调实现。整个的系统运行在主程序的无尽循环中,不断地进行运算操作,实现各阶段的相应功能。在本系统的主程序中,随主程序运行到不同的阶段,主程序要在时钟的驱动下,首先完成对系统各个模块的初始化,之后进入到循环当中;在进入到循环后对键盘扫描子程序进行调用,扫描键盘输入信息,经运算后调用数据刷新子程序将输入信息实时地显示在LCD1602上,实现四次时间定时和和每次用药服用量的设定,然后完成对实时时间的调节;当实时时钟向前运行时,将定时时间与系统实时时间作比较,两者相等

40、时则进入报警程序。 主程序流程如图 4-2所示: 开 始 中断处理;中断次数+ 中断? Y 中断返回 N 按键按下? Y 中断次数=20? 按键扫描子程序 N 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读数据子函

41、数、初始化子函数、按键扫描子函数、中断子函数等。其中较为重要的为按键扫描子函数和中断子函数。现仅介绍按键扫描子函数和中断子函数。4.2.1. 按键扫描子函数按键扫描子函数检测2+2共4个键的输入信息。2个为时间调节按键,其中一个为功能按键,一个为调节键,当功能按键按下时,开启调节功能,随功能键按下次数不同,调节键分别对时间的时和分进行调节;另外2个为定时时间和药物用量的调节键,配合4个定时按键使用。程序流程如图 4-3所示: 开始检测s1的输入,记录输入次数s1num 判断s1num的值,利用s2调节时间的时和分 检测s3的输入,记录输入次数s3num 判断s3num的值,利用s4调节服药时间

42、和用量 结束图 4-3 按键扫描子函数程序流程图4.2.2. 中断子函数当定时器寄存器TH0/TL0溢出时,溢出标志位TF0被置位,定时器中断发生,当单片机转去执行定时器中断时,定时器溢出标志位TF0被硬件清零。在中断子函数中对变量做计数控制实现计数定时。定时器中断子程序流程如图 4-4所示: 开 始单片机执行定时器中断 向定时器TH0装入初值 向定时器TH0装入初值 变量count加1 结 束图 4-4 中断子程序流程图5 系统的调试本系统的大多软硬件的调试均在普中科技单片机开发板上完成。在开发板上实验成功后,开始焊接,简单连线即可实现功能。5.1 软件调试软件调试过程中采用逐步添加模块功能

43、程序的方法,一步步添加各功能模块的应用程序,逐步修改完善。初步软件程序仅显示时间,完成时钟的功能,后逐步添加位定义,完成所有与按键输入有关的程序,实现系统各参的可调节,再之后添加LCD1602读取数据的子程序,完成对LCD1602显示的各参的记录,完成时间定时的功能,最后添加报警提醒程序,实现报警功能。在系统软件编程的过程中,可分为以下几个阶段:1、编写简单的时钟程序,实现时钟的运行。2、在时钟的基础上,增加2个键,并添加驱动程序实现其输入功能,一个为功能键,一个为调节键;当功能键按下,启用调节键的调节功能;功能键按下1次,调节键对分钟进行调节;功能键按下2次,调节键对小时进行调节;功能键按下

44、3次,退出时钟调节,时钟在调节后的基础上开始运行。3、再增加2个键,对所需设定的时间和用药量进行调节,一个为功能键,一个为调节键,分别对小时、分钟、四种用药量共6个量进行调节。4、再增加4个键并增加报警程序。在将设定时间和用量调节好后,按下4个键中的一个,如此4次,系统即可记录4次服药过程的各参。软件调试所使用的软件为KEIL,是电子是电子方向技术人员使用较多的软件,使用版本为KeilVision4英文版,是高效的开发应用程序。这一版本还可支持很多最新的ARM芯片。KEIL的优点如下:1、KeilVision4生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时

45、更能体现高级语言的优势。2、与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。尤其是对用过汇编语言后再使用C来开发的人而言,其与汇编相比所体现出来的好处更加深刻。KEIL软件的编译界面如图 5-1所示: 图 5-1 KEIL软件编译界面图KEIL软件调试界面如图 5-2所示:图 5-2 KEIL软件调试界面图 5.2 硬件调试硬件在调试过程中,大部分的硬件工作原理都是在单片机开发板上完成的。由于开发板上集成了大部分的单片机常用的模块,启用时只需通过连线或者插拔相应的短路帽即可将该模块接入单片机系统加以调用。初步软件程序仅实现单片机系统对定时模块的控制,实现LCD

46、1602时钟的显示,随程序功能的逐步完善,逐步添加按键输入功能及用药量的调设功能,在完成之后加入对时间定时与用药量记录功能,然后加入定时显示提醒功能,最后完成蜂鸣器的声音报警提醒功能。系统硬件的验证过程随系统软件的完善过程可分为以下几个阶段:1、连接LCD1602模块到最小单片机系统,烧录程序,验证LCD1602的显示功能,并随软件的修改完善,LCD1602最终正常显示。2、连接42键盘到系统中,随软件的不断完善。逐步启用8个按键。3、连接LED发光二极管到系统中,并代替蜂鸣器验证定时和报警功能。4、连接蜂鸣器到系统中,并在系统中添加相应的驱动程序,验证系统的声音报警功能。系统的按键模块硬件实

47、物图如图 5-3所示: 图 5-3 系统按键模块硬件实物图系统单片机最小系统如图 5-4所示: 图 5-4 单片机最小系统硬件实物图随系统软件功能的增加,逐步向系统中添加其他功能模块,最后添加系统的报警功能模块,报警模块硬件实物图如图 5-5所示:图 5-5 报警模块硬件实物图5.3 调试结果电路焊接完成后,经简单调试后,系统可以根据按键的输入信息正常的调节时间和用药量,并且在有定时键按下时,记录当前的显示内容。在调节好系统的时钟之后,最后一次按下系统时钟调节功能键,系统在调节好的时钟时间基础上向前运行,在报警时间到来时系统可以正常的发出声光的报警信息,同时显示设定的用药量,并在以后每天的同一

48、时间再次运行到该时间时启动相同的报警程序。LCD1602显示界面如图 5-6所示: 图 5-6 LCD1602显示界面图在LCD1602显示界面图中,第一行显示第二行的功能,dsg为英文dosage的缩写,表示用量,共4个数据,表示四种药的用量,其调节范围为09;其后为时间显示区,采用24小时制。6 结论与展望本系统以STC90C516为中心,具有LCD1602时间显示、四次定时、蜂鸣器提醒用药时间、显示四种药物用药量的功能。所使用的STC90C516系列单片机抗干扰能力超强,低功耗,高可靠。本系统只需一次设置,在使用过程中不需再进行除服药外的任何操作。本设计主要完成的工作有:1、通过单片机内

49、部定时器运行的时钟。2、使用LCD1602同步显示时间。3、使用LCD1602将按键输入信息实时显示在显示屏上,包括时间调整,用药量的调整,追求防呆设计。4、按键完成对四次时间的定时。5、蜂鸣器在系统设定时间进行声光信号的报警。随着近年来我国人口老龄化的日益严重以及人们在健康观念上的日益重视,电子药盒已成为一个很具有现实意义和使用价值的电子装置,从本文的课题方向出发,还可以精化以下几个方面的工作:1、从智能药盒的外形来看,家庭用的智能药盒还可以在系统的外部更加的简化,减少使用所需的按键,配置其他更合适更实用的显示模块降低资源耗费,并沿用一次设置而使用过程不用进行其他操作的思想,简化使用负担。2

50、、从系统的内部程序来看,本系统囿于我的水平和能力未能将系统程序的逻辑和算法优化到更高水平,该系统可进一步优化算法,使用更低级更便宜的单片机,降低系统所需的成本。3、从系统功能来看,本系统还便于添加其他的应用,如集成DS1302添加类似万年历的功能,集成测温模块添加对家庭室内温度的监测功能等,可以更充分的的利用单片机的资源,并增加系统的可用性。 致谢 毕业设计是对毕业生所学专业知识的一个总结、归纳、深化的过程,其中包含了我们需要时时加强的东西:诸如分析解决问题能力、查阅文献的能力、统筹编辑的能力和总结经验的能力等等。在毕业设计的数周期间,我们得到了指导老师的细心指导和关怀,特别是在课题的设计过程

51、中,对其中的各种技术问题和疑惑,指导老师都花费了大量的时间和精力一一为我们解答,让我在这个过程中对单片机控制系统方面的知识有了一次新的深入和全面的提升,并能够逐渐将课本上所学的理论知识与生产中的实际问题相结合,从而为以后步入社会解决工作中遇到的实际问题打下良好的基础。在此,向指导老师成凌飞表示最衷心的感谢!也感谢四年来所有教务老师,并对互联网上参考的资料的作者一同进行感谢,正是你们的大公无私,过去和现在的帮助,才使我的制作没走太多的弯路。在此还要向帮助我的徐有为、王双才、孙振广等电信专业所有同学致以真诚的谢意!正是你们对我提供的软硬件和设计思想技术的支持,才让我能最终完成课题的设计任务。再次对

52、成凌飞老师的悉心指导表示感谢!由于时间和知识水平所限,设计中不可避免会出现纰漏和错误,恳请各位审阅老师悉心指正。 参考文献1 郭天祥. 51单片机C语言教程M. 电子工业出版社,2009.2 唐立民, 李广羽. 基于单片机的模块化智能药盒的开发J. 产业与科技论坛,2011.3 杨凌霄, 王莉. 微型计算机原理及应用M. 中国电力出版社,2008.4 戴仙金, 冼进. 51单片机及其C语言程序开发实例M. 清华大学出版社,2008.5 王为青, 程国钢. 单片机KEIL Cx51应用开发技术M. 人民邮电出版社,2007.6 雷丽文. 微机原理与接口技术. 电子工业出版社M,1997.7 候殿

53、有. 单片机C语言应用程序设计M. 人民邮电出版社,2010. 8 何树森. 电子电路设计速成实用手册M. 金盾出版社,2006. 9 刘修文. 实用电子电路设计制作300例M. 中国电力出版社,2004. 10 刘福太. 电子电路495例M. 科学出版社,2007. 11 纪宗南. 单片机外围器件使用手册M. 北京航空航天大学出版社,1990. 12 赵亮. 跟我学51单片机(七)LCD1602液晶显示模块J. 电子制作,2011. 13 杨刚. 电子系统设计与实践M. 电子工业出版社,2009. 14 阎石. 数字电路技术基础(第五版)M. 高等教育出版社,1983. 15 童诗白, 华成

54、英. 模拟电子技术基础(第四版)M. 高等教育出版社,1980. 附录1 系统单片机与按键电路图 附录2 系统报警与显示电路图 附录3 编程程序#include /51寄存器文件#include typedef unsigned char BYTE;/用BYTE代替unsigned char typedef unsigned int WORD;/WORD代替unsigned inttypedef bit BOOL ;/用BOOL代替bit BYTE num,count,count,count1,s1num,s3num,dsg1,dsg2,dsg3,dsg4,turn;char shi,fen,

55、miao,shi1,fen1,shi2,fen2,shi3,fen3,shi4,fen4,shi4;sbit rs= P26; /复位端sbit rw = P25; /写数据端sbit ep = P27;/使能端sbit s1 = P10; /位定义sbit s2 = P11;sbit s3 = P12;sbit s4 = P13;sbit s5 = P14;sbit s6 = P15;sbit s7 = P16;sbit s8 = P17;sbit s9 = P24;sbit s10 = P23;BYTE code dis1 = dsg tim; /LCD初始化BYTE code dis2 = 0-0-0-0 00:00:00;char a4,b4,c4,d4; /四次时间定时待赋值变量/char e4=0,0,0,0;/*延时函数*/void delay(BYTE ms)BYTE i;while(ms-)for(i = 0; i 250; i+)_nop_();_nop_(); /空执行消耗CPU时间达到等待的效果_nop_(

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!