首页资源分类嵌入式开发单片机 > 继电器却换程序

继电器却换程序

已有 454926个资源

下载专区

上传者其他资源

文档信息举报收藏

标    签: 继电器

分    享:

文档简介

51单片机控制继电器以及外围电路

文档预览

爱普雷德 A6000 51 开发板 《扬帆起航篇》 爱普雷德旗舰店:http://aplid.taobao.com/ QQ:154211813 E-mail:njaplid@163.com 修订历史记录: 日期 2012.12.18 版本号 1.00 修订人 邵路 (爱普雷德团队) 修订内容 创建 版权声明: 本手册版权属于南京爱普雷德电子科技有限公司,任何人未经过我公司书面同 意复制、引用或者修改本手册都将承担法律责任。 体验“爱普学习法”! 1 一起追求卓越! 爱普雷德旗舰店:http://aplid.taobao.com/ QQ:154211813 E-mail:njaplid@163.com 继电器切换 � 继电器项目:实现继电器简单切换。 最终效果图: 现象说明:这个用眼睛是看不到效果的,这时候就要用耳朵了,听声音。你会 听到“咔哒”一声,表示继电器动作。 此项目练习的目的: (1)认识继电器。 (2)熟悉继电器硬件知识。 (3)熟悉程序的下载,包括下载软件的使用 (4)熟悉编写代码和熟悉软件环境。 完整代码: #include sbit RELAY = P3^3; void main(void) { RELAY = 1; 体验“爱普学习法”! //52 系列单片机头文件 //声明单片机 P3 口的第 4 位 /*主函数*/ /*打开继电器*/ 2 一起追求卓越! 爱普雷德旗舰店:http://aplid.taobao.com/ QQ:154211813 E-mail:njaplid@163.com while (1) { } } 长见识: (1)继电器实物: 继电器使用的是磁场的原理,我们用过磁铁,磁铁有相吸的一面,继电器里 面有个线包,如果一旦通电,即电会转换成磁场,将弹片吸住,起到导通作用。 请看下图: 线包: 电 流 通 过 ,产 生 磁 场,具 有 吸 力 开关: 一 旦 线 包 产 生 吸 力,开 关将打到上面 意思就是:继电器是电动开关(用电来控制开和关的动作 ),而平时的电灯都是 我们人为开关。所以这个继电器还是很有用处的,智能化少不了它,而且它还有 隔离的作用。 体验“爱普学习法”! 3 一起追求卓越! 爱普雷德旗舰店:http://aplid.taobao.com/ QQ:154211813 E-mail:njaplid@163.com (2)再认识下单片机 两边加起来总共有 40 个脚,每边各 20 个。STC89C52 是整个开发板的核心, 是开发板的大脑,类似于 CPU 在电脑里的地位,它也是芯片的一种。这个芯片 里面能装程序,程序代码就是在它里面运行的。 (3)再认识下开发环境 我们是用这个软件来编写代码的。我们在里面敲好代码,它负责代码的编译, 体验“爱普学习法”! 4 一起追求卓越! 爱普雷德旗舰店:http://aplid.taobao.com/ QQ:154211813 E-mail:njaplid@163.com 同时会生成下载文件 hex,我们把 hex 文件装到单片机里就能实现我们需要的功 能。我们用 Keil 编写代码也就是为了得到这个 hex 文件。同时这个软件也可以 仿真,功能很多。我们以后会慢慢学习。 下面我们来看,项目功能需要涉及到哪些东西: 2 1 1 5V继 电 器 2 单 片 机 S T C 8 9 C5 2 体验“爱普学习法”! 5 一起追求卓越! 爱普雷德旗舰店:http://aplid.taobao.com/ QQ:154211813 E-mail:njaplid@163.com 简化框图: 继电器 P3.3 (驱 动 芯 片 U L N 2 0 0 3 ) 单片机 S T C 8 9 C5 2 从框图里我们可以看出,这个项目和两个东西有关,一个是 5V 继电器,一个是 单片机 STC89C52。下面我们根据步骤来实现这个功能: 在此声明:我们上节课已经介绍过了 Keil 软件的使用,包括建立工程,编写 代码,编译程序等功能。本个项目我们再复习一遍。 � 第一步:打开软件 双击图标 ,出现如下画面。 体验“爱普学习法”! 6 一起追求卓越! 爱普雷德旗舰店:http://aplid.taobao.com/ QQ:154211813 E-mail:njaplid@163.com 这时就进入 Keil 软件后的编辑界面。 � 第二步:新建一个工程 (1)单击【Project】菜单中的【New uVision Project】选项,如图所示 (2)保存工程文件 选择工程要保存的地方,新建一个文件夹,并取一个有意义的名字,比如 ,输入工程文件名(任意取,也可以写汉字,当然一般都 是取有意义的名字,比如我们的项目是 relay(继电器的英文),那就取 relay)。 如下图显示: 体验“爱普学习法”! 7 一起追求卓越! 爱普雷德旗舰店:http://aplid.taobao.com/ QQ:154211813 E-mail:njaplid@163.com 点击保存。 (3)选择芯片,根据型号选择 Keil C51 支持绝大部的 51 内核单片机,在我们手头 A6000 开发板上的是 STC89C52RC,但是我们就、在对话框中找不到这个型号的单片机。不过没关系, 因为 51 内核单片机具有通用性,所以我们这个选择 AT89C52 就可以了,如下图 所示: 体验“爱普学习法”! 8 一起追求卓越! 爱普雷德旗舰店:http://aplid.taobao.com/ QQ:154211813 E-mail:njaplid@163.com 点击 OK。这时弹出来一个对话框,点击【是(Y)】。 完成上步,窗口界面出现下图所示 到目前为止我们工程的初步工作已经建设完成,接下来我们准备写点代码。 体验“爱普学习法”! 9 一起追求卓越! 爱普雷德旗舰店:http://aplid.taobao.com/ QQ:154211813 E-mail:njaplid@163.com � 第三步:新建文件并添加。 (1)单击【File】选择【new...】或者单击界面上的快捷图标 ,新建文件 后如下图所示: 此时光标在编辑窗口中闪烁,我们可以输入用户的用户程序,但是这个新建文件 和我们刚才建的工程还没有直接的联系,单击 ,窗口界面显示如图。 因为我们编写的是 c 语言代码,所以除了文件名之外还需要加上后缀名.c。 体验“爱普学习法”! 10 一起追求卓越! 爱普雷德旗舰店:http://aplid.taobao.com/ QQ:154211813 E-mail:njaplid@163.com 点击【保存(S)】。 (2)将刚新建的 relay.c 文件添加到工程里面,回到编辑窗口,单击【Target 1】前面的“+”号,然后在【Source Group 1】选项上单击右键,弹出如图对话 框。 然后选择【Add File to Group Source Group 1....】菜单项,弹出以下对话框: 选中 relay.c 文件,单击【Add】按钮,再单击【Close】。这时我们会发现在我们 建的工程文件里就增加了 relay.c 文件夹。屏幕窗口如下图: 体验“爱普学习法”! 11 一起追求卓越! 爱普雷德旗舰店:http://aplid.taobao.com/ QQ:154211813 E-mail:njaplid@163.com 双击 relay.c 文件,我们就可以在该文件中编写代码了。 我们回顾下原理框图: 2 1 1 5V继 电 器 2 单 片 机 S T C 8 9 C5 2 体验“爱普学习法”! 12 一起追求卓越! 爱普雷德旗舰店:http://aplid.taobao.com/ QQ:154211813 E-mail:njaplid@163.com 简化框图: 继电器 P3.3 (驱 动 芯 片 U L N 2 0 0 3 ) 单片机 S T C 8 9 C5 2 根据原理框图进行代码编写:我们目前可以囫囵吞枣,能理解的就理解,理解 不了的就先看看,不懂没关系,有个印象就行,不要看到不明白的就失去信心。 (不过我相信你们够聪明的,呵呵)。 � 第一步:配置 I/O 口 从简化图可以看出,继电器连接的是单片机 3.3 口,因此我们定义: sbit RELAY = P3^3; //声明单片机 P3 口的第 4 位 (一条语句必须以;(分号)结束) 不过这边要注意了,P3^3 涉及到寄存器,寄存器的定义 KEIL 软件里面已经 默认好了,在头文件 reg52.h,因此我们要先包含以下头文件。 写成如下: #include sbit RELAY = P3^3; //声明单片机 P3 口的第 4 位 sbit 是关键字,表示用来定义一个管脚的,术语为 IO 口。 � 第二步:编写 main 函数 (1) 我们先了解下什么是函数? 通俗的说:函数是一段代码,实现某种子功能。专业的说:函数就是一系列 C 语句的集合,通过代码完成某个特定功能。 体验“爱普学习法”! 13 一起追求卓越! 爱普雷德旗舰店:http://aplid.taobao.com/ QQ:154211813 E-mail:njaplid@163.com (2)那再来了解下什么是 main 函数? main 函数的是主函数的意思,就相当于它是函数之首,没它不行。为什么要 这个 main 函数呢?其实也是告诉这个软件我们写的代码从什么地方开始执行, 是程序的入口 。main 函数就是这个入口,程序会从 main 函数开始,这是 C 语 言规定好的。如果没有 main 函数,程序就不知道从哪里开始,编译的时候编译 器必然会报错。 这个项目的功能非常单一,且简单, void main(void) { RELAY = 1; while (1) { } } /*主函数*/ /*打开继电器*/ 再次解释下 while(1);这条语句,大家不要嫌烦噢: 有 C 语言基础的同学可能就会说,学 C 的时候 main 函数不需要这条语句呀, 是的,C 语言不需要,是因为它包装过了。而嵌入式单片机是赤裸裸的任你使用, 如果没有这条语句,我们试想执行完 RELAY = 1;这条语句,下一步该干嘛呢? 如果没有下一步指示,单片机可就不知道怎么办了,它走到哪儿是哪儿,什么情 况都有可能发生。因此说白了,就是需要我们指定单片机下一步该干嘛,由于我 们这个项目只需要实现继电器的简单切换就可以了,所以我们只需要让单片机切 换完继电器,老实呆着就行。While(1)就是死循环。在这边死等。 声明:当大家看到这边的时候会发现有好多和实现点亮 LED 项目有重复的东西, 这是我们特意这么安排的,我们想通过前期多重复一些有必要的内容,大家对这 些内容的印象就会更深刻些。 编译和程序的下载这里就不重复了。详细请查看“点亮一个 LED 灯.pdf”文件。 体验“爱普学习法”! 14 一起追求卓越!

Top_arrow
回到顶部
EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。