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

下载本文档

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

文档简介

实验一 一 一 实验目的实验目的 1 熟悉 MPLAB IDE 软件开发环境及应用平台 2 熟悉 MICROCHIP 的 PIC18F452 开发板的电路原理图 3 熟悉 PIC 单片机的编程过程 4 了解 PIC 单片机输入输出端口的定义方式 二 二 实验内容实验内容 1 初始化单片机 RD 定义 RD 为输出 用于控制目标板上 D1 D8 LED 灯 三 三 实验要求实验要求 要求完成以下两个方案中的其中一个 1 任意点亮 8 盏 LED 灯中的任意一个 2 点亮一盏 LED 灯 并自左向右循环点亮每一盏 LED 灯 四 四 设计内容与步骤设计内容与步骤 1 设计方案原理设计方案原理 对 PORTD 端口循环轮流赋值 并延时 2 编程思路编程思路 通过对 TRISD 赋值 00H 将 PORTD 全部设置为输出 首先 PORTD 赋值为 01H 调用延时子程序 然后 PORTD 赋值分别为 02H 04H 08H 10H 20H 40H 80H 并在这八个数中循环 流程图 开始 将 RD 设置为输出 将 01H 赋值到 PORTD 调用延时程序 设计延时程序 1 3 代码 仿真 代码 仿真 略 五 五 心得与体会 心得与体会 本实验比较简单 与第二个实验相似 不同的是给 值的时候 一个是分别赋值 而另一个是通过查表的方法 所以仿真与代码省略 将 80H 赋值到 PORTD 循环控制 调用延时程序 结束 2 实验二实验二 一一实验目的实验目的 1 学习子程序的调用如 延时和查表子程序 2 锻炼编程的思想和提高编程的能力 3 了解程序运行过程内存参数的变化情况 一一实验内容实验内容 利用延时和查找表的方法 实现 8 盏 LED 灯的循环点亮 每次点亮一盏 向左或向右循环点亮 延时时间适当即可 三 三 实验要求实验要求 实验必须达到功能正确 程序编写清晰 而且有适当的注释 四 四 设计内容与步骤设计内容与步骤 1 设计方案原理与思路 设计方案原理与思路 通过查表 将查表之后的结果送到输出端 D 口 再循环跳转 让 LED 灯循环点亮 2 设计流程图设计流程图 3 3 程序代码 程序代码 LIST P 18F452 INCLUDE P18F452 INC ABC EQU 20H 开始 对 D 端口相关寄存器设置 设计查表子程序 设计延时子程序 循环控制设计 结束 3 主程序 ORG 0000H NOP BSF STATUS 5 选择体 1 MOVLW 00H MOVWF TRISD D 口为输出 BCF STATUS 5 返回体 0 MAIN MOVLW 00H MOVWF ABC MOVLW 00H MOVWF PORTD D 口清 0 ST MOVF ABC W CALL SHUZH 调用查表子程序 MOVWF PORTD D 口显示 CALL DELAY 延时 INCF ABC F INCF ABC F BTFSS ABC 4 循环设置 GOTO ST GOTO MAIN SHUZH ADDWF PCL F 表子程序 RETLW 01H RETLW 02H RETLW 04H RETLW 08H RETLW 10H RETLW 20H RETLW 40H RETLW 80H DELAY NOP 延时子程序 NOP NOP NOP NOP RETURN END 4 4 4 实验步骤实验步骤 在软件上编写代码 编译与仿真 仿真与结果 5 5 验证结果的说明验证结果的说明 当采用单步运行时 PORT 的值每一步由当前状态跳到下一状态 且根据查表子程序里 设计的返回值来顺序显示 实验结果与实验要求一致 本实验成功 五 问题讨论五 问题讨论 在这次的实验过程中 一开始出现了一些问题 也就是书本上学的单片机 体选 指 令是 但是在 P18F452 的体选应该是 5 还有就是取指令和执行 共两个指令时间 开始时按一条的时间去运行 故达不到预定的结果 在修改后 程序成功的执行并给出了正确的结果 6 实验三实验三 一 实验目的一 实验目的 1 了解 TIMER0 的定时功能及相关寄存器 2 利用 TIMER0 实现定时溢出中断 二 实验内容二 实验内容 利用 TIMER0 实现定时计数 并将计数结果写入 PORTD 端口控制 LED 灯 以二进制计数方式进行点亮 定时时间适当即可 三 实验要求三 实验要求 必须能够正确找到并设置与 TIMER0 相关的寄存器 将 TIMER0 配置为 8bits 的定时器 并通过相关设置另 TIMER0 利用片内时钟进行计时 溢出时申 请中断 完成二进制的一次计数并写入 PORTD 中断返回后进入下一次定时的 等待 四 实验内容与步骤四 实验内容与步骤 1 设计方案原理与思路 设计方案原理与思路 用 TMR0L 定时器进行定时计数 当 TMR0L 溢出 中断标志位自动置位 自动跳转到入口地址为 0008H 的中断服务子程序 中断服务子程序为二进制的 一次计数 从而完成实验 2 设计流程图设计流程图 开始 设置 D 口为输出 设置定时器相关寄存器 开总 中断 定时器赋初值 使能定时器 等待定时中断 7 3 程序代码程序代码 LIST P 18F452 INCLUDE P18F452 INC TMR0B EQU 0C3H COUNTER EQU 20H ORG 0000H NOP GOTO MAIN 中断服务子程序 ORG 0008H BCF INTCON T0IF 将中断标志位寄存器清 0 DECFSZ COUNTER COUNTER 寄存器自减 1 为 0 则间跳 GOTO RT INCF PORTD MOVLW 01H MOVWF COUNTER RT NOP BANKSEL TMR0L MOVLW TMR0B MOVWF TMR0L RETFIE 主程序 MAIN NOP BANKSEL TRISD 选择 寄存器所在的体 MOVLW 00H MOVWF TRISD 设置 为输出 MOVLW 0C0H 使能中断 设置为 位的定时器 MOVLW MOVLW B 10100000 MOVWF INTCON MOVLW 01H MOVWF COUNTER CLRF PORTD 输出端清 MOVLW TMR0B 将时间常数 FF 送到 TMR0L MOVWF TMR0L 开始定时 LOOP GOTO LOOP END 8 4 仿真 观察相关寄存器仿真 观察相关寄存器 4 实验结果实验结果 当 TMR0L 定时器的计数溢出后 中断标志位自动置位 之后开始中断服 务子程序 直到 COUNTER 的值为 0 时 PORTD 的值自加 1 5 问题讨论问题讨论 在此次实验中 中断入口为 0008H 而不是 0004H 且定时器的相关寄存器 的名字与课本上的有出入 需由实际使用芯片在数据手册决定 通过这次实验 明白了对一片芯片的使用 需根据它的数据手册来使用 每块芯片都有自己的 特征 9 五 五 心得与体会 心得与体会 本次实验主要是对定

温馨提示

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

评论

0/150

提交评论