当前位置:文档之家› 单片机实验报告

单片机实验报告

PIC单片机原理与应用实验报告学校:学院:班级:姓名:学号:指导教师:实验一I/O端口实验一、实验目的(1)掌握MPLAP IDE集成开发环境的基本操作。

(2)掌握单片机的I/O端口的设计方法。

(3)掌握在线调试器的使用方法。

(4)学会查阅相关数据手册。

二、实验仪器设备(1)PC机一台;(2)MPLAP IDE开发软件一套;(3)PICkit3在线调试器一套;(4)APP009实验板一块;三、实验要求(1)设计发光LED灯闪烁程序,下载调试,验证功能。

(2)设计流水灯程序,或其他花样彩灯程序,下载调试,验证功能。

(3)设计按按键加1计数程序,下载调试,验证功能。

四、实验步骤(1)连接在线调试器PICkit3、APP009实验板和计算机;(2)打开MPLAP IDE集成开发环境软件,点击Debugger>Select Tools>PICkit 3 选择调试工具;(3)点击Debugger>Settings,在Settings窗口中点击Power栏,选择由PICkit3向实验板供电;(4)完成实现发光LED灯闪烁实验;程序代码:#include <p30f4011.h>void delay(void);int main(){while(1){TRISEbits.TRISE0 = 0; //RE0设置为输出(1输入,0输出);TE0 =1; //RE0=1输出高电平+5V,亮灯delay(); //延时TE0 =0; //RE0=0输出低电平0V,灭灯delay(); //延时}}void delay(void){long int i;for (i=0;i<65000;i++);}实验现象:将程序下载到实验板上,运行程序,LED闪烁,通过改变延时函数改变延时时间,进而可以改变LED闪烁的频率。

(5)完成实现流水灯或花样彩灯实验;程序代码:#include <p30f4011.h>void delay(void);int main(void){int i;int ledcode[6]={0x01,0x02, 0x04, 0x08, 0x10, 0x20};TRISE =0x00; //RE0-RE5配置为输出while(1){for (i=0;i<6;i++){LATE=ledcode[i]; //按状态循环点灯delay(); //延时}}}void delay(void){long int i;for (i=0;i<65000;i++);}实验现象:将程序下载到实验板上,运行程序,LED按照设定的规律循环点亮和熄灭,通过改变数组ledcode的元素,可以方面地实现流水灯或花样彩灯的效果。

(6)完成实现按按键加1计数实验。

程序代码:#include <p30f4011.h>void delay(void);int main(void){int adddata=0; //ledcode[6] 存放输出数据TRISE =0x0100; //将RE0-RE5配置为输出0,RE8配置为输入 1TRISBbits.TRISB6=1;while(1){if (PORTEbits.RE8 ==0) //查询按键S8是否按下{delay(); //延时消抖if (PORTEbits.RE8 == 0) //再次查询按键S8是否按下adddata++; //计数LATE=adddata; //输出delay();}if (PORTBbits.RB6 ==0) //查询按键S8是否按下{delay(); //延时消抖if (PORTBbits.RB6 == 0) //再次查询按键S8是否按下adddata--; //计数LATE=adddata; //输出delay();}}}void delay(void){int i;for (i=0;i<20000;i++);}实验现象:将程序下载到实验板上,运行程序,按一下S8,就计一个数,该数以二进制形式通过LED显示出来。

五、回答问题(1)简述3个实验任务的程序设计方法;答:通过配置相关寄存器,设置I/O口是作为输入口还是输出口。

利用循环加延时实现花样彩灯,利用I/O口输入检测实现按键控制。

(2)分析观察到的实验结果;答:前两个实验是I/O口输出实验,通过LED输出,实现彩灯效果。

而第三个实验是I/O 口输入检测实验,实现按键控制。

(3)分析PIC单片机IO端口输入与输出操作的不同之处。

答:IO端口输出要将IO端口配置为输出模式,然后将数据写入对应的寄存器,实现数据输出;IO端口输入要将IO端口配置为输入模式,在进行按键检测时还要考虑延时消抖。

实验二外部中断实验一、实验目的(1)掌握中断的工作原理及设计方法。

(2)掌握多中断优先级处理原则。

(3)掌握多中断嵌套的工作原理(4)学会查阅相关数据手册。

二、实验仪器设备(1)PC机一台;(2)MPLAP IDE开发软件一套;(3)PICkit3在线调试器一套;(4)APP009实验板一套;三、实验要求(1)设计单中断程序并下载调试,掌握中断响应原理及过程。

(2)设计多中断程序并下载调试,掌握多中断时优先级处理原则。

(3)修改多中断程序里的嵌套设置,掌握多中断嵌套工作原理。

四、实验步骤(1)连接在线调试器PICkit3、实验板和计算机;(2)打开MPLAP IDE集成开发环境软件,点击Debugger>Select Tools>PICkit 3 选择调试工具;(3)点击Debugger>Settings,在Settings窗口中点击Power栏,选择由PICkit3向实验板供电;(4)完成单中断程序实验;程序代码:#include <p30f4011.h>void delay(void);void Initializeint0(){ IFS0bits.INT0IF = 0; //清除INT0的中断标志IPC0bits.INT0IP = 7; //中断优先级为7IEC0bits.INT0IE = 1; //使能中断INTCON2bits.INT0EP=1;}void __attribute__((__interrupt__)) _INT0Interrupt(void){ IFS0bits.INT0IF = 0; //清INT0中断标志LATE =0x3f; //6个LED灯全亮delay(); //延时}int main(){Initializeint0(); //调用INT0初始化程序int ledcode[6]={0x01,0x02, 0x04, 0x08, 0x10, 0x20};int i;TRISE =0x0100; //RE8配置为输入,RE0-RE5配置为输出while(1){for (i=0;i<6;i++){LATE=ledcode[i]; //按状态循环点灯delay();}}}void delay(void){long int i;for (i=0;i<65000;i++);}实验现象:将程序下载到实验板上,运行程序,无中断时程序执行流水灯,按下按键(中断)时6个发光LED全亮,中断结束返回后继续执行流水灯程序。

(5)完成多中断程序实验;程序代码:#include <p30f4011.h>void delay(void);void Initializeint0(){ IFS0bits.INT0IF = 0; //清除INT0的中断标志IPC0bits.INT0IP = 7; //中断优先级为7IEC0bits.INT0IE = 1; //使能中断}void Initializeint2(){ IFS1bits.INT2IF = 0; //清除INT1的中断标志IPC5bits.INT2IP = 5; //中断优先级为5IEC1bits.INT2IE = 1; //使能中断}void __attribute__((__interrupt__)) _INT0Interrupt(void){ IFS0bits.INT0IF = 0; //清INT0中断标志PORTEbits.RE0 =1; //D1亮delay(); //延时PORTEbits.RE0 =0; //D1灭灯}void __attribute__((__interrupt__)) _INT2Interrupt(void){ IFS1bits.INT2IF = 0; //清INT0中断标志PORTEbits.RE2 =1; //D3亮delay(); //延时PORTEbits.RE2 =0; //D3灭灯}int main(){Initializeint0(); //调用INT0初始化程序Initializeint2(); //调用INT0初始化程序TRISE =0x0100; //RE8配置为INT0输入,RE0-RE5配置为输出TRISDbits.TRISD1=1; //RD1配置为INT2输入,INTCON1bits.NSTDIS=0;while(1){}}void delay(void){int j;long int i;for (j=0;j<5;j++){for (i=0;i<65000;i++);}}实验现象:将程序下载到实验板上,运行程序,按键S8链接5管脚(RE8端口)做为外部中断INT0使用;JP30连接Vdd与管脚18(RD1端口),做为外部中断INT2使用。

INT0中断产生后点亮D1,INT2中断产生后点亮D3。

通过改变程序可以改变对应的中断优先级。

五、回答问题(1)简述中断程序设计方法;答:编写中断初始化程序,设置并使能对应的中断;编写中断服务程序;编写主程序,调用初始化程序,实现功能;(2)分析单中断实验结果,总结中断处理过程;答:来中断时,进入中断服务程序,执行完毕后,返回中断处继续执行原来的程序。

(3)分析多中断实验结果,总结优先级处理原则;答:来中断时,进入中断服务程序,若此时又来中断,则要判断优先级。

规则是优先级高的中断可以打断优先级低的中断,形成中断嵌套;但是优先级低的中断不能打断优先级高的中断。

(4)分析多中断实验结果,总结中断嵌套工作原理。

答:优先级高的中断可以打断优先级低的中断,形成中断嵌套;但是优先级低的中断不能打断优先级高的中断。

实验三定时器实验一、实验目的(1)掌握单片机定时器的工作原理。

(2)掌握单片机定时器的设计方法。

(3)学会查阅相关数据手册。

二、实验仪器设备(1)PC机一台;(2)MPLAP IDE开发软件一套;(3)PICkit3在线调试器一套;(4)APP009实验板一套;三、实验要求(1)任选定时器模块,设计间隔1s/5s/10s的流水灯程序并实现功能。

相关主题