PIC单片机实验指导书.docx

上传人:b****5 文档编号:6400821 上传时间:2023-01-06 格式:DOCX 页数:22 大小:1,016.19KB
下载 相关 举报
PIC单片机实验指导书.docx_第1页
第1页 / 共22页
PIC单片机实验指导书.docx_第2页
第2页 / 共22页
PIC单片机实验指导书.docx_第3页
第3页 / 共22页
PIC单片机实验指导书.docx_第4页
第4页 / 共22页
PIC单片机实验指导书.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

PIC单片机实验指导书.docx

《PIC单片机实验指导书.docx》由会员分享,可在线阅读,更多相关《PIC单片机实验指导书.docx(22页珍藏版)》请在冰豆网上搜索。

PIC单片机实验指导书.docx

PIC单片机实验指导书

实验一 MPLABIDE系统使用向导

一、启动MPLABIDE

启动MPLABIDE有两种方式:

(1)Start>Programs>Microchip>MPLABIDE7.41>MPLABIDE。

(不同版本的MPLABIDE软件可能路径名称会略有不同。

(2)双击桌面上的MPLABIDE图标

 

二、创建源文件

选择File(文件)>new…(新建),出现一个文本编辑窗口,在该窗口中输入以下汇编语言源程序

 

先创建文件夹F:

\myprj,然后将上面输入的源程序保存该文件夹,注意文件的扩展名为asm,这里我们将它保存为exam1.asm:

 

文件保存后,我们发现源程序编辑窗口中的程序被着上了各种颜色,这些颜色能帮助我们更好地阅读源程序,快速发现输入有误的指令:

三、创建项目

项目是将文件组织起来以便进行编译和汇编的方式。

选择Project(项目)>new…(新建),出现NewProject(新项目)对话框:

 

在NewProject(新项目)对话框中,我们将这个示例项目命名为MyPrj,使用Browse按钮,将项目放在名为D:

\myprj的文件夹中。

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

四、给项目节点添加文件

源文件是必须添加的。

其他文件,如头文件、库文件、链接描述文件,视项目的具体情况可加可不加。

在本实例中,只添加一个源文件exam1.asm,在左边的项目窗口中找到SourceFiles节点,在其上点鼠标右键,在弹出的快捷菜单中选AddFiles(如上图所示)。

双击要添加的文件exam1.asm,或单击要添加的文件exam1.asm,然后点“打开”按纽:

文件添加成功后的项目窗口如下,SourceFiles节点下已经添加了文件exam1.asm

五、编译文件

 选择Project>BuildAll或在项目窗口中的项目名称上点击右键,并从弹出菜单中选择“BuildAll”。

  MPASM汇编器总会生成文件名与源文件(.asm文件)名相同的目标文件(.hex文件)。

编译时会打开一个状态窗口,显示编译的进度和最后的结果。

编译完成后自动关闭该窗口。

同时还将打开Output窗口,Output窗口没有出现红色警告或错误信息,而且最后一句显示“BUILDSUCCEEDED”,就表示编译成功了:

如果编译失败,请检查以下各项,然后重新编译项目:

1.检查在编辑器窗口中输入的所有代码的拼写和格式。

如果在Output窗口中报告有错,双击该错误就会在源代码窗口左侧的灰色区域中以绿色箭头指出源代码中出错的行。

2.检查用于该项目及其项目文件的语言工具是否正确。

六、程序实例

ORG0020H

MAINNOP

BANKSELTRISD;选择TRISD寄存器所在存储体

MOVLWB'00000000';赋值给工作寄存器W

MOVWFTRISD;设置PORTD全部输出以便驱动LED显示

BANKSELTRISB;选择TRISB寄存器所在存储体

MOVLWB'11111111';赋值给工作寄存器W

MOVWFTRISB;设置PORTB全部输入以便读取开关量

BANKSELPORTB;选择PORTB寄存器所在存储体

MOVFPORTB,W;RB口赋值给工作寄存器W

BANKSELPORTD;选择PORTD寄存器所在存储体

MOVWFPORTD;将值工作寄存器W值赋给PORTD口

NOP

NOP

NOP

GOTOMAIN

 

实验二 按键计数器

一、实验目的

学习PIC16FXXX系列单片机I/O端口的特点与应用,以及RB0端口外部中断功能应用,了解中断概念与实际应用,熟悉查寻方式与中断方式的编程方法,实现按键计数器应用编程。

二、实验原理

PIC系列单片机的I/O口具有较强的驱动能力,可以直接驱动LED显示器。

每个I/O口允许最大灌电流和拉电流分别为25mA和20mA。

由于不同端口结构有所差异,使得各端口接供的总电流也各不相同,RB口的总灌电流和拉电流分别可达到150mA和100mA。

其它口为80mA和50mA。

限流电阻的选择与发光二极管有关。

当PIC单片机电压为5V,发光二极管正常工作时压2V,驱动电流为5mA,则限流电阻的大小应为:

(5V-2V)/5mA=600

本实验是按键计数器,按键按下一次计数器加一。

再判断按键按下时要做去抖动处理。

计数值经LED数码管显示。

三、实验电路(参考)

 

四、实验要求

1.对按键按下的次数计数,在四位数码管上显示数值。

2.段码可通过查表方法获取或直接送至I/O口。

3.四位数码管进行动态显示,不能出现闪烁现象。

4.段选及位选如图2.1。

五、实验程序流程图

 

六、实验步骤

1.运行程序,观察显示结果。

2.改变延时程序时间常数,观察显示结果,并确定显示最佳刷新频率。

3.脱机运行,观察显示结果。

 

实验三 SPI接口

一、实验目的

熟悉PIC单片机同步串行外围接口(SPI)的主控模式与从控模式。

二、实验原理

本实验采用两片PIC16FXXX芯片:

一片PIC16FXXX芯片工作于SPI接口主动方式,该芯片(主控器)对模拟电压采集转换,并将转换结果经SPI接口串行传输出;另一片PIC16F877芯片工作于SPI接口从动方式,该芯片(被控器)将主控器传输过来数据通过LED数码管显示。

三、实验电路(参考)

 

四、实验内容与要求

1.完成主控器的初始化编程

2.完成被控器的初始化编程

3.完成调试,实现主控器与被控器的通信。

 

五、实验程序流程图

 

六、实验步骤

1.执行程序,观察LED数码管显示的数值。

2.调整电位器,观察LED数码管显示的数值。

 

实验四 EEPROM存储器读写

一、实验目的

1.熟悉I2C总线的通信方式。

2.掌握通过I2C总线实现CAT24WC02存储器的数据读写。

二、实验原理

本实验采用两片PIC16FXXX芯片作为主控器,该芯片(主控器)对IO口模拟I2C协议对CAT24WC02存储器进行读写。

PIC16FXXX单片机将RB口开关量读入,并写入CAT24WC02存储器某单元,然后从该单元读出,数据经RD口LED灯显示。

三、实验电路

 

四、实验内容与要求

1.完成主控器的初始化编程

2.完成被控器的初始化编程

3.完成调试,实现主控器与被控器的通信。

五、实验程序流程图

 

六、实验步骤

1.执行程序,观察LED数码管显示的数值。

2.调整电位器,观察LED数码管显示的数值。

 

实验五  异步串行通信

一、实验目的

1.熟悉UART串行通信标准。

2.掌握PIC单片机之间及其与PC机的串行通信的编程技术。

二、实验原理

PIC16FXXX与PC机进行近距离通信或PIC16FXXX单片机之间的近距离通信。

当采用PC机作为上位机则采用MAX232芯片将TTL电平转换成RS232电平。

实验实现上位机向下位机机发出发送数据。

下位机将接收到数据返回给上位机。

三、实验电路(参考)

 

四、实验内容与要求

1.完成PIC16FXXX系列单片机异步串行通信端口的初始化编程。

2.完成PIC16FXXX系列单片机异步串行通信数据发送与接收编程。

3.当采用PC机为上位机,则需要完成PRS232C通信相关电路设计并使用调试助手实现PC机数据发送与接收(也可采用VB6.0编写相关通信程序);完成调试,实现单片机与PC机的通信。

五、实验步骤

1.编写下位机程序,并编译。

2.编写上位机程序,并编译。

如果采用PC机为上位机则采用串口调试助手实现上位机与下位机通信的调试

3.完成上位机与下位机软硬件调试。

 

实验六 定时器/计数器与CCP模块

一、实验目的

理解定时器的工作原理,熟悉CCP模块PWM功能的实践方法,利用定时器结合CCP模块,产生连续的脉冲信号,掌握相关的软件编程。

二、实验原理

PWM输出波形有两个参数:

周期和工作周期。

PWM周期由寄存器PR2决定,计算公式为:

PWM周期=[(PR2)+1]×4×Tosc×(TMR2预分频数)。

10位分辨率的PWM高电平脉宽由寄存器CCPR1L的八位与CCP1CON中的

D4>两位决定

定时器2复位,RS触发器置位,当定时器2值与CCPR1L的八位与CCP1CON中的

D4>两位相匹配时RS触发器复位,当定时器2值与PR2内容相匹配,定时器2复位,RS触发器置位,一个PWM信号周期结束,另一个PWM信号周期开始。

三、实验要求

1.用示波器观察PORTC<2>引脚波形,并记录输出波形频率及占空比。

改变定时器2初值,观察频率的变化。

2.通过改变CCPR1L的八位与CCP1CON中的

D4>两位的数值,观察占空比的变化。

四、实验程序流程图五、实验步骤

1.

执行程序,观察PORTC<2>输出,

计算频率和占空比。

2.改变定时器2初始化值,重复1。

3.改变CCPR1L的八位与CCP1CON中的

D4>两位的数值,重复1。

 

实验七  A/D转换

一、实验目的

理解PIC16FXXX系列单片机A/D转换模块的原理,掌握A/D转换功能的实现方法。

二、实验原理

PIC16FXXX系列单片机的A/D转换模块具有8个模拟输入。

这些模拟输入通道共享一个采样保持电路,用一个多选一模拟开关进行切换。

采样保持电路的输出也是A/D转换器的输入。

A/D转换器是采用逐次逼近法进行模数转换,转换结果是10位数字量。

A/D转换的模拟基准电压可用软件编程选择,可以选择芯片的正电源电压Vdd,负电源Vss以及参考电压。

为实现A/D转换功能,PIC16F877使用了4个寄存器,它们分别是:

存放10位A/D转换结果的ADRESH和ADRESL,A/D控制器0(ADCONO)和A/D控制器1(ADCON1)。

ADCON0主要控制A/D模块的工作,ADCON1主要负责配置端口的引脚,使这些引脚成为A/D模拟量的输入端。

三、实验电路

图一

图二

四、实验内容与要求

由A/D通道输入可调的模拟信号,A/D转换结果由发光二极管显示。

PIC16F877的转换位数为10位。

在连续两次A/D转换之间需要有一定时间的延迟,以提高采样精度,等待时间不小于2倍A/D转换时间。

启动A/D转换开始,可以通过查询PIR1寄存器中的中断标志位ADIF,以判断A/D转换是否结束。

转换结束后,方可准确读取其结果。

程序可设计成(复位一次采样一次)间断式采样显示,也可设计成连续式采样显示。

A/D转换结果显示方式可采用LED数码显示,也可采用将结果发送给上位机(PC机),通过串口调试助手上位机(PC机)上得到显示。

五、实验程序流程图

 

六、实验步骤

1.执行程序,观察显示结果。

2.调整电位器,观察显示结果变化情况。

 

附录A单片机芯片引脚图

 

 

 

附录BPIC16F946编程几点说明

教材使用PIC16F877芯片目前市场价格昂贵,采用PIC16F946有利于降低成本,但PIC16F946进行试验指导书相关实验编程时与PIC16F877有明显不同的地方

一、引脚不同

在进行SPI实验过程中,SCK在PIC877单片机中为RC3,而在PIC16F946单片机中为RC6;SDI在PIC877单片机中为RC4,而在PIC16F946单片机中为RC7;SDO在PIC877单片机中为RC5,而在PIC16F946单片机中为RC4。

在进行PWM(脉宽调制)实验中,采用CCP1模块编程,CCP1模块的输出在PIC16F877单片机中为RC2,而在在PIC16F946单片机中为RC5。

二、新增寄存器(可以采用默认值)

在进行AD转换编程中,数字口与模拟口功能选择,PIC16F946需要使用ANSEL寄存器配置模拟通道为输入模拟模式,ANSEL寄存器0位对应模拟通道AN0,依次类推ANSEL寄存器7位对应模拟通道AN7。

当ANSEL寄存器内容为B‘10000000’,则表示模拟通道AN7工作在模拟模式下。

三、同名寄存器内容发生变化

AD转换编程中,PIC16F946单片机中寄存器相对于PIC16F877单片机,其中ADCON0与ADCON1的内容发生了变化。

 

MPLAB-ICD模块和仿真头用来对演示板或目标板进行在线调试(ICD)

MPLAB-ICD的电源是由目标板提供的,电压3.0V到5.5V。

ICD在不同工作模式下的电压和相应的电流如下表,MPLAB-ICD模块电原理图如附图1,仿真头电路板如附图2,仿真头电原理图如附图3。

工作模式

5V

3V

调试

35mA(最大)

20mA(最大)

运行

40mA

25mA

校验

60mA

50mA

烧写

60mA

50mA

 

二、MPLAB-ICD演示板

MPLAB-ICD演示板是一个支持PIC16F87X微控制器的简单演示电路板。

该电路板上插入一片预先编程PIC16F87X芯片后可独立工作,也可配合MPLAB-ICD模块和仿真头一起工作.演示板上提供了40脚和28脚插座,可供PIC16F871/874/877(40脚)和PIC16F870/872/876(28脚)两种管脚类型的处理器选择。

1、显示:

8只发光二极管连接到处理器的PORTC。

PORTC的管脚输出高电平时点亮发光二极管。

2、DIP拨码开关:

SW3是8位DIP拨码开关。

当所有的开关都处于“NO”时,则所有发光二极管都接到PORTC上相应的口线上。

3、电源供应:

MPLAB-ICD模块的供电来自应用板,电压范围3.0V到5V(电流0.75mA或更大)。

假如有PICTARTPLUS烧写器,则可用它的电源适配器为演示板直接供电。

4、ICD的连接:

紧接着电源插座下面的插座是将ICD模块和演示板直接连接的电缆插座。

5、RS-232串行口:

在演示板上安装一片RS-232电平转换接口芯片,通过一个DB插座和主计算机的串行口连接。

该串行口被配置为DCE(一种规范:

数据通信设备)方式,和计算机之间用一条通用RS-232接口电缆连接,和NULLMODEM电缆不同。

电路由用户配置安装:

·U4-MAX232A或兼容接口芯片。

·R14-R19-330,1/8W电阻。

·C7-C11-0.1µF电容。

6、按钮开关:

按钮开关的功能如下:

·MCLR用作复位处理器。

·连接到RBO,低电平有效(按下时输出低电平)。

7、振荡类型选择:

通过正确设置跳线(JPI),可选择演示板上的RC振荡器或在4芯插座里插入一只振荡器。

·振荡器插座里可以插入时钟振荡器:

频率范围32kHz~20MHZ

·RC振荡电路:

时钟由一个4.7k

电阻和一只20PF电容器组成。

频率范围3.5MHz到6MHz之间,取决于工作电压和环境温度。

8、模拟量输入:

一个1k

的电位器串联一只470

的固定电阻(保护电阻,其管脚之一设置为输出)连接到MCU的口线RAO/ANO。

对于16F87X其模拟输入口的电压可以从VDD到电源地(GND)之间变化。

9、由于PIC16F87X内建在线调试能力和Microchip调试器的“在线串行编程”功能,MPLAB—ICD将会占用以下资源:

·系统复位MCLR和编程电压VPP共用一个管脚。

·禁止低电压“在线串行编程(ICSP)”。

·RB6和RB7保留为编程和在线调试用。

·六个通用文件寄存器保留给调试监控程序。

·程序存储器的最后256或88个字被保留用来存放调试代码(根据芯片类型不同所占字节数不同)。

MPLAB—ICD占用的PIC16F87X目标系统控制器中的文件寄存器和程序存储器资源如下表:

处理器类型

被占用的文件寄存器

被占用的程序存储器

PIC16F870/871/872

0x70,0x0BB~0x0BF

0x06E0~0x07FF

PIC16F873/874

0x70,0x0EB~0x0F0

0x0EE0~0x0FFF

PIC16F876/877

0x70,0x1EB~0x0BF

0x1F00~0x1FFF

9、电原理图:

附图1~4为MPLAB-ICD的电路原理图。

 

附录A16F877芯片引脚图

 

 

附录A16F877芯片引脚图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1