PIC单片机实验报告_第1页
PIC单片机实验报告_第2页
PIC单片机实验报告_第3页
PIC单片机实验报告_第4页
PIC单片机实验报告_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

试验一循环点亮LED灯一、试验内容:将RE0-RE5配置为输出,连接6个LED灯;编写程序,调试并运行,下载到试验板上,实现循环点亮。二、试验目标:学习PIC单片机I/O端口功效及特点,了解I/O端口引脚及连线,控制存放器。在开发板上实现循环点亮LED灯。三、试验要求了解掌握PIC单片机结构和功效。应熟练掌握MPLAB开发环境使用方法。熟练掌握PIC单片机程序编写方法。掌握MPLABIDE硬件调试技巧。四、试验准备:1、I/O引脚及连线:I/O端口特点:全部I/O输入端口都是施密特触发器输入,方便增强抗干扰性。外设复用:全部器件引脚(除VDD、VSS、MCLR和OSC1/CLKI之外),均为外设与I/O端口所共用。 假如外设使能,而且外设正在使用相关引脚时,该引脚将不再作为通用I/O引脚使用。优先级:I/O与多个外设复用时I/O引脚名称定义了与该引脚相关各个功效优先级,如:I/O引脚与两个外设复用(“外设A”和“外设B”)外设A对引脚控制具备最高优先权,若外设A和外设B同时使能,外设A将控制I/O引脚电平改变通知引脚:电平改变通知引脚(CN)内接输入电平改变通知模块,使得dsPIC30F器件能够向处理器发出中止请求,以响应所选输入引脚上状态改变。I/O端口控制存放器:全部端口引脚,都有三个与端口引脚操作直接相关存放器。TRISx:数据方向存放器。决定各个引脚是输入引脚还是输出引脚。若某个I/O引脚TRIS位为“1”,则该引脚是输入引脚。某个I/O引脚TRIS位为“0”,则该引脚被配置为输出引脚。复位以后,全部端口引脚被定义为输入。PORTx:I/O端口存放器。访问是I/O引脚上数据。读是端口引脚值;写端口引脚,写是端口数据锁存器(LATx)。LATx:I/O端口锁存存放器。读是数据锁存器里锁存值;写锁存值,写是端口数据锁存器(LATx)五、试验过程及结果:试验源程序:#include"p30f4011.h” intmain(void){ intled=0x01; unsignedlonginti=0;TRISE=0x100; PORTE=led; while(1) { PORTE=led; for(i=0;i<65000;i++){};//延时led=led<<1; //当第6个LED灯亮后,重新从第1个LED灯点亮if(led==0x40) led=0x01; }return0;}先编写程序,检验正确后,下载到试验板上并运行,试验板上6个LED灯开始循环点亮,经过修改程序,还能够改变延迟时间,即可控制LED灯点亮时间。试验二实现外部中止INT0一、试验内容:学习PIC单片机中止内容及其特征,了解中止请求、中止响应及中止服务原理。在试验板上实现外部中止INT0.二、试验目标:掌握PIC单片机中止内容,学会编程实现外部中止。三、试验准备:中止概述:1、中止定义:中止是指以下过程:CPU与外设同时工作,CPU执行主程序,外设做准备工作,当外设准备好时向CPU发中止请求信号,若条件满足,则CPU终止主程序执行,转去执行中止服务程序,在中止服务程序中CPU与外设交换信息,待中止服务程序执行完后,CPU再返回刚才终止主程序继续执行。2、中止源:⑴中止源定义:中止源是指导起中止请求起源。⑵中止源分类:①软中止和②硬中止3、中止处理全过程中止处理全过程分成3个阶段:中止请求、中止响应和中止服务。4、多重中止与中止优先级⑴当系统中有多个设备提出中止请求时,多个外设中请信号要经过门电路送到CPU中请输入端,使CPU能收到多个外设提出中请。⑵CPU在收到多个外设请求后,按优先级标准处理中止。中止请求:1.CPU都有中请输入线。中请输入线有2类:非屏蔽中请输入线和可屏蔽中请输入线;2.CPU开、关中止。CPU内有1个中止请求触发器IF,当IF=1时,称CPU开中止,此时CPU能够处理收到可屏蔽中请;当IF=0时,称CPU关中止,即使CPU收到了可屏蔽中请,但不处理(响应)它。3.CPU内有中止请求检测电路。CPU每执行一条指令,其内中止请求检测电路都要检测中止请求输入端状态中止服务:中止服务子程序是由用户依照自己需要编制,编制时要注意以下问题:1.保护现场: 目标是为了保护那些与主程序中有冲突存放器,假如中止服务子程序中所使用存放器与主程序中所使用存放器等没有冲突话,这一步骤能够省略。2.开/关中止:对对应中止位置1或置0实现。目标是为了能控制中止。3.中止服务:与中止源实现信息交换。4.恢复现场:是与保护现场对应,但要注意数据恢复次序,以免混乱。5.返回:返回主程序四、试验过程及结果:试验源程序:#include"p30f4011.h”unsignedintLed=0x01;voidInitializeint0(){IFS0bits.INT0IF=0; //去除INT0中止标志IPC0bits.INT0IP=7; //中止优先级为7}void__attribute__((__interrupt__))_INT0Interrupt(void){IFS0bits.INT0IF=0; //清INT0中止标志Led=Led<<1;if(Led==0x40)Led=1;}intmain(){ Initializeint0();TRISE=0x0100; //设置RE0~RE5为输出Led=0x01;PORTE=Led;IEC0bits.INT0IE=1; //使能中止while(1){ PORTE=Led;}}编写源程序,利用外部中止INT0实现中止,编译经过后下载到试验板中,编译并运行。试验中,当未按下按键时,LED灯循环点亮,当按下按键式,发出中止请求,LED灯全部点亮,并延迟一定时间,经过修改程序,能够延长或缩短LED全部点亮时间,当中止处理完成后,LED灯继续循环点亮。试验三定时器试验一、试验内容:了解PIC单片机定时器相关内容,了解其类型、工作模式,掌握定时器预分频器结构功效。并利用定时器实现循环点亮LED灯,并设置时间间隔。二、试验目标:经过学习定时器内容,掌握了解定时器结构功效,并学会应用于程序编写设计中,以实现相关功效。深入了解掌握PIC单片机结构和定时器功效,学习经过定时器存放器控制完成定时/计数及中止响应编程技巧,用C语言编写外部中止程序,并在MPLAB开发环境中对工程进行编译链接和进行调试。三、试验准备:工作模式:(1)定时器模式定时器输入时钟由内部系统时钟(FOSC/4)提供。当使能为该模式时,对于1:1预分频器设置,定时器计数值在每个指令周期都会加1。(2)使用外部时钟输入同时计数器模式定时器时钟源由外部提供所选定时器在TxCK引脚上输入时钟每个上升沿进行加1计数。对外部时钟高电平和低电平有最短时间要求。经过在一个指令周期内两个不一样时间对外部时钟信号进行采样,能够实现外部时钟源与器件指令时钟同时。(3)使用外部时钟输入A类型定时器异步计数器模式经过使用连接到TxCK引脚外部时钟源,A类型时基能够在异步计数模式下工作。外部时钟输入不与器件系统时钟源同时。该时基继续进行与内部器件时钟异步递增计数。(4)门控时间累加模式当加在TxCK引脚上信号出现上升沿时,门控控制电路开始工作;当加在TxCK引脚上信号出现下降沿时,门控控制电路终止工作。当外部门控信号为高电平时,对应定时器将进行递增计数。引脚状态从高电平到低电平转变会将TxIF中止标志位置1。定时中止:依照工作模式不一样,16位定时器能够在发生周期匹配或外部门控信号下降沿出现时产生中止。即TxIF位置1。TxIF位必须用软件清零。经过对应定时器中止使能位TxIE,能够将定时器使能为中止源。为了使该定时器成为中止源,必须对中止优先级位(TxIP<2:0>)写入非零值三、试验过程及结果:试验源程序:#include<p30f4011.h>unsignedintLed=1;voidInitializeTMR1(){TMR1=0;//定时器1计数存放器TMR1=0T1CON=0x0030; //关闭定时器,使用内部时钟,预分频比为1:256PR1=0x1c20;//定时器Timer1周期存放器值1sIFS0bits.T1IF=0;//去除TMR1中止标志IPC0bits.T1IP=7;//中止优先级为7IEC0bits.T1IE=1;//使能中止}void__attribute__((__interrupt__))_T1Interrupt(void){TMR1=0; IFS0bits.T1IF=0;//清定时器中止标志Led=Led<<1;if(Led==0x40)Led=1;}intmain(){InitializeTMR1();TRISE=0x00;T1CONbits.TON=1;while(1){PORTE=Led;}}编写程序,编译经过兵在试验板上实现循环点亮LED灯,并设置时间间隔为1s,经过菜单Debuger>stopwatch调出秒表来观察执行时间,以验证设置时间间隔是否正确,试验中,我们还能够经过修改程序来修改所设置时间间隔,以满足不一样需求。试验四UART通用异步收发器试验试验内容:利用UART通用异步收发器实现数据异步收发。实现目标:进步一掌握PIC单片机机构及UART通用异步收发器功效,学习经过UART异步收发器完成数据异步发射与接收。用C语言编写外部程序,并在MPLAB开发环境中对工程进行编译链接和进行调试。三、试验要求了解掌握PIC单片机结构和UART异步收发器功效。应熟练掌握MPLAB开发环境使用方法。熟练掌握PIC单片机程序编写方法。掌握MPLABIDE硬件调试技巧。试验准备:数据传送方向:①单工两端仅有发送器或接收器、一个通道仅能进行一个方向传送②半双工两端具备发送器和接收器、但只有一个通道同一时刻仅能进行一个方向传送可交替进行双向数据传送③全双工两端具备发送器和接收器、且具备两个通道同一时刻能进行双向传送数据传送方式:异步方式:发送和接收只需短时间内同时数据传送,传送单元较小(通常为一个Byte)。同时方式:发送和接收需长时间内同时数据传送,传送单元较大(传送一个包)。通用异步收发器(UniversalAsynchronousReceiverTransmitter,UART):能够和外设(比如,个人电脑、RS-232和RS-485接口)通信全双工异步系统。UART模块主要特征:•经过UxTX和UxRX引脚进行全双工8位或9位数据传输,由低向高发送•偶、奇或无奇偶校验选项(对于8位数据)•一或两个停顿位•完全集成具备16位预分频器波特率发生器•4级深度先进先出(First-In-First-Out,FIFO)发送数据缓冲器•4级深度FIFO接收数据缓冲器•奇偶,帧和缓冲溢犯错误检测•支持带地址检测9位模式(第9位=1)•发送和接收中止•用于诊疗支持环回模式波特率发生器:UART模块包含一个专用16位波特率发生器(BaudRateGenerator,BRG)。UxBRG存放器控制一个自由运行16位定时器周期。试验过程及结果:试验程序:#include <p30f4011.h> unsigned int recdata,txdata; //接收数据存放器void Uart_Initial(){ IFS0bits.U1TXIF=0;//复位发送中止标志位 IFS0bits.U1RXIF=0;//复位接收中止标志位 IPC2bits.U1RXIP=1;//收中止优先级:1级 IPC2bits.U1TXIP=1; U1MODE=0x8040;//UART使能,8位数据,无奇偶校验,环回 U1STA=0x0000;//当一个字符被传输到发送移位存放器(发送缓冲器中最少还有一//个字符)产生中止,当接收到一个字符时,中止标志位置位 U1BRG=0X34; //U1BRG=Fcy/(16*波特率)-1,此处波特率为9600}void__attribute__((__interrupt__))_U1TXInterrupt(){ while(U1STAbits.TRMT==0);//当为0时,表明移位存放器没空 IFS0bits.U1TXIF=0;}void__attribute__((__interrupt__))_U1RXInterrupt(){ while(U1STAbits.URXDA==1) { recdata=U1RXREG; //接收数据并存放 txdata=recdata<<1;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论