1、PIC单片机技术上机指导书 2PIC单片机技术上机指导书 电子信息与电气工程系通信教研室一、说明PIC单片机技术课程上机实验学时为1012课时。上机实验采用开发板和Proteus仿真。1.1 开发实验板电路注:1.假设开发实验板上采用的PIC单片机型号为pic16f877a;2.开发实验板上发光二极管接RB0RB3。1.2 Proteus仿真见后面“利用Proteus仿真PIC应用系统” 二、实验内容实验一 I/O实验图1.1 实验系统连接图注:图1.1中,PC机与在线调试器的连接也可以采用USB接口。若采用USB接口,则ICD2_USB的驱动程序在 C:Program FilesMPLAB
2、IDEDriver2000ICD2_USBC:Program FilesMPLAB IDEDriverXPICD2_USBC:Program FilesMicrochipICD2Drivers目录下。1.目的1 熟悉MPLAB IDE开发环境,重点掌握MAPLAB ICD2的开发过程。2 学习项目的创建。3 掌握ICD2作为调试器(Debugger)的开发步骤。4 掌握ICD2作为编程器(Programmer)的开发步骤。5 学习应用程序的编写、调试、烧写。6 掌握子程序(延时子程序)的概念及其调用方法。2.要求 RB0RB3的发光二极管按照下图闪烁。3.操作步骤(1)建立一个项目目录,如D:
3、exp1。选择MPLAB IDE的主菜单ProjectNew,创建一个新的项目,对话框如下(2)选择ProjectSelect Language Toolsuit,如图设置好路径。 (3)新建应用程序。选择File/New,在打开的对话框中输入程序。然后选择File/Save,保存到D:exp1目录下。保存类型为 *.asm ()将应用程序 IO.asm添加到项目中。 说明:步骤(1)()用于创建一个项目,并把应用程序添加到项目中。()选择单片机芯片ConfigureSelect Device:PIC16f877a;选择调试器DebuggerSelect ToolsMPLAB ICD2。 进行
4、配置位设置,如下()选择DebuggerSettings,communication接口选择USB(或com1 com2,根据实际连接选择)。()选择DebuggerConnect连接到MPLAB ICD2。()编译程序。ProjectBuild All或者Make()烧写程序。DebuggerProgram,将调试代码下载到PIC单片机中。(1)运行程序。 DebuggerRun全速运行 DebuggerAnimate单步运行()()采用Debugger调试。说明:1.运行时,可以用View菜单下的各种视图,观测数据存储器(File Regester)、程序存储器(Program memor
5、y)、单片机引脚(Special Function Register)的信号和数据的变化。2.采用Programmer编程时,与Debugger类似。不再说明。实验二 定时/计数器实验1.目的1 了解PIC数据存储器的结构2 掌握PIC的定时器/计数器工作原理;3 掌握PIC接收键盘操作的处理方法,包括按键操作检测和去抖动的软件实现方法;4 掌握子程序的调用及应用2.要求通过RA4引脚检测按键S2的所按次数,并通过RB0RB3以四位二进制显示计数值,当数值操作15时,又恢复到0重新计数。3. 参考程序 ;*;* .检测引脚按键次数; 说明:本实验以RA4作为按键输入(平时为高电平、按下为低电平
6、),RB0RB3作为; 输出显示;*list p=16f877a ;/芯片型号根据实际修改include p16f877a.incRP0 equ 5RP1 equ 6delay1 equ 22hdelay2 equ 23h a equ 24h ;存放按键次数;*; 主程序 org 0x30 nop call Initialmainloop call Delay call Delay btfss PORTA,4 ;测试开关是否被按下 call Check goto mainloop;*; 初始化子程序 Initial bcf STATUS,RP1 bsf STATUS,RP0 ;选存储体1 cl
7、rf TRISB ;输出 bcf STATUS,RP1 bcf STATUS,RP0 ;选存储体0 clrf PORTB movlw B00001111 movwf PORTB movlw 0x00 movwf a return;*; 键盘处理子程序 Check incf a; if a=0fh clrf a ;a计数记满后重新计数 endif movf a,0 ;a-W movwf PORTB check1 btfss PORTA,4 goto check1 ;若RA4仍为低电平,继续检测 call Delay ;若RA4为高电平,则说明按键断开,此时调用延时子程序,消除断开抖动影响 ;为了
8、保险起见,再测一次 btfss PORTA,4 goto check1 return ;*; 延时子程序 Delay movlw 05Fh movwf delay1 clrf delay2 Delayloop decfsz delay2,1 goto Delayloop decfsz delay1,1 goto Delayloop return;* end实验三 中断实验1.目的1 掌握中断服务例程编写方法。2 了解中断的逻辑控制和中断处理过程3 掌握查询中断标志位来检测中断源的方法。2.要求 中断信号源来自RB0/INT引脚上的外部中断,采用边沿触发,下降沿触发。当RB0/INT引脚上来一个
9、脉冲时,接RC2的扬声器要能够马上发出声音报警。实验四 A/D实验1.目的1 了解A/D转换的应用;2 掌握PIC16F87X的A/D转换模块功能的实现方法;2.要求以RA0引脚作为模拟信号的输入通道用发光二极管来显示A/D转换的结果。当RA0输入最小电压为0V时,发光二极管显示0000,当RA0输入最大电压为5V时,发光二极管显示1111;中间值依输入电压相应变化。常见问题1、问:烧写过程出现如下 ICD0161: Verify failed (MemType = Program, Address = 0x30, Expected Val = 0x186, Val Read = 0x0) I
10、CD0275: Programming failed.答:调试器和目标板没有连接好,可能是RJ45水晶头没接好。实验五 串行通信实验 1.目的学习Proteus软件;掌握采用Proteus仿真PIC16F87X的串行通信;2.要求单片机的数据存储器的21H23H 分别存放十进制数5、6、7,外接3个数码管。通过74LS164串/并转换,采用SPI串行输出,实现21H23H数据的静态显示。 利用Proteus仿真PIC应用系统Caizhiming 2008.4.25第一篇 开发详细步骤一、在MAPLAB IDE中的操作步骤。(这部分内容和以前介绍的一样,只需要创建项目、保存程序、编译3个步骤,其
11、它的步骤不需要。)1、创建一个新文件夹D:PICTEST2、打开MAPLAB,在主菜单点击ProjectNew在PICTEST目录创建项目01_LedTest(注:该名称自己取),如上图。3、点击主菜单FileNew新建一个程序,并以porgram01命名(注:该名称自己取),存放在PICTEST文件夹。并如下图添加到项目01_LetTest中。 程序内容如下:LIST p=16F877#include P16F877.INCdelay1 equ 22hdelay2 equ 23h ORG 0 banksel TRISB ;选择TRISB所在的体 bcf TRISB,0 ;RB0设置为输出 b
12、anksel PORTB ;选择PORTB所在的体 loop bsf PORTB,0 ;RB0=1 call Delay ;延时 bcf PORTB,0 ;RB0=0 call Delay ;延时 goto loop;*; 延时子程序 Delay movlw 0FFh movwf delay1 clrf delay2 Delayloop decfsz delay2,1 goto Delayloop decfsz delay1,1 goto Delayloop return;* END4、选择单片机型号5、点击主菜单ProjectBuild All。对程序进行编译,若通过则生成一个后缀为 *.H
13、EX的文件,该文件在Proteus仿真时要装入PIC单片机中。二、Proteus中的操作步骤1、打开Protesu 7 professionalISI 7 professional,如下图。点击P进行元器件选择。输入关键字pic进行搜索,找到PIC16F877,并双击它添加到自己。2、同理添加发光二极管 LED_RED、电阻RES、按钮BUTTON、开关SWITCH3、将元器件拖放到工作区。选中PIC16F877,并将鼠标移到工作区在适当的位置单击左键即可。同理拖放电阻、发光二极管。4、添加接地GROUND。如下图。(注:若电源,如+5V,要选择POWER)元件之间的连线很简单,直接用鼠标左键
14、选中引脚并连到另一个引脚即可。5、保存Proteus的设计文件。保存在PICTEST,名称为ProteusDesign01。6、各个元件的参数设置。(1)单片机设置双击PIC单片机,如下图装入前面在MAPLAB IDE中编译好的程序program01.hex。也可修改其它参数,如时钟频率(即晶振频率)等。(2)电阻设置。双击电阻RES,由于该电阻做限流电阻,要改小点,改为100 。(3)接地设置注:String,给该接地取一个名称。7运行仿真。点击如下图按键。注:观察芯片引脚颜色变化,红色代表高电平、蓝色代表低电平。Proteus中单片机芯片默认已经添加电源与地,所以可以省略。单片机外接晶振也
15、可以省略。第二篇 Proteus常用器件中英文对照表AND 与门BATTERY 直流电源 BELL 铃,钟BUZZER 蜂鸣器CAP 电容CAPACITOR 电容CAPACITOR POL 有极性电容CRYSTAL 晶振DIODE 二极管DIODE SCHOTTKY 稳压二极管DIODE VARACTOR 变容二极管DPY_3-SEG 3段LEDDPY_7-SEG 7段LEDDPY_7-SEG_DP 7段LED(带小数点)ELECTRO 电解电容INDUCTOR 电感INDUCTOR3 可调电感LAMP 灯泡LED 发光二极管METER 仪表MOTOR AC 交流电机MOTOR SERVO 伺服电机NAND 与非门NOR 或非门NOT 非门NPN NPN三极管OPAMP 运放OR 或门PHOTO 感光二极管PNP 三极管NPN DAR NPN三极管POT 滑线变阻器RES1.2 电阻RES3.4 可变电阻SPEAKER 扬声器SW ? 开关SW-PB 按钮DPY_7-SEG_DP 数码管SW-PB 开关
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1