PIC单片机快速入门

PIC单片机快速入门

作者:王伟民

初学者学习单片机首先遇到的问题是:到底学哪种单片机?目前适合初学者学习的单片机主要有三种类型:51、PIC、A VR。其中PIC单片机由于具有架构先进、速度快、品种多、价格低、编程简单灵活的优点,正逐渐替代51成为主流,据我们了解现在国内工厂开发新产品普遍使用PIC,很少用51了,国内大学也普遍开设PIC课程。由于有越来越多的人学习PIC,遇到问题您也不用担心找不到高手请教。应该说:PIC是个不错的选择。

初学者接着会问的问题是:PIC单片机好学吗?其实PIC是最适合初学者学习的单片机,其基本系列的单片机只有三十多条汇编指令(51、A VR都在100条以上),支持C语言,目前推出的绝大多数是FLASH单片机,使用“在线编程”方式烧写,操作简便,可反复烧写次数高达10万次,当然最最吸引初学者的是:有越来越多的PIC单片机支持“在线调试”,其功能相当于仿真器,可帮助初学者轻松跨过“程序调试”这一单片机学习中的最大难关。

如果您开始动心了,那么就请跟我来,亲身体验一下PIC单片机的精彩吧!

所需的硬件

除了电脑,您需要的硬件有两样:

1、实验板

实验板也叫开发板、学习板或演示板,简单地说,实验板是用来跑程序的,也就是说我们编写的程序最终是在实验板上运行的。

图1是爱晶电子网站(https://www.360docs.net/doc/b017871622.html,)推出的3ePIC实验板,上面配置的单片机是PIC16F877A。

其上的硬件资源有:8位LED,4位数码管、继电器、蜂鸣器、步进和直流电机双用驱动电路、1x5动态键盘、4只静态键盘、2个多功能模拟A/D输入口、8位数字量输入口、8路平拨开关输入、脉宽型D/A转换电路、红外接收头、1602液晶接口、24C16、32768Hz 实时时钟晶振、DS18B20接口、RS232串口。

利用该实验板,我们可以方便地完成各种单片机实验;如计数器、液晶显示、智能终端、步进电机控制、直流电机调速、数字温度计、数字电压表、数字时钟、红外遥控……

2、ICD2

它的中文名字是“在线调试编程器”,它具有调试编程“二合一”的功能,也就是说,这个小小的盒子既具有调试器的功能,同时也具有编程器的功能,这两种功能的切换是通过软件完成的。利用它的调试器功能,我们可以快速方便地查找程序中错误,而利用它的编程器功能,可将调试无误的程序最终烧写到单片机中。

ICD2现在有两个版本,一种是串口的(ICD2-RS232),价格便宜,速度也还可以,比较适合初学者入门使用;另一种是USB的(ICD2-USB),见下图,它的速度和可靠性优于串口的,适合专业开发人员使用。这里我们选用ICD2-USB。

MPLAB IDE的安装

单片机开发光有硬件是不够的,还得有软件的配合。我们需要在电脑上安装MPLAB 集成开发环境(IDE),其最高版本是7.51,下载地址https://www.360docs.net/doc/b017871622.html,/downloads/en/DeviceDoc/MP751.zip,中文版下载地址

https://www.360docs.net/doc/b017871622.html,/mp710cn.rar,安装运行后的界面如下:

硬件设置、连接及USB 驱动安装

1、去掉实验板J9上的短路帽,插上J3上的的短路帽,实验板由ICD2供电。

2、ICD 2-USB和开发板之间用在线调试编程电缆连接,在线调试编程电缆是一根两端均为水晶头的扁平电缆。

3、然后,ICD 2-USB和PC机之间用USB 电缆连接,在WINDOWS XP SP2操作系统下,会弹出“找到新的硬件向导”对话框,选择“自动安装软件”,系统会自动安装所需的驱动。

如何完成一个简单项目的开发

通过上面的步骤,我们已经建立了开发PIC单片机必需的软硬件环境。下面我们通过演示程序来介绍开发一个简单项目的全过程。为便于大家理解演示程序,我们先给出简化电路图:

1.创建源文件

选择File>new…,出现一个文本编辑窗口,在该窗口中输入以下汇编源程序:

LIST P=16F877A

INCLUDE "P16F877A.INC" ;头文件的设定

ORG 0000H ;复位地址

NOP ;MPLAB专用语句

BSF

STATUS,5 ;选择体1

CLRF TRISD ;PORTD设置为输出

CLRF TRISE ;PORTE设置为输出

BCF

STATUS,5 ;选择体0

;PORTD清零

CLRF PORTD

;RE0清零,选通8位LED

BCF PORTE,0

LOOP BCF PORTD,0 ;熄灭LED0

BSF PORTD,0 ;点亮LED0

GOTO LOOP ;不断循环

END

因为我们后面需要用ICD2调试程序,因此按要求在程序开头放上了一条空语句(NOP)。接着是对单片机内部控制单片机工作的一些寄存器进行初始化,最后是一个循环体,循环体内包含了完成预定功能的语句。

将上面的源程序命名为exam1.asm并保存到D:\myprj文件夹。

2.创建项目

选择Project>new…,出现New Project对话框:

我们将这个项目命名为MyPrj,并将项目文件夹设为D:\myprj。

单击OK按钮,我们会看到已创建项目的的项目窗口,如下图:

3.给项目节点添加源文件

在项目窗口中找到Source Files节点,在其上点鼠标右键,再在弹出的快捷菜单中选Add Files,找到已创建的源文件exam1.asm,双击即完成添加。

4.选择器件

选择Configure>Select Device。在Select Device 对话框中,点device栏右边的下拉箭头,选择器件为16F877A。

5.设置配置位

选择Configure>ConfigurationBits。通过点击“Settings”栏中的文本,可以更改这些配

置位。其中Oscillatot(振荡方式选择),可选XT或HS,其他各项均选“off”或“Disabled”。

6.选择ICD2作为调试器并进行设置

a.选择Debugger>Select Tool>MPLAB ICD2,选择MPLAB ICD2作为调试器。

b.选择Debugger>MPLAB ICD2 Setup Wizard…,启动ICD2调试器设置向导,选择ICD2的通信口为USB,选中自动连接和自动下载操作系统(OS)。

c.设置好以后,系统会自动建立PC与ICD2之间的通讯连接,见下图:

输出窗口提示“…Connected”,表示已经正常连接,“Target Device PIC16F877A found”,则表示系统已经自动识别出单片机的型号。

7.生成目标文件(也叫编译)

选择Project>Build All。输出窗口最后一句显示“BUILD SUCCEEDED”,表示编译成功了。

8.为调试烧写目标代码

选择Debugger>Program,输出窗口倒数第3句显示“…Programming succeeded”,就表示烧写成功了。

9.在调试器模式下运行exam1

在调试模式下,我们可以使用多种调试技术,如“单步运行”、“变量和端口观察”、“断点设置”等,由于篇幅关系,这里只介绍“单步运行”。

点击调试器快捷工具条单步运行工具栏按钮或,语句会随着您的点击一条一条地运行。当执行到循环体时,发光管LED0会随着您的点击一下亮一下灭。

10.在编程器模式下烧写目标代码

当程序调试成功后,下一步是在编程器模式下烧写PIC单片机,以便它能脱离开发系统独立工作。

按照以下步骤进行烧写:

a.选择Debugger>Select Tool>none,取消MPLAB ICD 2 作为调试器。

b.选择Programmer>Select Tool>MPLAB ICD 2,选择MPLAB ICD 2作为编程器。

c.选择Programmer>MPLAB ICD2 Setup Wizard…,通过向导完成编程器的设置。

d.选择Programmer>Program,完成烧写。

11.程序运行

烧写完成后,选择programmer>Release from reset,开发板便进入运行状态。实际运行时,由于发光管亮灭变化的频率太高,我们看到的会是LED0常亮。

相关主题
相关文档
最新文档