PIC实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PORTE=led;
//点亮第一个灯(连接 RE0 的灯)
while(1)
{
PORTE =led; for (i=0;i<65000;i++){};
led = led<<1; 灯点亮
//延时 //当第 6 个 LED 灯亮后,重新从第 1 个 LED
if (led == 0x40)
led = 0x01;
int main(void);
/*可无
*/
unsigned int Add(unsigned int a, unsigned int b); /*函数定义*/
unsigned int x, y, z;
Int main(void)
/*主程序 */
{
x = 2;
y = 5;
z = Add(x,y);
return 0;
}
unsigned int Add(unsigned int a, unsigned int b) /*函数调用*/
{
return(a+b);
文件 1 /* ex1.c */
#include <p30f4011.h>
int main(void);
unsigned int Add(unsigned int a, unsigned int b);
(2)选择 Debugger>MPLAB ICD2 Setup Wizard 安装 ICD2
(3)对 ICD2 设置:选择 Debugger>Setting
(4)对目标板配置:选择 Configure>Configure Bits
6、 上机实验代码
#include <p30f4011.h>/*这个头文件提供了该器件的所有特殊功能寄存器的定义*/
}
return 0;
}
实验练习三:硬件描述:RE0-RE5 配置为输出,连接 LED,RE8 配置为输 入连接按键 S8 功能描述:RE8 按键按下时循环点亮 LED 灯
#include "p30f4011.h“
int main(void)
{ int led=0x00;
while(1)
{
TRISE =0x0100; //将 RE0-RE5 配置为输出 0,RE8 配置为输入 1
4、 使用 MPLAB SIM 软件模拟器进行调试 (1) 通过选择 Debugger>Select Tool>MPLAB SIM 将 MPLAB SIM 软件模 拟器作为调试工具。 (2) 选择 View>Watch 打开 Watch 窗口。从 Add Symbol 旁边的下拉 扩展菜单中选择 counter,然后点击 Add Symbol。
PORTE =0x00;
//RE0 输出低电平 0V,灭灯
}
实验练习二:RE0-RE5 配置为输出,连接 6 个 LED;循环点亮 #include "p30f4011.h“
int main(void)
{
int led=0x01;
unsigned long int i=0;
TRISE =0x00;
//RE0-RE5 配置为输出
实验一:软件工具使用
一、 实验目的 1、 学会使用 pic 单片机专用软件 MAPLAB IDE,如新建工程、链接在线 调试器 ICD2、文本文件编辑器、汇编编译器、软件仿真调试器等。 2、 简单 C 程序的编写、编译、链接、调试、仿真、烧写等练习,熟悉 C 程序编写过程,为后续学习奠定坚实基础。
二、 实验器材 1、计算机一台
3、 编译项目 (1)选择 Project>Build All 对项目进行编译、汇编和链接。如果有任何 错误或警告消息,会显示在输出窗口中。 (2)如果在项目编译后出现错误,可双击显示错误消息的行直接进入导 致该错误的源代码行。如果您使用的是例子中的代码,那么最常见 的错误就是拼写错误、漏掉了分号或大括号不匹配。
1、 学习什么是中断 1、中断的定义: 中断是指如下过程:CPU 与外设同时工作,CPU 执行主程序,外 设做准备工作,当外设准备好时向 CPU 发中断请求信号,若条 件满足,则 CPU 终止主程序的执行,转去执行中断服务程序, 在中断服务程序中 CPU 与外设交换信息,待中断服务程序执行 完后,CPU 再返回刚才终止的主程序继续执行。 2、中断源: ⑴中断源的定义:中断源是指引起中断请求的来源。
⑵中断源的分类: ①软中断和 ②硬中断
3、中断处理的全过程 中断处理的全过程分成 3 个阶段:中断请求、中断响应和中断服 务。
4、多重中断与中断优先级 ⑴ 当系统中有多个设备提出中断请求时,多个外设的中请信号
要通过门电路送到 CPU 的中请输入端,使 CPU 能收到多个外设 提出的中请。
⑵ CPU 在收到多个外设的请求后,按优先级原则处理中断。 2、 学习什么是中断请求
三、 实验步骤 1、 创建文件 新建源文件:选择 File>New 打开一个新的空白的源文件。 文件编写:直接在空白的源文件中输入编写的代码。
文件保存:点击 save 或者 save as,选择文件保存位置,保存路径必须全 为英文名,编辑文件名,然后即可保存。
2、 创建新的工程 (1)选择 Project>Project Wizard 来创建新项目。将出现一个欢迎页面。 点击 Next> 继续。 (2)在“Step One:Select a Device”中,通过下拉菜单选择 dsPIC30F60 芯片,点击 Next> 继续。 (3)在“Step Two:Select a language toolsuite”中,选择“Microchip C30Toolsuite”。 (4)在“Step Three:Name your project”中,键入项目名 MyProject 并 点击 BROWSE 进入 MPLAB C30 安装目录下的\examples 文件夹。 然后点击 NEXT > 继续。 (5)在“Step Four: Add any existing files to your project”中,将添加 两个文件到项目中。 (6)在 Summary (摘要)窗口中重新检查“项目参数”,验证芯片、 工具包和项目文件的位置是否正确。 (7)现在已经可以用 dsPIC30F 工具来编译项目,但是,需要检查项目 和工具编译选项。 (8)选择 Project>Build Options 并点击“Project”显示整个项目的 Build Options(编译选项)对话框。
unsigned int x, y, z;
int main(void) { x = 2; y = 5; z = Add(x,y); return 0; }
文件 2 /* add.c */ #include <p30f4011.h> unsigned int Add(unsigned int a, unsigned int b) { return(a+b); }
3、 掌握 I/O 端口控制寄存器 所有的端口引脚,都有三个与端口引脚的操作直接相关的寄存器。 TRISx:数据方向寄存器。决定各个引脚是输入引脚还是输出引脚。 若某个 I/O 引脚的 TRIS 位为“1”,则该引脚是输入引脚。 某个 I/O 引脚的 TRIS 位为“0”,则该引脚被配置为输出引脚。
断响应。
2.中断响应条件 CPU 响应中断是有条件的,如内部允许中断、中断未被
屏蔽、当前指令执行完等。
3.任何 CPU 在中断响应阶段一定做如下工作: ①保护断点和②给出中断服务程序入口地址(将中断服
务程序的首地址送给 PC,为 CPU 执行装段服务程序创造条件); 有的 CPU 还会做自动关中断等操作 4.给出中断服务程序入口地址的方法有 2 种:
if ((PORTE & 0x0100)==0x0000) //查询按键 S8 是否按下
{
for (i=0;i<10000;i++){ }
//延时消抖
if ((PORTE & 0x0100)==0x0000) //再次查询按键 S8 是否按下
ቤተ መጻሕፍቲ ባይዱ
led = led+1;
}
if (led == 0x40) //当第 6 个 LED 灯亮后,重新从第 1 个 LED 灯点亮
led = 0x01; PORTE =led; } return 0; }
实验三:中断
一、 实验目的
1、 学习什么是中断 2、 学习什么是中断请求 3、 学习什么是中断响应 4、 学习什么是中断服务 5、 了解中断处理原则 6、 了解中断优先级 7、 了解中断控制和状态寄存器 二、 实验器材
1、 计算机一台 2、 实验板 3、 ICD2 在线调试器 三、 实验步骤
(3) 点击工具栏中的 RUN 运行程序。
(4) 程序将在执行设置了断点的语句之前停下。源代码窗口左边空白
处的绿色箭头指向下一个要执行的语句。Watch 窗口中红色字体
显示,表明变量的值发生了变化。
5、 使用 MPLAB ICD2 进行在线调试,ICD2 连接,ICD2 设置及目标板配

(1)在集成开发环境中选择 Debugger>Select Tool>MPLAB ICD2
通过库管理器和链接器,可以将两个文件编译链接生成可执行文件
实验二:I/O 端口
一、 实验目的 1、 了解 I/O 端口特点 2、 掌握 I/O 引脚及连线 3、 了解 I/O 端口控制寄存器
二、 实验器材 1、 计算机一台 2、 实验板 3、 ICD2 在线调试器
三、 实验步骤 1、 了解 I/O 端口特点 1、所有 I/O 输入端口都是施密特触发器输入,以便增强抗干扰性。 2、外设复用:所有的器件引脚(除 VDD、VSS、MCLR 和 OSC1/CLKI 之 外),均为外设与 I/O 端口所共用。 如果外设使能,并且外设正在使用相关引脚时,该引脚将不再作为 通用 I/O 引脚使用。 3、优先级:I/O 与多个外设复用时 I/O 引脚的名称定义了与该引脚相关 的各个功能的优先级, 如:I/O 引脚与两个外设复用(“外设 A”和“外 设 B”)外设 A 对引脚的控制具有最高优先权,若外设 A 和外设 B 同时 使能,外设 A 将控制 I/O 引脚。 4、电平变化通知引脚:电平变化通知引脚(CN)内接输入电平变化通 知模块,使得 dsPIC30F 器件能够向处理器发出中断请求,以响应所选输 入引脚上的状态变化。 即使是在休眠模式下、时钟被禁止时,该模块也能检测输入的状态变化。 2、 了解 I/O 引脚及连线
CPU 每执行一条指令,其内的中断请求检测电路都要检测 中断请求输入端的状态
3、 学习什么是中断响应 1.中断响应定义 中断源向 CPU 发出中断请求,若其优先级别最高,CPU 在满足一定的条件下,可以中断当前程序的运行,保护好被中断
的主程序的断点及现场信息。然后,根据中断源提供的信息,找
到中断服务子程序的入口地址,转去执行新的程序段,这就是中
⑴ 固定入口式(中断服务程序的首地址固定,直接将此
规定地址送给 PC) ⑵ 矢量式。
4、 学习什么是中断服务 中断服务子程序是由用户根据自己的需要编制的,编制
时要注意如下问题:
1.CPU 都有中请输入线。 中请输入线有 2 类:非屏蔽中请输入线和可屏蔽中请输
入线;
2.CPU 的开、关中断。 CPU 内有 1 个中断请求触发器 IF,当 IF=1 时,称 CPU 开
中断,此时 CPU 可以处理收到的可屏蔽中请;当 IF=0 时,称 CPU 关中断,虽然 CPU 收到了可屏蔽中请,但不处理(响应)它。 3.CPU 内有中断请求检测电路。
复位以后,所有端口引脚被定义为输入。
PORTx:I/O 端口寄存器。访问的是 I/O 引脚上的数据。读的是端口引脚 值;写端口引脚,写的是端口数据锁存器(LATx )。 LATx:I/O 端口锁存寄存器。读的是数据锁存器里锁存的值;写锁存值, 写的是端口数据锁存器(LATx ) 4、 实验代码 实验练习一:第 38 引脚(RE0)接发光 LED;点 LED 灯,持续一定时间后 灭掉。
#include "p30f4011.h“
int main()
{
unsigned long int i = 0;
TRISE = 0x00;
//RE0-RE5 设置为输出;1 输入,0 输出
PORTE =0x01;
//RE0 输出高电平+5V,点灯
for (i=0;i<650000;i++){} //延时
相关文档
最新文档