《PIC单片机技术上机指导书》.docx
- 文档编号:28541124
- 上传时间:2023-07-18
- 格式:DOCX
- 页数:22
- 大小:1.60MB
《PIC单片机技术上机指导书》.docx
《《PIC单片机技术上机指导书》.docx》由会员分享,可在线阅读,更多相关《《PIC单片机技术上机指导书》.docx(22页珍藏版)》请在冰豆网上搜索。
《PIC单片机技术上机指导书》
PIC单片机技术
实验指导书
电子信息与电气工程系
通信教研室
一、说明
1.1《PIC单片机技术》课程上机实验学时为8课时。
1.2开发实验板电路
注:
1.假设开发实验板上采用的PIC单片机型号为pic16f877a;
2.开发实验板上发光二极管接RB0~RB3。
二、实验项目
实验一I/O实验
图1.1实验系统连接图
注:
图1.1中,PC机与在线调试器的连接也可以采用USB接口。
若采用USB接口,则ICD2_USB的驱动程序在C:
\ProgramFiles\MPLABIDE\Driver2000\ICD2_USB
C:
\ProgramFiles\MPLABIDE\DriverXP\ICD2_USB
C:
\ProgramFiles\Microchip\ICD2\Drivers目录下。
1.目的
1熟悉MPLABIDE开发环境,重点掌握MAPLABICD2的开发过程。
2学习项目的创建。
3掌握ICD2作为调试器(Debugger)的开发步骤。
4掌握ICD2作为编程器(Programmer)的开发步骤。
5学习应用程序的编写、调试、烧写。
6掌握子程序(延时子程序)的概念及其调用方法。
7掌握I/O口输出设置。
2.要求
①RB0~RB3的发光二极管按照下图循环点亮闪烁,间隔时间为1秒。
3.实验设备
计算机一台,ICD-2仿真器一个,DEMO板一块,电源+9V一个
4.操作步骤
(1)建立一个项目目录,如D:
\exp1。
选择MPLABIDE的主菜单Project\New,创建一个新的项目,对话框如下
(2)选择Project\SelectLanguageToolsuit,如图设置好路径。
(3)新建应用程序。
选择File/New,在打开的对话框中输入程序。
然后选择File/Save,保存到D:
\exp1目录下。
保存类型为*.asm
(4)将应用程序IO.asm添加到项目中。
说明:
步骤
(1)~(4)用于创建一个项目,并把应用程序添加到项目中。
(5)选择单片机芯片Configure\SelectDevice:
PIC16f877a;选择调试器Debugger\SelectTools\MPLABICD2。
进行配置位设置,如下
(6)选择Debugger\Settings,communication接口选择USB(或com1com2,根据实
际连接选择)。
(7)选择Debugger\Connect连接到MPLABICD2。
(8)编译程序。
Project\BuildAll或者Make
(9)烧写程序。
Debugger\\Program,将调试代码下载到PIC单片机中。
(10)运行程序。
Debugger\Run全速运行
Debugger\Animate单步运行
(5)~(10)采用Debugger调试。
说明:
1.运行时,可以用View菜单下的各种视图,观测数据存储器(FileRegester)、程序存储器(Programmemory)、单片机引脚(SpecialFunctionRegister)的信号和数据的变化。
2.采用Programmer编程时,与Debugger类似。
不再说明。
实验二定时/计数器实验
1.目的
1了解PIC数据存储器的结构
2掌握PIC的定时器/计数器0的工作原理;
3掌握PIC接收键盘操作的处理方法,包括按键操作检测和去抖动的软件实现方法;
4掌握子程序的调用及应用
5掌握定时器中断处理
2.要求(任务任选1)
2.1任务1
通过RA4引脚检测按键S2的所按次数,并通过RB0~RB3以四位二进制显示计数值,当数值操作15时,又恢复到0重新计数。
2.2任务2
通过RA4引脚检测按键S2的是否按下,当S2按下后,RB0~RB3的发光二极管按照下图循环点亮闪烁,通过定时器0定时,间隔时间为1秒。
3.实验设备
计算机一台,ICD-2仿真器一个,DEMO板一块,电源+9V一个
4.任务1参考程序
;**********************************************************
;*.检测引脚按键次数
;说明:
本实验以RA4作为按键输入(平时为高电平、按下为低电平),RB0~RB3作为
;输出显示
;**********************************************************
listp=16f877a;//芯片型号根据实际修改
include"p16f877a.inc"
RP0equ5
RP1equ6
delay1equ22h
delay2equ23h
aequ24h;存放按键次数
;*********************************************************
;主程序
org0x30
nop
callInitial
mainloop
callDelay
callDelay
btfssPORTA,4;测试开关是否被按下
callCheck
gotomainloop
;************************************************
;初始化子程序
Initial
bcfSTATUS,RP1
bsfSTATUS,RP0;选存储体1
clrfTRISB;输出
bcfSTATUS,RP1
bcfSTATUS,RP0;选存储体0
clrfPORTB
movlwB'00001111'
movwfPORTB
movlw0x00
movwfa
return
;************************************************
;键盘处理子程序
Check
incfa;
ifa==0fh
clrfa;a计数记满后重新计数
endif
movfa,0;a-->W
movwfPORTB
check1
btfssPORTA,4
gotocheck1;若RA4仍为低电平,继续检测
callDelay;若RA4为高电平,则说明按键断开,此时调用延时子程序,消除断开抖动影响
;为了保险起见,再测一次
btfssPORTA,4
gotocheck1
return
;************************************************
;延时子程序
Delay
movlw05Fh
movwfdelay1
clrfdelay2
Delayloop
decfszdelay2,1
gotoDelayloop
decfszdelay1,1
gotoDelayloop
return
;************************************************
end
实验三A/D实验
1.目的
1了解A/D转换的应用;
2掌握PIC16F87X的A/D转换模块功能的实现方法;
3通过ICD2窗口观察A/D转换结果
2.要求
以RA0引脚作为模拟信号的输入通道用发光二极管来显示A/D转换的结果。
当RA0输入最小电压为0V时,发光二极管显示全暗,当输入电压每增1伏,LED灯多点亮1个,当RA0输入最大电压为5V时,4个发光二极管间隔1秒闪烁。
常见问题
1、问:
烧写过程出现如下
ICD0161:
Verifyfailed(MemType=Program,Address=0x30,ExpectedVal=0x186,ValRead=0x0)ICD0275:
Programmingfailed.答:
调试器和目标板没有连接好,可能是RJ45水晶头没接好。
3.实验设备
计算机一台,ICD-2仿真器一个,DEMO板一块,电源+9V一个
实验四综合实验
1.目的
①学习简易电子系统设计方法;
②掌握综合应用ICD2进行软硬件联机调试;
③掌握静态显示编程方法;
④掌握矩阵键盘设计;
2.要求
①设计一个0°~99°简易温度控制系统,控制温度在所设定的温度值±2度内。
②能通过3实现×4矩阵键盘进行温度设置(设十个数字键,两个功能键);
③掌握两位7段LED数码管静态显示编程方法;
④通过热敏电阻来检测温度,电路自定;
⑤实现方案自拟定。
3.实验设备
计算机一台,ICD-2仿真器一个,电源+9V一个,自制电路板
附录
利用Proteus仿真PIC应用系统
Caizhiming2008.4.25
第一篇开发详细步骤
一、在MAPLABIDE中的操作步骤。
(这部分内容和以前介绍的一样,只需要创建项目、保存程序、编译3个步骤,其它的步骤不需要。
)
1、创建一个新文件夹D:
\PICTEST
2、打开MAPLAB,在主菜单点击Project\New
在PICTEST目录创建项目01_LedTest(注:
该名称自己取),如上图。
3、点击主菜单File\New新建一个程序,并以porgram01命名(注:
该名称自己取),存放在PICTEST文件夹。
并如下图添加到项目01_LetTest中。
程序内容如下:
LISTp=16F877
#include"P16F877.INC"
delay1equ22h
delay2equ23h
ORG0
bankselTRISB;选择TRISB所在的体
bcfTRISB,0;RB0设置为输出
bankselPORTB;选择PORTB所在的体
loopbsfPORTB,0;RB0=1
callDelay;延时
bcfPORTB,0;RB0=0
callDelay;延时
gotoloop
;************************************************
;延时子程序
Delay
movlw0FFh
movwfdelay1
clrfdelay2
Delayloop
decfszdelay2,1
gotoDelayloop
decfszdelay1,1
gotoDelayloop
return
;************************************************
END
4、选择单片机型号
5、点击主菜单Project\BuildAll。
对程序进行编译,若通过则生成一个后缀为*.HEX的文件,该文件在Proteus仿真时要装入PIC单片机中。
二、Proteus中的操作步骤
1、打开Protesu7professional\ISI7professional,如下图。
点击P进行元器件选择。
输入关键字pic进行搜索,找到PIC16F877,并双击它添加到自己。
2、同理添加发光二极管LED_RED、电阻RES、按钮BUTTON、开关SWITCH
3、将元器件拖放到工作区。
选中PIC16F877,并将鼠标移到工作区在适当的位置单击左键即可。
同理拖放电阻、发光二极管。
4、添加接地GROUND。
如下图。
(注:
若电源,如+5V,要选择POWER)
元件之间的连线很简单,直接用鼠标左键选中引脚并连到另一个引脚即可。
5、保存Proteus的设计文件。
保存在PICTEST,名称为ProteusDesign01。
6、各个元件的参数设置。
(1)单片机设置
双击PIC单片机,如下图装入前面在MAPLABIDE中编译好的程序program01.hex。
也可修改其它参数,如时钟频率(即晶振频率)等。
(2)电阻设置。
双击电阻RES,由于该电阻做限流电阻,要改小点,改为100Ω。
(3)接地设置
注:
String,给该接地取一个名称。
7运行仿真。
点击如下图按键。
注:
观察芯片引脚颜色变化,红色代表高电平、蓝色代表低电平。
Proteus中单片机芯片默认已经添加电源与地,所以可以省略。
单片机外接晶振也可以省略。
第二篇Proteus常用器件中英文对照表
AND与门
BATTERY直流电源
BELL铃,钟
BUZZER蜂鸣器
CAP电容
CAPACITOR电容
CAPACITORPOL有极性电容
CRYSTAL晶振
DIODE二极管
DIODESCHOTTKY稳压二极管
DIODEVARACTOR变容二极管
DPY_3-SEG3段LED
DPY_7-SEG7段LED
DPY_7-SEG_DP7段LED(带小数点)
ELECTRO电解电容
INDUCTOR电感
INDUCTOR3可调电感
LAMP灯泡
LED发光二极管
METER仪表
MOTORAC交流电机
MOTORSERVO伺服电机
NAND与非门
NOR或非门
NOT非门
NPNNPN三极管
OPAMP运放
OR或门
PHOTO感光二极管
PNP三极管
NPNDARNPN三极管
POT滑线变阻器
RES1.2电阻
RES3.4可变电阻
SPEAKER扬声器
SW?
开关
SW-PB按钮
DPY_7-SEG_DP数码管
SW-PB开关
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PIC单片机技术上机指导书 PIC 单片机 技术 上机 指导书