您当前的位置:五五电子网电子知识电子制作自动控制-单片机用PIC单片机按键控制发光管亮灭的实验 正文
用PIC单片机按键控制发光管亮灭的实验

用PIC单片机按键控制发光管亮灭的实验

点击数:7140 次   录入时间:03-04 11:37:22   整理:http://www.55dianzi.com   自动控制-单片机

  按键是单片机系统中常用的信息输入部件,同时也是人机对话中不可缺少的输入设备。

  在和单片机构成系统的时候,按键通常有两种接法,一种叫做独立式按键,另外一种叫做行列式或者是扫描式按键,我们在基础实例中只学习独立式的按键电路。

  在这个实验里,我们RBO来控制LED的亮和灭。

  一、器件和原理.
  
  首先我们来了解一下按键的结构。一般的按键从实物来看,是个四端口器件,但是其实它是个二端口器件,参照图1中的按钮实物就不难明白,在按下塑料柱子之前,两个触点之间是不导通的,按下的时候就导通,通过外部电路的不同接法,就可以使其中一个端口在按下和不按下的时候产生电平变化,而单片机正是通过检测到这种变化来完成对按键输入信息的获得。那么我们不妨来看看原理图所示的按键的状态变化。我们知道单片机在按键按下之前,端口RBO保持在高电平状态,当按键按下时,RBO通过按键接到VSS,这个时候就是低电平。

  所以,我们要想在程序里检测到是否有按键按下,关键就是检查对应端口的状态变化,这个就是单片机系统中的按键编程的原理。所以针对我们的程序设计目的,我们的方法就是不断的检测RBO,然后根据检测结果控制LED。

  此外,PIC和51单片机不同的地方还在于整体系统的功耗,PIC系列单片机具有Sleep休眠省电工作模式,程序执行一条SLEEP指令,便进入了休眠(Sleep膜式。要Sleep模式下,晶振停止振荡,而此时单片机在3V电源条件下,只有1μA的电流。

  系统工作时,单片机可以采用看门狗或外部事件周期性地唤醒单片机,利用电子开关为系统提供电源,以减少系统待机功耗,延长电池使用时间,这也是为什么现在市场上很多遥控器的芯片使用PIC单片机的原因,遥控红外灯亮后闪烁几下,就灭了,整机电流降到微安级。

  根据实例要求,我们可以设计出如下图的硬件原理图。

用PIC单片机按键控制发光管亮灭硬件电路

  二、程序设计

  三、软件安装
  
  我们需要安装的软件是“MPLAB集成开发环境”。MPLAB集成开发环境(IDE)是一个综合性的设计平台界面,适用于使用MicroChipPICmicro和DSPIC单片机进行嵌入式设计的应用开发。我们在这个软件界面中编写程序代码,并通过它将写好的源程序代码编译成目标代码,即HEX文件,同时配合ICD2仿真烧写器和增强型PIC实验板完成软件程序的调试工作,最终通过ICD2仿真烧写器将定型的目标代码写入到开发板的单片机芯片中去。

  首先,在配套光盘中找到MPLABIDE安装文件,该文件也可以从Microchip网站下载,双击Install.exe文件根据向导安装完成即可。注意:此时MPLABIDE软件只支持使用汇编语言进行编程,我们准备使用C语言来进行程序编缉,所以,还需要为MPLABIDE软件安装一下C编译器插件。

  编程软件安装好后,我们连接好所有的线缆,插上芯片后,准备开始创建工程,我们先创建文件夹D:\FirstPro,然后将上面输入的源程序保存到该文件夹,注意文件名为sw.c。文件保存完成后,我们可以发现源程序编辑窗口中的程序字体颜色改变了,这些颜色能帮助我们更好地阅读源程序,快速发现输入错误的命令。文件保存后,我们需要进行项目的创建,项目将文件组织起来以便进行编译,我们选择菜单Project(项目)>new(新建),出现NewProject(新项目)对话框,在对话框中,我们将项目命名为MyPro,使用Browse按钮,将项目放在刚才创建的FirstPro文件夹中。单击OK按钮,在MPLABIDE界面中我们会看到已创建项目的的项目窗口,如果项目窗口未打开,请选择菜单View->Project。现在,我们需要将刚才创建好的源程序文件追加到项目中去,在此,源文件是必须添加的。其他文件,如头文件、库文件、链接描述文件,视项目的具体情况来确定是否追加。我们现在只需要将源文件led.c追加即可,在屏幕左面的项目窗口中找到SourceFiles节点,点击鼠标右键,在弹出菜单中选择AddFiles,双击要添加的文件sw.c即可。

  项目和源程序创建完成后,我们需要给项目设置好目标芯片型号和配置位。

  选择菜单Configure>SelectDevice,在SelectDevice对话框中,点device栏右边的下拉箭头,选择器件为PIC16F877A,注意后面带有字母“A”。(提醒:PIC16F877A和PIC16F877是两个内部结构和功能不同的芯片,两个芯片不能直接替换)。设置完成后,点击“OK”即可,如下图所示。

  设置配置位,选择菜单Configure->ConfigurationBits。通过点击“Settings”栏中的文本,可以更改这些配置位,我们将其做如下图所示配置。

  接下来,我们要为源程序做一项编译工作,即产生目标文件,等会我们要把该文件烧入到我们的PIC16F877A单片机芯片中去。选择菜单中Project->Build All项,或者按快捷键CTRI+F10就可以完成编译工作了,这时,你会在sw.c文件所在目录下发现一个名为“SW.hex”的文件,这就是我们所用来完成烧写芯片工作时使用到的目标程序文件,该文件为16进制文件。最后,我们将ICD2仿真烧写器切换到“烧写”模式,然后将我们编译好的HEX文件烧入芯片即可。




本文关键字:单片机  发光管  自动控制-单片机电子制作 - 自动控制-单片机