您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 福建工程学院PIC单片机技术上机指导书XXXX05
1 PIC单片机技术 信息科学与工程学院 通信教研室编 2013.5 上机指导书 2第一部分实验项目 实验一 I/O实验 图1.1 实验系统连接图 注:图1.1中,PC机与在线调试器的连接也可以采用USB接口。若采用USB接口,则ICD3的驱动程序在 以下目录中 一般用户把ICD3的USB线连接到PC机时,可以采用“自动搜索驱动程序”进行自动安装。 3一、目的 1.熟悉MPLAB IDE开发环境,重点掌握MAPLAB ICD3的开发过程。 2.学习项目的创建。 3.掌握ICD3作为调试器(Debugger)的开发步骤。 4.掌握ICD3作为编程器(Programmer)的开发步骤。 5.学习应用程序的编写、调试、烧写。 6.掌握子程序(延时子程序)的概念及其调用方法。 7.通过对I/O口相关寄存器的设置,能够熟练的操作单片机的I/O口。 二、要求 D0~D7发光二极管按照下图闪烁(可自定义花样)。 三、实验步骤 1.连接线路 采用16F877A的C口连接到8个LED流水灯。利用软件延时的办法实现流水灯效果。 2.选择单片机型号 MPLAB IDE的主菜单:Configure\Select Device:PIC16f877a; 3.创建工程 (1)建立一个项目目录,如D:\exp1。 选择MPLAB IDE的主菜单Project\New,创建一个新的项目,对话框如下 4 打开Output和Project视窗。 (2)选择Project\Select Language Toolsuit,如图设置好路径。(注:若没有出现×,则用默认即可) 5 (3)新建应用程序。选择File/New,在打开的对话框中输入程序。然后选择File/Save,保存到D:\exp1目录下。保存类型为 *.asm。文件名要加后缀 .asm 由于选择“Add File To Project”,所以源代码自动添加到工程中。 6 (4)编译程序。Project/Make,Project/Build All… 若Output视窗里面出现Error,则鼠标点击Error,会自动调到出错的位置,然后进行源代码修正。 7 如此调试,直到Build All后,Output视窗提示:BUILD SUCCEEDED。 4.设置振荡器 Configure\Configuration Bits… 5.调试 调试采用Debugger菜单。Debugger只是在ICD3上进行仿真调试,程序还没有真正下载到PIC单片机芯片的程序存储器上。 (1)选择MPLAB IDE的 Debugger/Select Tools…/MPLAB ICD3 8 (2)设置开发板由ICD3供电。 Debugger/Settings… (3)ICD3连接测试 Debugger\Reconnect连接MPLAB ICD3。观察Output视窗,提示连接是否正确。 (4)下载程序 Debugger\Program 此步把程序下载到调试器中,接下来就可以用Run测试程序的运行结果。 (5)运行测试 Debugger\Animate单步运行 Debugger\Run 全速运行 9观察开发板上的指示灯是否按照要求闪烁。 6.烧写 经过以上Debugger调试正确后。可以选择Programmer菜单。真正把程序下载到PIC单片机的程序存储器上。 (1)选择MPLAB IDE的 Programmer/Select Programmer…/MPLAB ICD3 (2)设置开发板由ICD3供电。 Programmer/Settings… (3)ICD3连接测试 Programmer \Reconnect连接MPLAB ICD3。观察Output视窗,提示连接是否正确。 (4)下载程序 Programmer \Program 此步真正把程序下载到开发板上的PIC单片机的程序存储器中。 (5)运行测试 按单片机的复位键,观察程序运行结果。 四、说明 1.运行时,可以用View菜单下的各种视图,观测数据存储器(File Regester)、程序存储器(Program memory)、单片机引脚(Special Function Register)的信号和数据的变化。 2.采用Programmer编程时,与Debugger类似。不再说明。 3. Debugger菜单只是用于调试,程序没有下载到PIC单片机上。若要把调试好的程序下载到单片机上,需要用Programmer菜单。 4.源程序中,除了伪指令之外,其他指令不能顶格写,即每行开头至少要有一个空格。 五、参考源程序 #INCLUDE P16f877a.INC 10COUNT EQU 0X20 COUNT1 EQU 0x21 COUNT2 EQU 0x22 #DEFINE IOX PORTC #DEFINE TIOX TRISC ORG 0X0; NOP GOTO MAIN ORG 0X30 MAIN;流水灯,Rc口 BSF STATUS,RP0; 注:左边有空格 CLRF TIOX; BCF STATUS,RP0; MOVLW 0X01 MOVWF IOX; NOP CALL DELAY; MOVLW 0X02 MOVWF IOX; NOP CALL DELAY; MOVLW 0X04 MOVWF IOX; NOP CALL DELAY; MOVLW 0X08 MOVWF IOX; NOP CALL DELAY; MOVLW 0X10; MOVWF IOX; NOP 11 CALL DELAY; MOVLW 0X20 MOVWF IOX; NOP; CALL DELAY; MOVLW 0X40 MOVWF IOX; NOP; CALL DELAY; MOVLW 0X80 MOVWF IOX; NOP; CALL DELAY; GOTO MAIN; DELAY ; 0.5s延时子程序 clrf COUNT ; clrf COUNT1 ; movlw 0x03 ; movwf COUNT2 ; LDloop decfsz COUNT,f ; goto LDloop ; decfsz COUNT1,f goto LDloop decfsz COUNT2,f goto LDloop return END 12实验二 定时/计数器实验 一、目的 1.了解PIC的TMR0的内部结构 2.了解TMR0的信号源(包括内部时钟和外部T0CKI信号) 3.掌握TMR0计数初始值的计算以及外部信号源的边沿出发方式的设置。 4.掌握TMR0对外部信号计数的两种方法:包括查询和中断。 5.掌握定时器的使用 6.了解中断子程序的调用及应用 二、要求 以下任选一种进行实验: (一)定时器(可用“查询”或“中断”) 在上图的电路中。对PIC单片机的TMR0赋初始值,启动定时器。程序通过检测TMR0的溢出标志位T0IF来检测定时长度是否到。若到,则清空T0IF,让灯A闪烁。重新对TMR0赋初始值,重新启动定时,再通过检测T0IF检测定时长度是否到,若到则让灯B闪烁。…依次循环。 (二)计数器(可用“查询”或“中断”) 通过RA4引脚检测按键S2的所按次数,当计数到15次后四个发光二极管闪烁一遍后全部熄灭。重新按15次后,四个发光二极管再闪烁一遍后全部熄灭,以此类推。 三、实验步骤 1.连接线路 按照上图连接线路。 132.程序设计 (1)方法一:查询 通过检测T0IF标志位判断计数是否计满。若计满,则调用闪烁子程序。 (2)方法二:中断 启用TMR0中断。若计满,则进入中断子程序,执行闪烁指令。 3.其他参考程序(注:以下程序没有用到定时器功能,但可以计数。) ;********************************************************** ;* .检测引脚按键次数 ; 说明:本实验以RA4作为按键输入(平时为高电平、按下为低电平),RB0~RB3作为 ; 输出显示 ;********************************************************** list p=16f877a ;//芯片型号根据实际修改 include p16f877a.inc RP0 equ 5 RP1 equ 6 delay1 equ 22h delay2 equ 23h a equ 24h ;存放按键次数 ;********************************************************* ; 主程序 org 0x30 nop call Initial mainloop call Delay call Delay btfss PORTA,4 ;测试开关是否被按下 call Check goto mainloop ;************************************************ ; 初始化子程序 Initial bcf STATUS,RP1 bsf STATUS,RP0 ;选存储体1 clrf TRISB ;输出 bcf STATUS,RP1 14 bcf STATUS,RP0 ;选存储体0 clrf PORTB movlw B'00001111' 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为高电平,则说明按键断开,此时调用延时子程序,消除断开抖动影响 ;为了保险起见,再测一次 btfss PORTA,4
本文标题:福建工程学院PIC单片机技术上机指导书XXXX05
链接地址:https://www.777doc.com/doc-202484 .html