c语言和单片机c语言的区别_单片机编程代码大全

c语言和单片机c语言的区别_单片机编程代码大全智能婴儿摇篮设计摘 要本设计以AVR单片机为核心,配合传感器测量技术、结合独特的机械结构使本设计工作起来方便快捷,安全稳定,功耗低,更加适用于对婴儿的监控护理。通过安装在摇篮上的多种传感器和信号采集电路来产生控制信号并传输给单片

智能婴儿摇篮设计   摘 要   本设计以AVR单片机为核心,配合传感器测量技术、结合独特的机械结构使本设计工作起来方便快捷,安全稳定,功耗低,更加适用于对婴儿的监控护理。通过安装在摇篮上的多种传感器和信号采集电路来产生控制信号并传输给单片机,单片机输出相应的控制信号并配合机械结构,从而实现摇篮对婴儿的智能监护等功能,满足了控制系统稳定性和精确控制的要求。   随着社会经济的发展,人们的生活也都逐步提升,许多拥有婴幼儿的家庭都希望孩子有个良好的成长环境,他们需要一个不仅舒适而且具有人工智能的摇篮,来为宝宝及其监护人提供方便。现代大部分人都需要工作,晚上需要充足的睡眠,但宝宝的睡眠时间不稳定,这个问题困扰大部分拥有宝宝的家庭。为了使宝宝及其监护人都能够方便,所以设计了本产品,以便监护人在晚上能够安心睡眠,而宝宝也可以及时得到体贴的照顾。   本论文就面向婴儿智能护理设计展开深入探讨和研究。主要工作包括以下几个部分:第一章分析智能婴儿护理技术发展现状,给出发展智能婴儿护理装置的意义,描述课题发展前景和论文研究的主要工作;第二章对智能婴儿摇篮进行需求分析,确定设计方案;第三章就智能婴儿摇篮设计进行了阐述;第四章给出测试方法与工具,进行功能模块调试;最后对本设计加以总结,并给出了进一步研究与设计的建议,以实现系统进一步优化。   关键词:婴儿护理;智能监控:AVR单片机   目 录   1引言4   1.1 课题背景及研究意义4   1.1.1 课题背景4   1.1.2 课题研究意义5   1.2 相关问题的研究现状和发展趋势5   1.2.1 研究现状5   1.2.2 发展趋势6   1.3 作品功能与特色6   2智能婴儿摇篮的总体设计8   2.1 系统设计要求8   2.1.1 系统总体框架设计8   2.1.2系统机械结构的设计8   2.2 AVR 及其开发环境简介9   2.2.1 AVR单片机简介系统9   2.2.2 ATmega16单片机的特点11   2.2.3 AVR集成开发环境的简介13   2.3 控制系统设计17   3智能婴儿摇篮主要功能模块的设计与实现19   3.1 系统总体结构19   3.2 硬件模块设计20   3.2.1 电源模块设计与实现20   3.2.2 单片机控制模块设计与实现系统总体程序设计22   3.2.3-时钟控制单设计与实现22   3.2.4 直流电机驱动的设计与实现24   3.2.5 音频检测模块设计与实现26   3.2.6 报警电路设计原理图28   3.3 软件模块设计28   3.3.1 晶振的配置28   3.3.2 系统总体程序设计29   3.3.3 电机驱动模块程序设计30   4 系统测试方法及工具32   结 论33   参考文献34   附录一:电路原理图35   附录二:单片机程序36   1引言   课题背景及研究意义   随着社会经济的发展,人们的生活也都逐渐提高,许多拥有婴幼儿的家庭都希望孩子有个良好的成长环境,但是年青的父母需要同时兼顾宝宝和家庭生活感到非常疲惫,他们需要一个不仅舒适而且具有人工智能的摇篮。智能婴儿摇篮可以提供给宝宝舒适摇晃,又可以通过音乐和玩具锻炼视力和智力发育,使得妈妈们也可腾出手来处理家务或者休息。从而大大的减轻了婴幼儿父母的劳动负担,促进了婴儿的深度睡眠,提高了大人和小孩的睡眠质量,为婴儿的健康成长提供保证。   1.1.1 课题背景   国内外婴儿摇篮的设计者主要从婴儿摇篮科学的供应婴儿正确睡姿和婴儿摇篮功能的设计两大方面来进行研究。国内外常用的婴儿摇篮其形状略似篮子,多用木、竹、柳条以及金属制作。摇篮的主要特点是可以有节奏地左右摇摆,使婴儿易于入睡。早期的摇篮利用挖空的树干制成,以后又发展为各种材料制成的长方形无盖箱体,并装有可以拆除的摇杆。随着时代的变迁,在摇篮的护栏或镶板上,也经常饰有不同类型的花纹及图案,并涂有艳丽明快的色彩。早期的摇篮多用绳索吊于房梁或横木杆上,后来多悬挂于木制或金属制的框架内。   它的动力驱动有两种,一个是在摇篮底放一块磁铁,在支架中央放一块电磁铁,并会发出脉冲磁场,当该脉冲频率与摇篮晃动频率相同时,该脉冲磁场会对磁铁产生一个吸力与斥力,使摇晃不断得到动力而摇晃不止。它是由一个下座连支架、一个摇篮、一个平衡块与平衡杆组成,下座的支架有一个轴承通过轴与摇篮相连接,并且可以自由转动,平衡块是可以调节重量,使摇篮的重心处于转轴上。另一种是用一个汽车雨刷的电动机,使其每次晃动时能推动摇篮的摇晃。动力部分是用一个汽车用雨水划水器安装在轴承处,每当划水器将滑臂划动一下,就会带动摇篮晃动一下。如果调节划水器划动频率,即可使摇篮晃动频率改变。这二种方法均有结构简单、安全有效的优点。   为了提高婴儿摇篮的智能性和可靠性,使其功能更加全面,摇篮应能任意调节摇篮角度,可将摇篮沿X轴与Y轴倾斜任意角度;有自动声控器,当婴儿哭时会自动晃动,一旦婴儿熟睡10分钟后会逐渐停止晃动;有电子监视探头观察婴儿睡觉状况;当婴儿大哭时会有声控器传向监护人;当婴尿床时会自动报警;当婴儿体温达到38℃以上时会自动报警,可以有效降低婴儿猝死综合症的发病率;能自动控温在25℃左右;床垫高度可自动调节便于家长为婴儿更换尿布。   1.1.2 课题研究意义   很多父母认为,宝宝还小,总要和家人睡在一起,这样才方便照顾,随时知道他的需求,其实,与家人同床会影响宝宝的生长发育,而智能婴儿摇篮可以帮助父母会随时知晓宝宝在独睡过程中是否有状况发生。   首先,容易缺氧,大人呼出的气体中二氧化碳含量较高,而宝宝的大脑发育正需要更多的氧气,和宝宝同床睡眠时,很容易造成宝宝大脑供氧不足,进而影响身体的正常发育。其次,有空息危险,同床睡眠过程中,大人会因为身体翻动而压到宝宝,很容易导致窒息的危险。另外,睡眠不良,两人甚至三人同床,很容易互相影响,比如打鼾、睡觉“不老实”,特别是对神经系统尚在发育的宝宝来说,会导致睡眠不稳、半夜惊醒的状况,不利于身心的健康发育。还有可能造成疾病传染,日常生活中,大人接触的事物环境较为复杂,即使注意清洁,身上也难免会携带很多细菌,宝宝的抵抗能力还很弱,很容易被细菌感染。   尤其要在保证婴儿充足的睡眠同时也保证监护人有充足的睡眠,有些婴儿对自然环境不适应,昼夜颠倒,父母白天上班他睡觉,父母晚上休息他闹腾,让监护人很难有良好的休息。有些婴儿休息时间安排不当,有的晚上提前入睡,半夜睡醒,没人哄就哭闹,也影响了监护人的正常休息。C   多功能婴儿摇篮是一种能自动晃动带定时、声控、MP3播放、尿床报警功能为体的婴儿摇篮,在监护人忙于其他事情时,能有效替代监护人护理婴儿。   1.2 相关问题的研究现状和发展趋势   1.2.1 研究现状   智能婴儿摇篮和普通摇篮相比,功能强大,声控、遥控、电动、音乐集于一体,能够很好的为宝宝及其监护人提供很大的方便,使婴儿和监护人都能有充足的睡眠环境,使睡眠问题不再困扰婴儿的健康成长和监护人的正常作息。随着社会经济的发展,文化的进步,越来越多拥有宝宝的家庭需要一款智能婴儿摇篮,在未来将体现其优越性。   1.2.2 发展趋势   婴儿是一个相对较大的弱势群体,因此如何科学,合理的照顾婴儿是一门学问。在国内外市场也有一些婴儿用的摇篮,功能较少,达不到智能化,摇摆幅度也没有进行过检测,我们针对天津,北京两地的婴儿市场进行考察,发现市场上的大部分摇篮摇摆幅度大小不一。主要依靠用户主观感觉来决定系统的运行,不具有科学性,因此并没有得到太广泛的应用。本作品将可编程控制器和传感器检测技术应用到宝宝摇篮,是目前市场上所没有的,并且本作品所采用的盛群单片机处理方式相对目前的简单的数字芯片处理方式比较而言更加方便快捷,安全稳定,功耗低,更适用于对婴儿的监控护理,婴儿一直是一个大的消费群体,故它具有很大开发价值,必将为有婴儿的家庭带来福音。   1.3 作品功能与特色   本设计运用ATMEL公司提供的ATmega16单片机,设计一个智能婴儿摇篮来应用于短时间代替人员的护理。本文确定了系统设计的要求,介绍了系统设计的编程软件及其开发环境,分析了系统的基本工作原理,从硬件和软件两个方面详细地阐述了系统的制作思路,并通过实验验证、测试了系统所能实现的功能和达到的技术指标。   (1)作品功能:床身为大框摇篮;与传统摇篮床相比更宽敞、舒适、方便、安全,使用时间更长:具有摇摆功能的同时也更具娱乐性;1、低位床板可作矮床或玩具储物框使用;2、高位床板可作茶儿或桌子使用:3、亲子床可依家长意愿或依据室内家俱、成人床摆设,按需下翻任意长边护栏成为与成人床连接的亲子床,便于家长护理;弧形支架可摇可定:专备有旋钮式支撑足,可拆可分,从而实现摇、定自如;功能转换简便快捷:采用旋钮、合页、塑料锁紧套、弹簧插销、高强度活动金属挂钩等连接方式实现功能快速自由转换,无需另配工具,非常方便。床板高低两档调节:采用高强度活动金属挂钩可轻松快速实现床板两档调节;带加长支架:方便孩子成长使用:带蚊账:保护孩子不受蚊虫叮咬;带护套、床围:婴儿床状态或矮床状态可使用护套和床围,安全又美观;床体设计整体造形简洁流畅、富于美感;配带刹车万向轮:方便婴儿床移动和固定。工作方式安全简单,稳定可靠。软件与硬件相结合,管理、使用方便。盛群单片机的运用使设计具有强大的扩展性。安装方便,功耗小。(2)作品特色:平稳均衡摇动,可使婴儿的大脑神经调节平稳、入睡迅速。实验中发现,使用电动摇篮入睡的时间,比传统的手动摇篮入睡的时间可提前2-4分钟。经专家证实,传统的手动摇篮摆幅大小不稳定,摆动速度也不稳定。在摇动过程中,小孩平衡调节神经,不断地进行调节、复位,容易出现头昏,吐奶现象。而自动摇篮可根据婴儿的需要而调节稳定的摆幅,匀速平衡摆动,对婴儿脑神经的起到良好的保护作用。因此,婴儿入睡快、睡眠质量好。优美动听的音乐催眠,符合现代早期教育观念,对婴儿进行音乐和美的熏陶,促进婴儿脑神经发育,激发潜能。妈妈的好帮手,妈妈的怀抱及摇晃是给宝宝最好的抚慰,但在现在快节奏的生活方式下,年青的父母需要同时兼顾宝宝和家庭生活感到非常疲惫,而智能婴儿摇篮则可以帮到爸爸妈妈。智能婴儿摇篮可以提供给宝宝舒适摇晃,使妈妈们也可腾出手来处理家务或者休息。   2智能婴儿摇篮的总体设计   基于智能控制越来越普遍的发展形势,本文设计了一种智能婴儿摇篮,它能代替护理人员短时间内对婴儿进行监护,并在婴儿哭闹时对护理人员远程报警,能较好的实现无人监护功能。   2.1 系统设计要求   在设计系统时,要求设计出的系统具有良好的实际应用价值。这就要求我们能够提出一个完善的设计方案,在技术上既是可行的,又是可靠的;另一方面,又需要系统在能够较好的满足实际工作要求的同时,其实现越简单越好。从这种平衡原则出发,本文确定所设计的基于MCU智能婴儿摇篮的设计要求。   2.1.1 系统总体框架设计   多种传感器和信号采集电路通过宝宝发出的信号进行处理,然后送给单片机,单片机对采集来的信号进行判别,若是宝宝的啼哭声,首先会发出控制信号,促使报警线路工作,发出报警信号,提示监护人宝宝的状态:同时单片机将另外发出三路信号,其中一路控制照明线路工作,判断外部环境,如是夜晚则打开照明电路;其中一路控制各部分电动机的正常工作,通过机械结构实现摇篮的摇摆;另外一路控制音乐线路工作,通过音乐芯片实现在宝宝啼哭时音乐的播放。   2.1.2系统机械结构的设计   为了婴儿的生长发育,机械结构得保证摇篮参数严格符合国际标准。   所有零件都事先用UG软件进行建模,使机械结构非常直观并进行精确测试,保证制造的精准度,最大程度减少缺陷。机械的连接采用H形铝,平行度、垂直度和同轴度均严格精度要求(±0.1 mm),以达到摇摆频率和角度符合测试要求。如图2-1所示。
c语言和单片机c语言的区别_单片机编程代码大全
c语言和单片机c语言的区别_单片机编程代码大全   图2-1 婴儿摇篮摇摆机械结构   2.2 AVR 及其开发环境简介   本设计采用ATMEL公司的ATmega16单片机作为核心处理件,对采集到的数据进行处理和传输。   2.2.1 AVR单片机简介系统   ATMEL公司是世界上有名的生产高性能、低功耗、非易失性存储器和各种数字模拟IC芯片的半导体制造公司。于1997年推出全新配置的、采用RISC(Reduced Instruction Set CPU,精简指令集)结构的新型单片机。   RISC技术综合了半导体集成技术和软件技术。它是相对于CISC(Complex Instruction Set CPU,复杂指令集计算机)而言的。RISC通过优先使用频率最高的简单指令、避免复杂指令、采用固定指令长度、减少指令格式和寻址方式等方法来缩短指令周期,提高处理器的运算速度。传统的CISC结构,单片机外部振荡器的时钟被分频降低到内部执行周期。AVR单片机没有对外部时钟分频,通过一个周期内执行一条指令,因此,AVR单片机具有接近1MIPS/MHz的高速处理能力。   AVR单片机采用32个通用寄存器组成的快速存取RISC寄存器,每一个寄存器都可以代替一个累加器工作,使得处理器可以在执行当前指令时取出要执行的下一条指令,从而避免了传统的基于累加器的单片机因累加器和存储器之间的数据传输带来的瓶颈效应,提高了系统的性能。所有的寄存器都直接与算逻单(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC微控制器最高至10倍的数据吞吐率。   AVR单片机为了获得最高的性能以及并行性,采用哈佛(Harvard)总线结构,程序存储器和数据存储器是分开的,具有独立的数据和程序总线。微处理器直接访问全部程序存储器和数据存储器。程序存储器里的指令通过一级流水线运行。CPU在执行一条指令的同时读取下一条指令(在本文称为预取)。这个概念实现了指令的单时钟周期运行。程序存储器是可以在线编程的FLASH。此外,他还具有ISP(In System Programming,系统内编成)的功能,即使在程序运行时,也可以对系统进行重新编程。ATmega系列的单片机是AVR中的高端产品,在其部分单片机中集成了在线调试单,通过JTAG即可实现在线调试与程序的下载功能。   AVR单片机支持C语言、汇编语言和Basic等高级语言编程。其开发软件工具有ICCAVR、IARAVR和Code Vision AVR等。采用高级语言编程能有效的进行系统的开发和程序的移植,同时也是单片机发展的一个趋势。   AVR单片机是以Atmel高密度非易失性存储器技术生产的。片内ISP Flash允许程序存储器通过ISP串行接口,或者通用编程器进行编程,也可以通过运行于AVR内核之中的引导程序进行编程。引导程序可以使用任意接口将应用程序下载到应用Flash存储区(Application Flash Memory),在更新应用Flash存储区时引导Flash区(Boot Flash Memory)的程序继续运行,实现了RWW操作。通过将8位RISC CPU与系统内可编程的Flash集成在一个芯片内,成为一个功能强大的单片机,为许多嵌入式控制应用提供了灵活而低成本的解决方案。   因此,通过以上的介绍可见,在8位微控制领域,AVR单片机正越来越多的开始取代传统的51内核的单片机,进而成为控制领域的主流。   2.2.2 ATmega16单片机的特点   ATmega16是基于增强的AVR RISC结构的低功耗8位CMOS微控制器。其内核具有丰富的指令集和32个通用工作寄存器,所有的寄存器都直接与算术逻辑单(ALU,Arithmetic Logical Unit)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC微控制器高至10倍的数据吞吐率。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达1MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。基于以上的优点,本设计主选ATmega16作为核心器件。   ATinega16有如下特点:   16K 字节的系统内可编程Flas(具有同时读写的能力,即RWW),512字节EEPROM,1K字节SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益(TQFP封装)的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及六个可以通过软件进行选择的省电模式。工作于空闲模式时CPU停止工作,而USART、两线接口、A/D转换器、SRAM、T/C、SPI端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作;在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块处于休眠状态;ADC噪声抑制模式时终止CPU 和除了异步定时器与ADC以外所有I/O模块的工作,以降低ADC转换时的开关噪声;Standby模式下只有晶体或谐振振荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启动能力;扩展Standby模式下则允许振荡器和异步定时器继续工作。先进的RISC结构131条指令,大多数指令执行时间为单个时钟周期。全静态工作。工作于16 MHz时性能高达16 MIPS,只需两个时钟周期的硬件乘法器。非易失性程序和数据存储器16KB的系统内可编程Flash,擦写寿命:10000次。具有独立锁存定位的可选Boot代码区,通过片上Boot程序实现系统内编程,真正的同时读写操作。512B的EEPROM,擦写寿命:次。1KB的片内SRAM,可以对锁存定位进行编程以实现用户程序的加密。JTAG接口(与IEEE1149.1标准兼容)符合JTAG标准的边界扫描功能。支持扩展的片内调试功能。通过JTAG接口实现对Flash、EEPROM、熔丝位和锁存定位的编程。外设特点两个具有独立预分频器和比较器功能的8位定时器/计数器。一个具有预分频器、比较功能和捕捉功能的16位定时器/计数器。具有独立振荡器的实时计数器 RTC。 四通道PWM。8路10位ADC和8个单端通道。TQFP封装的7个差分通道2个具有可编程增益(1x,10x,或200x)的差分通道。面向字节的两线接口。两个可编程的串行USART.可工作于主/从机模式的SPI串行接口。具有独立片内振荡器的可编程看门狗定时器。片内模拟比较器。特殊的处理器特点上电复位以及可编程的掉电检测。片内经过标定的RC振荡器。片内/片外中断源。6种睡眠模式:空闲模式、ADC 噪声抑制模式、省电模式、掉电模式、Standby模式以及扩展的Standby模式。1/O 和封装40引脚PDIP封装,32个可编程的1/O口。工作电压4.5-5.5V.速度等级0-16 MHz。 ATmega16在1MHz、3V、25℃时的功耗正常模式:1.1mA。空闲模式:0.35 mA。掉电模式:<IμA。   2.2.3 AVR集成开发环境的简介   ATmega16具有一整套的编程与系统开发工具,包括:C语言编译器、宏汇编、程序调试器/软件仿真器、仿真器及评估板。   ICCAVR是一种使用符合ANSI标准的C语言来开发微控制器(MCU)程序的一个工具,它有以下几个主要特点:ICCAVR是一个综合了编辑器和工程管理器的集成工作环境(IDE),是一个纯32位的程序,其可在Windows 9X/NT/2000/XP下运行。源文件全部被组织到工程之中,文件的编辑和工程的构筑也在IDE环境中完成。编译错误显示在状态窗口中,并且当你用鼠标单击编译错误时光标会自动跳转到编辑窗口中引起错误的那一行。提供了全部的库源代码及一些简单的应用实例,并且用户能够根据库源代码对ICCAVR提供库函数进行裁剪和扩充。   在编辑器安装完成后,得到的是一个只可以使用45天的未注册版本的集成开发环境。因此,应当对其进行注册,首先启动编译器的集成开发环境(IDE),单击菜单栏 Help/Register Software;然后,单击Continue按钮进入注册机界面,在注册栏填入软件的序列号对应得注册码,单击License后完成编译软件的注册。   ICCAVR编辑器的使用:首先,创建工程文件,从IDE的菜单“Project”中选择“New”命令,在对话框中指定工程存放的文件夹以及工程名称。在工程管理窗口中会出现三个子目录,Files、Headers、Documents。然后,从IDE的“File”菜单中选择“Open”或“New”,打开已编辑好的源文件或直接在新建的编辑区内键入程序。在编辑窗口中单击鼠标右键,在菜单中选择“Add To Project”命令,将源文件添加到工程中。   最后,编译源文件。从IDE的中选择“Options”命令,在Target标签下的Deviceconfiguration栏目中选择ATmega16型号的单片机。再单击“Project”菜单下的“Build All”命令,编译工程中的全部文件(File 文件夹中的文件)。如果配置“In System Programming”对话框的Auto Program After Compile项,通过自制的ISP下载线将编译后的程序下载到目标板,完成自动下载过程。   中断及响应周期:   快速访问寄存器文件包括32个8位通用工作寄存器,访问时间为一个时钟周期。从而实现了单时钟周期的ALU 操作。在典型的ALU操作中,两个位于寄存器文件中的操作数同时被访问,然后执行运算,结果再被送回到寄存器文件。整个过程仅需一个时钟周期。   寄存器文件里有6个寄存器可以用作3个16位的间接寻址寄存器指针以寻址数据空间,实现高效的地址运算,其中一个指针还可以作为程序存储器查询表的地址指针。这些附加的功能寄存器即为16位的X、Y、Z寄存器。ALU支持寄存器之间以及寄存器和常数之间的算术和逻辑运算。ALU 也可以执行单寄存器操作。运算完成之后状态寄存器的内容得到更新以反映操作结果。   程序流程通过有/无条件的跳转指令和调用指令来控制,从而直接寻址整个地址空间。大多数指令长度为16位,亦即每个程序存储器地址都包含一条16位或32位的指令。程序存储器空间分为两个区:引导程序区(Boot区)和应用程序区。这两个区都有专门的锁定位以实现读和读/写保护。用于写应用程序区的SPM指令必须位于引导程序区。   在中断和调用子程序时返回地址的程序计数器(PC)保存于堆栈之中。堆栈位于通用数据SRAM,因此其深度仅受限于SRAM的大小,在复位例程里用户首先要初始化堆栈指针   AVR有一个灵活的中断模块,控制寄存器位于1/O空间,状态寄存器里有全局中断使能位。每个中断在中断向量表里都有独立的中断向量。各个中断的优先级与其在中断向量表的位置有关,中断向量地址越低,优先级越高。   1/O存储器空间包含64个可以直接寻址的地址,作为 CPU 外设的控制寄存器、SPI,以及其他I/O功能。映射到数据空间即为寄存器文件之后的地址0x20-0x5F。AVR ALU与32个通用工作寄存器直接相连。寄存器与寄存器之间、寄存器与立即数之间的ALU 运算只需要一个时钟周期。ALU操作分为3类:算术、逻辑和位操作。此外还提供了支持无/有符号数和分数乘法的乘法器。具体请参见指令集。状态寄存器包含了最近执行的算术指令的结果信息。这些信息可以用来改变程序流程以实现条件操作。如指令集所述,所有ALU 运算都将影响状态寄存器的内容。这样,在许多情况下就不需要专门的比较指令了,从而使系统运行更快速,代码效来更高。   AVR有不同的中断源。每个中断和复位在程序空间都有独立的中断向量,所有的中断事件都有自己的使能。当使能位置位,且状态寄存器的全局中断使能位I也置位时,中断可以发生。根据程序计数器PC的不同,在引导锁定位BLB02或BLB12被编程的情况下,中断可能被自动禁止。这个特性提高了软件的安全性。详见P247”存储器编程”的描述,程序存储区的最低地址缺省为复位向量和中断向量。完整的向量列表请参见P43“中断”   列表也决定了不同中断的优先级。向量所在的地址越低,优先级越高。RESET具有最高的优先级,第二个为INTO-外部中断请求0。通过置位MCU 控制寄存器(MCUCR)的IVSEL,中断向量可以移至引导Flash的起始处。编程熔丝位BOOTRST也可以将复位向量移至引导Flash的起始处。具体参见P234“支持引导装入程序,在写的同时可以读的自我编程能力”。任一中断发生时全局中断使能位I被清零,从而禁止了所有其他的中断。用户软件可以在中断程序里置位I来实现中断嵌套。此时所有的中断都可以中断当前的中断服务程序。执行RETI指令后I自动置位。   从根本上说有两种类型的中断。第一种由事件触发并置位中断标志。对于这些中断,程序计数器跳转到实际的中断向量以执行中断处理程序,同时硬件将清除相应的中断标志。中断标志也可以通过对其写“1”的方式来清除。当中断发生后,如果相应的中断使能位为“0”,则中断标志位置位,并一直保持到中断执行,或者被软件清除。类似的,如果全局中断标志被清零,则所有已发生的中断都不会被执行,直到I置位,然后挂起的各个中断按中断优先级依次执行。第二种类型的中断则是只要中断条件满足,就会一直触发。这些中断不需要中断标志。若中断条件在中断使能之前就消失了,中断不会被触发。AVR 退出中断后总是回到主程序并至少执行一条指令才可以去执行其他被挂起的中断。要注意的是,进入中断服务程序时状态寄存器不会自动保存,中断返回时也不会自动恢复。这些工作必须由用户通过软件来完成。   AVR中断响应时间最少为4个时钟周期。4个时钟周期后,程序跳转到实际的中断处理例程。在这4个时钟期期间PC自动入栈。在通常情况下,中断向量为一个跳转指令,此跳转需要3个时钟周期。如果中断在一个多时钟周期指令执行期间发生,则在此多周期指令执行完毕后MCU才会执行中断程序。若中断发生时MCU处于休眠模式,中断响应时间还需增加4个时钟周期。此外还要考虑到不同的休眠模式所需要的启动时间。这个时间不包括在前面提到的时钟周期里。中断返回需要4个时钟。在此期间PC(两个字节)将被弹出栈,堆栈指针加二,状态寄存器SREG的I置位。   AVR ATmega16的存储器:系统内可编程的Flash程序存储器ATmega16具有16K 字节的在线编程Flash,用于存放程序指令代码。因为所有的AVR指令为16位或32位,故而Flash组织成8Kx16位的形式。用户程序的安全性要根据Flash程序存储器的两个区:引导(Boot)程序区和应用程序区,分开来考虑。SRAM数据存储器前1120个数据存储器包括了寄存器文件、I/O存储器及内部数据SRAM。起始的96个地址为寄存器文件与64个I/O存储器,接着是1024字节的内部数据SRAM。数据存储器的寻址方式分为5种:直接寻址、带偏移量的间接寻址、间接寻址、带预减量的间接寻址和带后增量的间接寻址。寄存器文件中的寄存器R26到R31为间接寻址的指针寄存器。直接寻址范围可达整个数据区。带偏移量的间接寻址模式能够寻址到由寄存器Y和Z给定的基址附近的63个地址。在自动预减和后加的间接寻址模式中,寄存器X、Y和Z自动增加或减少。ATmega16的全部32个通用寄存器、64个I/O 寄存器及1024个字节的内部数据SRAM可以通过所有上述的寻址模式进行访问。EEPROM数据存储器ATmega16包含512字节的EEPROM数据存储器。它是作为一个独立的数据空间而存在的,可以按字节读写。EEPROM的寿命至为次擦除周期。EEPROM的访问由地址寄存器、数据寄存器和控制寄存器决定。若程序执行掉电指令时EEPROM的写操作正在进行,EEPROM的写操作将继续,并在指定的写访问时间之前完成。但写操作结束后,振荡器还将继续运行,单片机并非处于完全的掉电模式。因此在执行掉电指令之前应结束EEPROM的写操作。I/O 存储器   ATmega16所有的I/O及外设都被放置于I/O空间。所有的I/O位置都可以通过IN与OUT指令来访问,在32个通用工作寄存器和I/O之间传输数据。地址为0x00-0x1F的I/O寄存器还可用SBI和CBI指令直接进行位寻址,而SBIS和SBIC则用来检查某一位的值。更多内容请参见指令集。使用 IN 和OUT 指令时地址必须在0x00-0x3F 之间。如果要象SRAM 一样通过LD 和ST 指令访问I/O 寄存器,相应的地址要加上 0x20。   电源管理及睡眠模式:   睡眠模式可以使应用程序关闭MCU 中没有使用的模块,从而降低功耗。AVR具有不同的睡眠模式,允许用户根据自己的应用要求实施剪裁。进入睡眠模式的条件是置位寄存器MCUCR的SE,然后执行SLEEP指令。具体哪一种模式(空闲模式、ADC 噪声抑制模式、掉电模式、省电模式、Standby 模式和扩展 Standby 模式)由MCUCR的SM2、SM1和SMO决定,如Table 13 所示。使能的中断可以将进入睡眠模式的MCU 唤醒。经过启动时间,外加4个时钟周期后,MCU 就可以运行中断例程了。然后返回到SLEEP的下一条指令。唤醒时不会改变寄存器文件和SRAM的内容。如果在睡眠过程中发生了复位,则 MCU 唤醒后从中断向量开始执行。   2.3 控制系统设计   婴儿摇篮结构电机的选择:   电机作为机器人的执行件,在机器人中常选用直流电机、步进电机或者伺服电机,下面将对几种电机进行比较,见表2-2。   表 2-2 常用电机类型对比表类型调速范围控制精度价格直流电机宽一般较便宜步进电机一般较高较贵伺服电机较宽高很贵   直流电机是最简单的一种电机,直流电源供电,改变电源的方向和大小即改变电机的运动方向和速度。借助于电子控制电路的作用,这类电机用于录音机、录相机、唱机或激光唱机等固定转速的机器或设备中,也用于变速范围很宽的驱动装置,如小型电钻、模型火车、电子玩具等。   步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的,同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。   伺服电机主要靠脉冲来定位,基本上可以这样理解,伺服电机接收到1个脉冲,就会旋转1个脉冲对应的角度,从而实现位移,因为,伺服电机本身具备发出脉冲的功能,所以伺服电机每旋转一个角度,都会发出对应数量的脉冲,这样就和伺服电机接受的脉冲形成了呼应,或者叫闭环,如此一来,系统就会知道发了多少脉冲给伺服电机,同时又收了多少脉冲回来,这样,就能够很精确的控制电机的转动,从而实现精确的定位,可以达到0.001mm。   通过比较,为了满足准确定位,节省成本,本设计采用型号为BHS20-BL-2203C的直流电机。   3智能婴儿摇篮主要功能模块的设计与实现   3.1 系统总体结构   充分考虑系统设计要求及可实现性等因素,本系统MCU采用以ATMEL公司提供的高性能、低功耗的AVR微处理器ATmega16单片机为控制核心;以L298N作为婴儿摇篮驱动摇摆机械结构直流电机的驱动器;通过麦克采集婴儿是否哭闹,由光敏电阻采集外部光线,数据传送到单片机后,再由单片机数据处理,执行相关任务,控制系统结构如图3-1所示。
c语言和单片机c语言的区别_单片机编程代码大全
c语言和单片机c语言的区别_单片机编程代码大全   图3-1控制系统结构   本系统由MCU、电源电路、复位电路、时钟电路、电机驱动电路、声音检测电路、光线检测电路、报警电路等主控模块、非接触IC卡读写模块部分和报警电路组成。下面从系统的主要功能模块的角度,分析其工作原理设计思路。   3.2 硬件模块设计   3.2.1 电源模块设计与实现   电源模块为智能婴儿摇篮系统中各个模块提供所需要的电源,设计中除了需要考虑电压范围和电流容量等基本参数之外,还要在电源转换效率、降低噪声、防止干扰和电路简单等方面进行优化。可靠的电源方案是整个硬件电路稳定可靠运行的基础。   智能婴儿摇篮系统从外部市电取电,由于电路中的不同电路模块所需要的工作电压和电流容量各不相同,因此电源模块应该包括多个稳压电路,将充电电池电压转换成各个模块所需要的电压。主要包括如下几种电压。24V电压,主要为照明电路提供电源。12V电压,主要为步进电机驱动模块提供电源。5V电压,主要为微处理器、声音采集电路以及光线检测电路提供电源,电压要求稳定、噪声小。   电源电路模块由若干相互独立的稳压电路组成。一般采用星形结构,可以减少各模块之间的相互干扰,为了进一步减少单片机的5V电源噪声,可以单独使用一个5V的稳压芯片,与其他接口电路分开。   除了电机驱动模块可以直接取自电池外,其余各模块的工作电压则需要从电池电压通过变换稳压,一般采用各种集成稳压芯片实现。表3-1列举了一些常用的稳压芯片和主要技术指标。选择稳压芯片时除了考虑输出电压和电流容量参数外,还需要对稳压芯片的工作最小压差留有一定的余量,这是由于电池两端的电压在车模运行过程中会逐步降低。特别是在车模的启动过程中,电池提供很大的启动电流时,电池两端电压会降低很多,所以需要选择一些工作压差小的稳压芯片。   表3-1常用的稳压芯片及其主要技术指标序号芯片型号输出电压/V特点1LM78055串联稳压,输入电压需要大于7V2LM25755开关稳压,书入电压可以低至6.5V3LM29405串联稳压,工作电压差可以小于0.5V4LM1117-ADJ2.85~5可调整输出 800mA 电流压差可以小于1.2V5LM78066串联稳压6TPS73502.5~5低压差稳压芯片,35mV/100mA7LM10855串联稳压,3A,1.5V压差8MC34063API3~40开关稳压,可构成升压降压斩波电路9MAX6385开关稳压,压差可以低至LV10MAX758A5开关稳压,输入电压范围宽:4~16V11uPC24A055输出2A电流时,压差小于IV12MC可调整串联稳压,低压差,可同时提供两路稳压电源   在本次设计中智能摇篮相对简单,能耗不高,考虑节约制作成本,宜采用串联稳压芯片,最终选择的是常用稳压芯片LM7812和LM7805。其电路如图3-2所示。
c语言和单片机c语言的区别_单片机编程代码大全
c语言和单片机c语言的区别_单片机编程代码大全   图(3-2 直流电源稳压电路 12V 和 5V 原理图   3.2.2 单片机控制模块设计与实现系统总体程序设计   本设计采用ATMEL公司的ATmega16单片机作为核心处理件,对采集到的数据进行处理和传输,如图3-3所示。
c语言和单片机c语言的区别_单片机编程代码大全
c语言和单片机c语言的区别_单片机编程代码大全   图3-3 ATmegal6单片机最小系统   3.2.3-时钟控制单设计与实现   实时时钟采用了美国DALLAS 公司推出的一种高性能、低功耗、带RAM的DS1302芯片,它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压2.5~5.5V。它采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源和后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。时钟控制单电路如图3-4所示。
c语言和单片机c语言的区别_单片机编程代码大全
c语言和单片机c语言的区别_单片机编程代码大全   图 3-4时钟控制电路   DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类,一类是单个RAM单,共31个,每个单组态为一个8位的字节,其命令控制字为C0H-FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。具体的参数见表3-2。DS1302的控制字和数据读写时序如图3-5所示。   表 3-2 DS1302 寄存器参数表寄存器名命令字取值范围各位内容写操作读操作秒寄存器80H81H00~59CH10SECSEC分钟寄存器82H83H00~59010MINMIN小时寄存器84H85H01~12或00~2312/2401HRHR日期寄存器86H87H01 ~28 29 30 31010DATADATA月份寄存器88H89H01~MONTH周日寄存器8AH8BH01~0DAY年份寄存器8CH8DH00~9910YEARYEAR
c语言和单片机c语言的区别_单片机编程代码大全
c语言和单片机c语言的区别_单片机编程代码大全   图3-5 DS1302的控制字和数据读写时序   3.2.4 直流电机驱动的设计与实现   电机驱动模块是婴儿摇篮摇摆的动力部分,由于直流电机具有优良的调速和起动性能。它具有调速范围广、平滑性和经济性好、起动转矩大等优点。在本系统设计时采用小型直流电机。通过电机驱动模块,通过改变PWM的频率到达调速,通过改变加在步进电机两相绕组上信号的顺序达到变向的控制目的。因而可以使用大功率晶体管、全H桥或半H桥电路驱动电机。为了简化电路设计,可采用集成电机驱动芯片完成对于电机的控制。目前比较常用的电机驱动芯片主要有L298N和MC33886。   L298N是一款高集成度、双桥结构的直流电机驱动器,具有驱动50V电压和2A电流的能力,而且使用简单、实用性强。L298N的控制逻辑详见表3-3,其引脚排列如图3-6所示。   表 3-3L298N的控制逻辑输入信号电机运动方式使能端 A使能端 B输入引脚(IN1/IN3)输入引脚(IN2/IN)1110前进1101后退1010左转0110右转0110原地转动
c语言和单片机c语言的区别_单片机编程代码大全
c语言和单片机c语言的区别_单片机编程代码大全   图3-6L298N的引脚排列   MC33886作为一个单片电路H-桥,是理想的功率分流直流马达和双向推力电碰铁控制器,它的集成电路包含内部逻辑控制、电荷泵、门控驱动、及低读选通金属-氧化物半导体场效应晶体管输出电路。   MC33886能够控制连续感应直流负载上升到5.0安培,输出负载脉宽调制P的频率可达10 KHz,一个故障状态输出可以报告欠压,短路,过热的情况,两路独立输入控制两个半H桥以推拉输出电路方式输出,两个无效输入使H桥三态输出(呈现高阻抗)。   MC33886制定的参数范围是-40℃≤TA≤125°C、5.0V≤V+≤28V。集成电路也可以工作在40V 通过降低规定的定额值。集成电路能够在表面安装带散热装置的电源组件。   但是由于本设计采用的是普通直流电机,若采用MC33886成本高,若采用L298N,则价格低廉,成本较小,本设计只需一个L298N驱动直流电机就可以完成婴儿摇篮的控制要求。   L298N是一款高集成度、双H桥结构的直流电机或步进电机驱动器,具有50V电压和4A电流的驱动能力,而且使用简单、实用性强。摇篮电机控制模块由L298N集成H桥芯片结合单片机PWM技术实现对步进电机的速度和方向控制,内部结构如图3-7所示。   电机驱动芯片L298N工作原理是结合单片机PWM技术实现对小型直流电动机的速度和方向控制,电路图如图3-7所示。以电机MOTOR1为例,控制逻辑说明说明原理如下:当使能端ENA为高电平时,如果输入端PWM0为高电平,输入引脚IN1为低电平而引脚IN2为高电平,则电机A正转;如果输入端PWM0为低电平,输入引脚1为低电平而输入引脚2为高电平,则电机A反转。
c语言和单片机c语言的区别_单片机编程代码大全
c语言和单片机c语言的区别_单片机编程代码大全   图3-7电机驱动模块电路图   电机驱动采用芯片L298N,既满足设计要求,成本低。通过双电源供电和光电耦合器来消除驱动模块和控制模块之间的干扰。单片机经过光耦产生稳定的PWM信号直接控制各部分电动机正常工作,经过实验和调试,信号输出稳定,频率、PWM占空比、电动机调试到最佳状态,线性度较好,并可实现自动和手动两种方式进行调节。   3.2.5 音频检测模块设计与实现   本设计中采用声音和光线作为检测信号,故采用麦克风传感器和光敏电阻。麦克风是声电转换器件,又名咪头、话筒、传声器、咪胆等。   按工作原理可分为炭精粒式、电磁式、电容式、驻极体电容式、压电晶体式、压电陶瓷式、二氧化硅式等;按尺寸大小分,驻极体式麦克风又可分为Φ9.7系列产品、Φ8系列产品、Φ6系列产品、Φ4.5系列产品、Φ4系列产品、Φ3系列产品,每个系列中又有不同的高度;从麦克风的方向性,可分为全向、单向、双向(又称为消噪式);从极化方式可分为振膜式、背极式、前极式。   驻极体麦克风的结构包括防尘网、外壳、振膜、垫片、背极板、铜环、腔体、PCB组件和引脚。其中防尘网有保护咪头,防止灰尘落到振膜上,防止外部物体刺破振膜,还有短时间的防水作用;外壳是整个咪头的支撑件,其它件封装在外壳之中,是传声器的接地点,还可以起到电磁屏蔽的作用;振膜是一个声-电转换的主要零件,是个绷紧的特氟龙型料薄膜粘在一个金属薄圆环上,薄膜与金属环接触的一面镀有一层很薄的金属层,薄膜可以充有电荷,也是组成一个可变电容的一个电极板,而且是可以振动的极板;垫片支撑电容两极板之间的距离,留有间隙,为振膜振动提供一个空间,从而改变电容量;背极板是电容的另一个电极,并且连接到了FET(场效应管)的G(栅)极上;铜环连接极板与FET(场效应管)的G(栅)极,并且起到支撑作用;腔体是固定极板和极环,从而防止极板和极环对外壳短路(FET(场效应管)的S(源极),G(栅)极短路);PCB组件装有FET,电容等器件,同时也起到固定其它件的作用。   音频接收模块以麦克风作为传感器接受音频信号,将接收到的音频信号经过LM311比较器产生方波。音频接收电路如图3-8所示。
c语言和单片机c语言的区别_单片机编程代码大全
c语言和单片机c语言的区别_单片机编程代码大全   图3-8音频检测电路原理图   3.2.6 报警电路设计原理图   报警电路由红色发光二极管、扬声器及其驱动电路组成,当婴儿哭闹时,声音检测电路检测到相关信号后给单片机发送数据,单片机接收到后控制摇篮摇摆,并由光线检测电路判断为白天或是夜晚,来判断是否打并灯光电路,同时远程红色发光二极管点亮并且扬声器报警,提示监护人员婴儿的状况。由ATmega16 18引引脚PD4控制。扬声器由PNP型三极管驱动,具体硬件电路图如3-9所示。
c语言和单片机c语言的区别_单片机编程代码大全
c语言和单片机c语言的区别_单片机编程代码大全   图 3-9 报警电路硬件图   3.3 软件模块设计   3.3.1 晶振的配置   ATmega16单片机可以设置内部晶振时钟,为简化电路,本设计选用内部时钟,采用8MHz的晶振,需要用PROGISP软件对单片机的熔丝位进行烧写。8MHz晶振熔丝位烧写如图3-14所示被校准的内部 RC振荡器提供固定的1/2/4/8MHz的时钟,这些工作频率是在5V,25℃下校准的。内部RC振荡器的工作模式如表3-4所示,按表3-4对CKSEL熔丝位进行编程可以选择内部RC时钟,此时将不需要外部件,在使用这些时钟时,应当是未编程的,即CKOPT=1。当MCU完成复位后,硬件将自动地封装校准值到OSCCAL寄存器中,从而完成对内部RC振荡器的频率校准。   表3-4 内部 RC 振荡器的工作模式表熔丝位(CKSEL3~1)工作频率范围(MHz)00011.000102.000114.001008.0   在图3-10中,选择框打钩的为编程状态,即为0。CKSEL3:1=0100,工作频率范围是8MHz;BOOTSZ1:0=00,BOOTRST=0,BOOT区域的大小为1024字节,复位后从BOOT区执行;BODEN=0,BODLEVEL=0,BOD功能使能,门槛电平为4.0V。通过以上编程设置,启动延时为6CK+4.1ms。
c语言和单片机c语言的区别_单片机编程代码大全
c语言和单片机c语言的区别_单片机编程代码大全   图3-10 8MHz晶振熔丝位烧写图   3.3.2 系统总体程序设计   系统硬件主要是由LED光线的接收、发送以及控制器组成,其中控制器是LED光线收发的核心,其程序的好坏直接影响着系统的可靠性与稳定性,系统软件的程序流程图如图3-11所示。
c语言和单片机c语言的区别_单片机编程代码大全
c语言和单片机c语言的区别_单片机编程代码大全   图3-11 系统程序流程图   3.3.3 电机驱动模块程序设计   PWM(脉冲宽度调制)是英文“Pulse Width Modulation”的缩写,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于测量,通信,功率控制与变换等许多领域。   系统控制器具有四通道PWM输出,分别有定时计数器0,定时计数器1,定时计数器 2 控制每个定时计数器负责两通道的PWM输出,当让单片机输出PWM信号是只需设置对用的寄存器TCCRnA,TCCRnB,TCCRnC,OCRn即可。   系统使用了控制器快速PWM模式对驱动控制,当系统采用8MHz晶振频率是快速PWM模式频率最大值为31.25KHz。计数器从 BOTTOM计到MAX,然后立即回到BOTTOM重新开始。对于普通的比较输出模式,输出比较引脚OCRn在TCNTn与OCRn匹配时清零,在BOTTOM时置位;对于反向比较输出模式,OCRn的动作正好相反。该模块的程序框图如图3-12所示。
c语言和单片机c语言的区别_单片机编程代码大全
c语言和单片机c语言的区别_单片机编程代码大全   图3-12 电机驱动模块程序流程图   4 系统测试方法及工具   调试方法   在设计的电路图基础上,采取先静态,后动态;先部分,后整体的调试方法,进行了各个模块的测试,测试结果均能达到指标要求,其结果如下:白天,当智能婴儿摇篮监控打开时,婴儿哭闹时婴儿摇篮进行自动摇摆,并远程报警,通知监护人员。夜间,当智能婴儿摇篮监控打开时,婴儿哭闹时婴儿摇篮进行自动摇摆,并自动进行照明,并远程报警,通知监护人员。调试工具   安装相关应用程序的计算机、20MHz数字示波器、直流稳压电源、数字万用表、秒表,米尺。   结 论   本设计以单片机ATmega16为核心控制器件,利用其丰富的内部资源和外围接口完成相关控制及通信,选择麦克和直流电机分别作为声音采集传感器和执行器,单片机运行时受外界干扰较小,整个系统工作稳定,可以用相对较低的成本实现高精度,难度高的控制方案,满足了控制系统稳定性和精确控制的要求。而且由于 ATmega16单片机强大的集成开发环境,使修改控制方案成为轻而易举的事情。又结合传感器构成的闭环控制系统,可以确保宝宝摇篮的多样化控制和稳定工作。   本设计在电路方案和执行方式等方面,采用模块化设计,可以方便实现功能扩展,从而满足特殊应用领域中的系统功能和可靠性需求。   在下一步的工作中,可在电路中加入音乐播放电路,以提高婴儿娱乐性:增加测重、检测尿床等检测功能,以提高婴儿的舒适性;加视频监控,可以无线监控婴儿的情况;另外,在数据处理算法方面可进一步智能化,从而可在更大范围内得以应用。   参考文献   [1] 谭浩强•C程序设计(第二版)•北京:清华大学出版社•2005   [2] 阎石•数字电子技术基础[M]•北京:高等教育出版社•2006.   [3] 何小艇•电子系统设计(第三版)•浙江:杭州浙江大学出版社•2004   [4] 何立明•单片机应用系统设计•北京航空航天大学出版社•1990   [5] 任治刚•电子信息工程专业英语教程•北京:电子工业出版社•2004   [6] 王津•单片机原理与应用•重庆大学出版社•2002   [7] 王俊峰•电子产品开发设计与制作•北京:人民邮电出版社•2006   [8] 刘建清•从零开始学单片机技术[M]•北京:国防工业出版社•2008   [9] 李朝青•单片机原理及接口技术[M]•北京:北京航天航空大学出版社•2006   [10] 童诗白•模拟电子技术基础[M]•北京:高等教育出版社•2003   [11] 张友汉•电子线路设计应用手册•福建:福建科学出版社•2001   [12] 王晓明•电动机的单片机控制[M]•北京:北京航空航天大学出版社•2002   [13] 李全利•《单片机原理与应用》,清华大学出版社•2006   [14] 张军•AVR单片机应用系统开发典型实例•中国电力出版社•2009   [15] 金春林•AVR系列单片机C 语言编程与应用实例[M]•清华大学出版社•2003   [16] 尔桂花,窦曰轩•运动控制系统[M]•北京:清华大学出版社•2002   [17] 尹勇,李宇•单片机应用程序开发指南[M]•北京:科学出版社•2005   [18] 王兆安,黄俊•电力电子技术[M]•北京:机械工业出版社•2009   [19] 谢自美•电子线路设计与实验测试•武昌:华中科技大学出版社•2005   [20] 胡汉才•《单片机原理及其接口技术》第二版•清华大学出版社•2004   [21] 张友汉•电子线路设计应用手册•福建:福建科学出版社•2002   [22] 羌予践•电机与电力拖动基础教程[M]•北京:电子工业出版社•2005   [23] 薛毅•最优化原理与方法[M]•北京工业大学出版社•2001   附录一:电路原理图   
c语言和单片机c语言的区别_单片机编程代码大全
c语言和单片机c语言的区别_单片机编程代码大全   智能婴儿摇篮车部分原理图   附录二:单片机程序   //ICC-AVR application builder :2011-4-31 15:03:11   // Target:M16   //Crystal: 8.0000Mhz   #include”main.h”   #include “delay.h”   void port_init(void)   {   PORTB= 0xc2;   DDRB=0x3D;   }   //call this routine to initialize all peripherals   void init_devices(void)   {   //stop errant interrupts until set up   CLI(); //disable all interrupts   port_init();   MCUCR=0×00;   GICR =0x00;   TIMSK= 0x00;//himer interrupt sources   SE1(); //re-enable interrupts   //all peripherals are now initialized   }   //void main(void)   {   init_devices0;   //insert your functional code here…   while(1)   {   if(PINB&0x80)==0)   {   delay_ms(10);   if(PINB&0x80)-=0)   if(PINB&0X40)–0)   {   PORTB=0X11;   }   else if(PINB&0X02)-=0   {   delay_ms(10);   if(PINB&0X02)–0)   {   PORTB=0X20;   }   }   }   else   PORTB=0xc2;   }   }

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/46639.html

(0)
上一篇 2024年 9月 5日 上午8:04
下一篇 2024年 9月 5日 上午8:08

相关推荐

关注微信