51单片机烧写程序的方法
STC89C51是应用广泛的51单片机,很多人都是通过该单片机入门学习的,单片机的学习需要勤动手。单片机需要烧写程序,要用到相关的软件和硬件。下面介绍一下51单片机烧写程序的方法。
1 所用到的硬件工具
51单片机烧写程序需要用到单片机的UART串口,所用到的工具为USB/TTL,具有四个引脚分别为5V、GND、TXD、RXD,需要和单片机的UART口连接,在连接的时候需要注意的是,串口要交叉连接,即USB/TTL的TXD和单片机的RXD连接;USB/TTL的RXD和单片机的TXD连接。
2 所用到的软件以及设置
STC的51单片机需要用到STC-ISP软件,该软件可以在STC的官网上下载到
烧写过程为:1)选择具体的单片机型号,本文用的是STC89C51;2)选择串口号,该串口号就是USB/TTL的串口号,可以在我的电脑→设备属性中可以看到;3)选择所要下载的hex文件,点击“打开程序文件”选择需要烧写的hex文件,该文件由编程软件生成,如keil生成;4)点击下载“下载/编程”,这里需要注意的是,点击完了后,会在右侧出现“正在检测目标单片机”的字样,这时要把单片机的电源开关一下,即先断电再马上上电。之后,就出现下载的进度条。
经过以上步骤单片机烧写程序的过程就完成了。
3 烧写程序需要注意的地方
用USB/TTL连接单片机时,需要将数据线交叉连接;点击了下载按钮后需要给单片机重新断电再上电,进行单片机的冷启动。
单片机实例分享,饮水机自动关电源专用插座
为了满足学生饮水需要,学校在每个教室配备了一台饮水机。但由于各种原因,大家经常忘记关闭饮水机,导致饮水机整夜反复烧水,不仅耗费了大量的电能,而且喝这种经过反复烧过的水也有害健康。于是,我们想到了制作一个控制器,当我们忘记关机时,能够自动关闭饮水机电源。
基本原理
饮水机对机箱里的水通电加热,水烧开后会断电停止加热。如果没有将烧好的水用掉,烧好的水会慢慢地散热降温,当温度降到加热下限时,饮水机会控制再次加热。由于加热机箱包裹了性能较好的保温材料,散热降温速度较慢,两次加热间的时间间隔较长,一般在10min以上。如果水烧开后,用去了烧好的全部或部分热水,则温度会很快降到加热下限,这样两次加热的时间间隔较短。这个过程的示意图如图6.1所示。
图6.1 饮水机电流变化示意图
我们可以根据通电电流的有无测量两次加热的时间间隔,从而可以判断有没有倒水,如果连续两次加热没有倒水,则判断不需要再烧水,直接关闭饮水机电源。对电流有无的判断,可以在饮水机里完成,也可以在输电线路上(如在插线板里)完成。如果选择后者,则没必要修改饮水机,可以极大限度地方便推广使用。
结构框图及系统电路图
根据上述分析,我们设计了系统的结构框图(如图6.2所示)及系统电路图(如图6.3所示)。
图6.2 系统结构框图
图6.3 系统电路图
1. 电流传感部分
这部分电路的原理图如图6.4所示,饮水机的功率一般都在1000W以上,我们教室里使用的功率为1000W,额定电流约为5A。当饮水机加热时,有较大的电流流过两个阻值为0.5Ω的水泥电阻并联后组成的取样电阻,并联后的阻值为0.25Ω,两端电压的有效值为1.2V,最大值为1.6V。由于光耦里的红外二极管导通、发光电压为1.2V,因此在加热过程中能周期性地发光。当光耦初级发光时,光耦次级光敏三极管导通,从而输出一个低电平到P27,供单片机进行判断。当电流为零,或者电流方向不符合导通条件时,光耦次级光敏三极管截止,通过上拉电阻的作用,输出高电平到P27,因此有加热电流时,周期性地输出低电平到P27,由此我们可以判断系统有没有加热电流。
图6.4 电流检测电路
此处的取样电阻消耗的功率约为6W,所以选用两个功率为5W的水泥电阻并联使用,光耦选用常用的线性光耦EL817,它不仅实现了信号的耦合,同时也实现了系统与市电的的隔离,提高了系统的稳定性。
2. 按键
系统设置了3个按键,分别用来实现以下3个功能。
(1)存储正常降温的时间数据。
当系统完成一次没有倒水的降温时,按此按键可以把这个降温时间数据存入存储器AT24C02中,供系统参考,判断是否存在倒水动作。
(2)设置加热一次断电。
如果是家庭使用,多数情况下,我们只要喝一杯水,此时只要烧一次就可以了,按此按键,在烧好一次水之后,系统将断电。
(3)设置智能断电。
按此按键后,系统进入自动断电状态的初始设置,如工作类型设定,没有倒水的烧水次数清零,读取参考数据等。
3. LED 指示灯及蜂鸣器警示部分
这部分电路设置了4个LED指示灯。其中,3个在按键旁边,用于状态指示,在按键1旁边的用于指示是否有可存数据,如果等待时间大于10min,则认为是没有倒水的时间间隔,可以存储使用。按键2和按键3旁边的指示灯,用于指示系统的工作状态,按键2旁边的灯亮,说明处于一次烧水状态,如果按键3旁边的指示灯亮,说明系统处于自动断电状态。初始默认为智能断电。
另一个3mm共阳双色发光二极管用于指示系统工作状态,发红色光表示饮水机处于加热状态,发绿色光表示饮水机处于等待状态。由于红色LED正常工作电压降约为1.7V,绿色LED正常工作电压降约为3V,所以为了获得相同的亮度,它们要连接不同的限流电阻。本制作中,红色LED串联1kΩ电阻作为限流电阻,绿色LED串联200Ω作为限流电阻,这使得它们的亮度能基本一致。安装二极管时要特别注意引脚的极性。
当水烧好时,蜂鸣器会发出声音,提醒我们可以倒水,当要自动关闭电源时,也发出声音提醒我们,使我们不用看指示灯,即可在第一时间知道水有没有烧好。
4. 数据存储部分
不同的饮水机,不同的环境温度,烧好水后的自动降温时间是不同的,不能一概而论,所以此处设置了一个数据存储部分,用于存储某种使用状态下,自动降温的时间,当换用了不同的饮水机,或者环境温度变化较大时,可重新设置并保存。由于存储的数据量不是很大,并且要求断电后能够保存,此处选用常用的AT24C02作为存储芯片。
5. 环境温度检测
由于不同的环境温度,水温降低的速度不一样,我们可以加入一个环境温度检测电路,根据测得的环境温度不同,对自动降温时间做出适当的修正。
6. 继电器控制
控制系统通过继电器控制是否给饮水机通电,如图6.5所示。当P22输出高电平时,VT1导通,继电器触片接到常开引脚,接通饮水机的电源。反之,则关闭饮水机的电源。由于继电器是感性元件,断电时将产生较高的感应电动势,所以要接上一个二极管(IN4007)作为续流二极管,吸收所产生的感应电流。此处使用的继电器额定电流为10A,完全适合此制作的需要。
图6.5 继电器输出电路
7. 主控电路
由于处理的数据不多,对处理速度要求不高,所以选用常用的51单片机作为主控单元,负责协调控制整个系统的工作,包括电流检测、时间测量、按键扫描、220V高压输出控制等相关操作,整个系统就是通过主控电路把各部分电路结合成一个有机整体的。
8. 电源电路
由于系统要驱动5V继电器,所需的工作电流较大,控制部分总电源达250mA,所以找到一个输出5V/500mA的废旧手机充电器,拆掉里面的电路板作为电源模块,给系统供电。
程序设计
根据系统的工作过程,设计出单片机程序的流程,如图6.6所示。其主要的控制部分在定时中断里完成,而按键扫描,则在主程序里完成。
图6.6 主要程序框图
制作过程
(1)根据设计的原理图绘制PCB图,利用热转印法手工制作电路板。设计PCB时要充分考虑安装的空间、形状、关键元器件的位置,设计好的PCB如图6.7所示,安装好相关元器件之后的电路板如图6.8所示。
图6.7 PCB 图
图6.8 焊接好元器件的电路板
(2)由于控制器涉及220V的高压电,因此必须制作一个外壳,把里面的电路包装起来。我们选用的是加工性能好、透明度高的亚克力板(有机玻璃板),在保护里面电路的同时,不至于把我们制作的精华部分隐藏起来。为使系统更协调,底板采用乳白色的亚克力板。根据设计,裁取合适的6块板,并在面板上相应的位置加工相关的孔,如散热孔、安装孔、按键孔、插座孔等。加工好的几块板如图6.9所示,再用亚克力板专用胶水把各部分粘连起来,如图6.10所示。
图6.9 裁好并钻好孔的几块亚克力板
(3)从废旧手机充电器上取出里面的电路板作为系统的供电电源,取废旧插线板里的插座单元,作为输出插座,如图6.11所示,并把它们安装在机壳的相应位置上。
图6.10 粘好的外壳
图6.11 电源和插座
(4)把电路板、开关等固定在插线板里,接好线,即完成了系统的制作,其接线图如图6.12所示,每次按触动开关,系统自动启动,并保持通电状态。当给饮水机断电时,系统电源也跟着断电,节省电能的同时,也防止系统长时间通电而影响其寿命。制作完成的作品如图6.13所示。
图6.12 电路连接示意图
图6.13 最终的成品图
使用方法
把本控制器电源线插头插到室内的插座上,饮水机的电源线插到本控制器上,按触动开关,即可开机使用。
1. 获取自然降温时间
初次使用或者是换用其他饮水机之后,要把水烧开一次,并让其自然降温。通过按保存键,把自然降温的时间存在存储器里,供下次使用时参考。
2. 正常控制
在接通电源之后,按自动断开键进入自动断电状态,在这种情况下,如果两次烧开之后没有倒水,则关闭系统电源。当按饮水机上的一次烧水,则一次烧开之后断电。开机默认为自动断电状态,关闭饮水机时控制器本身将断电。
相关问答
51单片机 为何 断电 才能烧录?51单片机之所以需要在断电状态下烧录,是因为其内部的闪存存储器是一种非易失性存储器,意味着它在断电后也能保持数据。烧录时,需要将程序代码通过编程器写入闪...
怎样保持 单片机 的 断电 后的时间?1.对于较老型号的单片机,可外扩串口时钟芯片+纽扣电池的方法,如DS1302+3.6V镉电池。2.8051系列,可外扩并口时钟芯片DS12887,DS12887内含电池,只是并口方式...
单片机 程序烧录之后, 断电 之后,程序是否还在 单片机 里面?是的。单片机里和优盘一样,存入数据后一直保存着。断电不会影响里面的内容。是的。单片机里和优盘一样,存入数据后一直保存着。断电不会影响里面的内容。
请教 单片机 掉电后,如何快速的保存数据问题?针对题主的问题,我想应该从以下几个方面入手:尽量选用内部的flash来存储数据,内部flash的读写速度快,可靠性高。如果用外置的flash或者是eeprom进行存...MCU供...
基于 单片机 的手电筒电路,怎么实现 断电 换挡?加电容保存RAM的值,那相当没断电,那怎么实现断电换档?要换什不档,非要断电吗?用一个按纽,按一下换一档就行了,很简单的事,搞那么复杂那么神秘?加电容保存RAM...
51单片机 运行需要多少伏电源-ZOL问答有3种,5V,3.3V,1.8V其中5V和3.3V单片机较常用,不能通用,如果你部明确你手上的单片机是几伏的,可以下载芯片资料,写的很清楚因单片机芯片而异。具体要看芯片资...
单片机 会把电脑烧坏吗?单片机本身不会直接烧坏电脑,但是如果使用不当、接线错误或者程序编写不规范,可能会导致电脑受到损坏。例如,如果单片机的输出电压高于电脑所能承受的最大电压...
怎么检测 单片机 的好坏?第一步:从表象来判断:首先我们可以用手去触摸单片机的表面(小心烫到手),看是否发烫?如果发烫,极有可能就是单片机坏掉了,有些甚至直接冒烟。为了进一步...
单片机 肿么擦除已烧录的程序-ZOL问答擦除操作是将单片机Flash区擦成空片。你用哪个软件烧的,就能用那个软件再擦下..这个要看具体单片机支持的,51系列都是不支持的,ST系列PIC、MSP430、系列都是支...
什么是 51单片机 的负载电容?一般单片机的晶振工作于并联谐振状态,也可以理解为谐振电容的一部分。它是根据晶振厂家提供的晶振要求负载电容选值的,换句话说,晶振的频率就是在它提供的负...