硬件电路的设计与实现 单片机最小系统硬件电路设计 很小的单个芯片系统包含一个晶体振荡器,一个恢复位电路等。MCU中已经存在时钟振荡电路。我们需要在引脚XTAL1和XTAL2之间添加一个反馈环路,以构建最小的MCU系统,以MCU可以获取时钟信号。通常用反馈环路是一个石英晶体振荡器和2个30μF 并联电容器。电容值根据晶体的频率进行调整。在较小的MCU系统电路中,石英晶体振荡器的频率越高,MCU 内部时钟信号的周期短,速度更快从MCU贯行命令。在此构造中,微控制器的时钟速率设置为12MHz,并且相应的重置按钮设置为微控制器的重置引脚,以便用户可以重置微控制器。必要时。对于系统的每一个传感器接触口,还必须为每个传感器,电源和数据线接口标明。最不大的系统可以构造在所有都有可以用的板子上,也可以用焊接在PCB板子上的完成品模块,其硬件原理图片如下面图片 所呈示。 图 MCU 最小系统和接口电路 显示模块硬件电路设计 在这次实验中,选择字符LCD1602作为呈示设备,将LCD1602的数据引脚一起连到MCU的P0端口。即,至分别对应于以1602展示的8个数据线(DB0至DB0)。 DB7用连上。如图 所示,特殊功能端子RS,RW和E通过网络标签分别连接到,和。模块的VEE地端可以调整呈示模块呈示的数字符号的光亮度和对比度。在现实电线路中,用了十千Ω的蓝白R102。当用手转动,就可以更改字符的样式。 图 显示模块和接口电路 温度传感器 DS18B20 电路设计 DS18B20温度传感器和MCU中间的连接较简。将数据线直接连接到MCU的端口(网络签标DQ),电源和地线也连到MCU主板上,这个时候,数据线所用电源电压通过四点七千电阻上拉。 图 温度传感器和接口电路 电子式水位置开关硬件电路设计 用电子水位置导通按钮做成是否缺水的指示判定,这个电按钮在如果有水的时候输出的高电平,在没有液体情况的时候出口是低微电平。高的电平就是电压源,因此电压源要用为5V,传递数具线和迪线连接到单芯片计算电脑的主电路板上(看下面图)。网络签标水对映MCU的端口。 图电子式水位开关接口电路 时钟芯片电路设计 在时钟芯片DS18B20 的3个端口 RST,SCLK和I/O连到用数据互换的MCU上,看图片呈示 所示,收集标签分开是RST,,分开是连接到微控制器的,和 ,实现与单片机的通讯。请看一看DS18B20 The clock chip的传统电路设计方式来构造该整个的基本电路形态。 图 时钟芯片电路 声光报警电路设计 警报电路分为光警报和声警报,用于响应系统的各种警报,并通过声和光提醒用户。如 声响警报模块的电路的构造,峰鸣器一般用与MCU一样的正5伏电压源,由晶体管9013管控,集电极连接到MCU端口,网络标签为BEEP,与MCU的端口相对应。 图蜂鸣器电路高亮度和长寿命的LED灯用于照明警报和提示,常见的阳极连接方法,单片机提供低水平照明。装配3LED光泡,串联接51ΩR ,D1用于指示增加热度状况,D2用来看水位状况,D3用来看热度状况。这3灯连到MCU的,和端口,实现联代功能。 图 指示灯电路 按键设置模块电路设计 本系统的时钟设置、 其中温度中的设计都是要用按钮来进行的,基本用 四个独立的按钮的设计,将一个端子接地并按下后,降低单片机的端口级别,并完成主动作捕捉。此功能由装配按钮,确认按钮,增值按钮和减值按钮界说,网标签为SELT,ENTER,UP和DOWN,对应接单片机的 、、和 四个端口。 图 键钮模块电路 电源和开关模块设计 这个系统一般在外部接上正五伏电源来进行工作。如果想方便控制,需加一个电源总的开关,并且使用LED指示灯来指示电源。在电源和地线中间并联2个滤波C,过滤出电源纹波。 图 电压源模块电路3 热水器控制系统的软件设计与算法实现 软件设计是整个系统的核心。好的软件设计能使硬件更加出色。软件系统的主要设计思想是:1开系统电源后,将呈示目前系统时刻的讯息和水的热度讯息;当水温低于设定值时,开始加热。当水热度大于预期值或水量不足时会触发声音和视觉警报。2、响应按键操作。如果有一些人群碰到下配置灯按钮时,您可以执行3个选项,第一个是设置运行时间,第二个是配置计时器预热的开始和结束时间,第三个是配置温度。范围内的上升和下降极限。软件程序的设计中,它完全结合了模块化设计的思路。完整的软件系统圈主要包括通用初始化功能,LCD1602基本功能,DS18B20基本功能,DS18B20基本功能,按键扫描配置策略基本功能,然后在主程序中调用相关模块的功能,例如读取传感器状态,智能温度判定,警报处理决策,键盘扫一扫,以完成系统预期的操作功效。 系统总体流程图 图系统总体流程图 显示模块程序设计 呈示模块程序主要包括初始化、命令子函数和写数据子函数,是系统软件编程的基本库里,是系统软件编程的最关键基本函数:图所示 图显示模块程序设计 写命令子函数1602作业要命令输入并具有自己的命令库。要编写这个命令,您更需要编写一个特殊设定的的写命令子功能。 写数据子函数 图子函数流程图另外,必须将在时钟装配流程和热度装配流程呈示的情况与人员输入一起编写,以配置适当的光指示呈示管理。 温度传感器模块程序设计 温度传感器流程图。图所示 图温度传感器模块程序设计 在Temperature sensor的基本功能装配中,它用于热度采集并管理。热度写入功能包含写入成数和不成数那部分,分析DS18B20的数据格局,写下正确的热度和因变量。基本功能开发包含模的块开始化的功能、单独线串行的传递信息延迟功效 、所有线信息的装配、byte数传递、byte数收到等很多局部。从主程序中调用这些功能,并与LCD display功能的配合用来以完成各种各样的效果,例如温度显示和判断。 按键设置程序设计 按钮设置程序主要是按钮扫秒的方法。由于键子的扫秒的逻及更加繁琐,因此不仅需要辨认碰下的键数,哪个键,还需共同LCD呈视功能来展示不一样的按钮数和当时的情况,并控制光标位置和打开和关闭LCD1602 ,提示用户进行设置。按钮扫一扫配置过程里分别成为一个子功效,在主要软件中巡回挪用。在行使按键编排动手活动中,因为用了的是呆板按键,出现在癫动的征像,形成测验不却准或碰下的数的误会,正常来用癫动方法,把过去的时间,确保按钮的数正确。按钮正常是四,配置按下面的按钮、确定正确的按碰键子、键子数增多和键子值变少。用来变化量SELT 表达配置按钮的状况,并设计全面变Select记载的装配按钮被按下的次数,将不同的时间与不同的装配功能进行比较,具有按钮功能的效果。当装配按钮所触摸的按钮的频率为1时,请沿光标方向调整时间功能,并记住要进入调整模式。当按按钮的数为二时,光标指引向调好定时作用.当击按钮数量为三时,光标指引向配置热度作用。当按数为四时,请勿标记调整形式并返回正常模式.当使用更改量ENTER显示确认按钮的状态时,请使用Enter记录按钮被按下的次数。Enter的每次访问,都要先开始检验Select的改动数量,确准Select处于功能设置模式,然后显示不同的内容,并控制光标的移动根据不一样功能模下按动确认按钮的数,判定系统在当前要修正的数据是哪个,要不要不调试了,返回平常良好状态。通过设置按钮和确认按钮按动次数,构造系统在调试模式下的每个固定调试的状态,Select与Enter数并在一起就判定了眼下修正地数。看对于这个按钮数量增大和按钮对的数变的少的按键,两个按钮按动的时候,用假设条件去判Select_nu和 Enter_nu 的数的配合状况,贯行相对照的数增加 一 或是数据减少一 的做法。由于键子盘检测巡回进行,连着按增加或减小按键可以实现连起来调配的作用。同时,要看每个数的范围,位置不超出设置范围内。图所示图按键设置程序设计 时钟芯片相关程序设计 图时钟芯片相关程序设计在DS1302相关的编程中,主要写芯片的写数据和读数据作用,然后相对照的日子配置作用。用write_DS18B20_by函数进行数,根据准备,用write_DS11302函数运行数据写进来,用read_DS1302函数进行时刻数,根据读取,用set_rt函数进行时间配置。 主程序和中断服务程序设计 主要程序要包括每个函数的调度用。在软件的开头,开始的每个模块,端口和计时器的开始作业,之后进到循环不止的结构。在循环结构中,指示器位用于确定系统是不是处于调整模式还是正常模式,并且键盘扫描功能会连续运行。在良好模式内贯行温度显示和时间显示,调用警报模块子功效以检查和判定温度和水位状态啥样。在程序中设置适当的判断指标,判断这些变量的值能否到达警报状况。当这时水热度要低于事先设定好热度时候,增加热度提示灯亮起来;如果水温高于设定温度,则会发出警报。如果缺水,也会触发警报。断了劳动程序主要用了The timer断开,用了The timer T0 计算 50ms,它会计入您的中断服务程序,为系统的正常良好模式下的显出数更替给了时间标准。