单片机之间SPI总线通信实验报告.doc_第1页
单片机之间SPI总线通信实验报告.doc_第2页
单片机之间SPI总线通信实验报告.doc_第3页
单片机之间SPI总线通信实验报告.doc_第4页
单片机之间SPI总线通信实验报告.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

实 验 报 告课程名称: PIC单片机实验 任课教师: 周燕 实验名称: 单片机之间SPI总线通信实验 年级、专业: 09电科 学 号:20091050146姓 名:院睿智 日期:2012年6月20日云南大学 信息学院一、实验目的n 掌握SPI转换模块的内部结构和工作过程,每一位相关设置项的功能含义。n 看懂电路原理图,掌握控制线的连接方法;n 进一步操作按键和显示的功能;n 练习先编写流程图,再编写程序代码的能力,练习程序代码片段的功能测试;n 进一步熟练掌握集成开发环境的使用方法二、实验内容1. 在MPLAB软件上设置相应的参数项,主要是菜单configure的configuration bits。2.新建工程和文件,编写代码,然后分别选择设备在菜单programmer中选择ICD2,再使用快捷键将程序烧进去点击运行按钮。3.运行程序,观察结果。三、实验步骤和过程记录(实现某一步骤时,不论是否成功和出现什么问题,记录自己采用的具体方法和过程)四、主要算法与程序#include p16f877a.inc#DEFINE CS_MCUPORTC,6KEY_VALUEEQU20HKEY_VALUE_CEQU21HCOUNT1EQU22HCOUNT2EQU23HCOUNT3EQU24HCOUNT4EQU25HORG00HNOPGOTO MAINMAINBANKSELSSPSTATBCFSSPSTAT,CKE ;初始化SSPSTAT, CKE=0,SMP=OBCFSSPSTAT,SMPCLRFOPTION_REG ;开启B口内部弱上拉,控制按键CLRFTRISD ;将PORTD设置为输出端口,控制LED显示MOVLWB00111111 ;RB0-RB5设置为输入端口,控制按键MOVWFTRISBMOVLWB10010111 ;初始化SPI模块通信线方向TRISC 为B10010111 MOVWFTRISC ;SCK输出,SDO输出,SDI输入,CS_MCU输出 BCFPIE1,SSPIE ;禁止SSP中断BSFINTCON,GIE ;禁止所有中断BANKSELPIR1BCFPIR1,SSPIFCLRFPORTDBSFCS_MCU ;从机SS禁止; BSF CS_MCU MOVLWB00100001 ;初始化SSPCON;CKP=0,SSPEN=1,SPI主模式Fosc/16 MOVWFSSPCONLOOPCALLCHECK ;调用获取按键值CHECK子程序 BCFCS_MCU MOVFKEY_VALUE,W ;向从机发送数据:将KEY_VALUE 写入SSPBUF后,开MOVWFSSPBU F ;始启动发送和接收过程 BTFSSPIR1,SSPIFGOTO$-1BSFCS_MCUBCFPIR1,SSPIF CALLDELAY_1msBCFCS_MCUMOVLW 0x17 ;写一个无效数据入SSPBUF后,启动发送和接收过程MOVWFSSPBUFBTFSSPIR1,SSPIFGOTO$-1BSFCS_MCUBCFPIR1,SSPIFMOVFSSPBUF,WMOVWFKEY_VALUE_CMOVFKEY_VALUE_C,WMOVWFPORTDGOTOLOOP;* 函数名称:CHECK;* 函数功能:获取按键值*CHECK BANKSEL PORTB ;跳到体0LOOP1 CLRF KEY_VALUE ;KEY_VALUE清零 MOVLW B00111111 ;检测是否有按键被按下 ANDWF PORTB,1 ;屏蔽高两位 MOVLW B00111111 XORWF PORTB,0 ;异或检测按键是否有变化 BTFSS STATUS,Z GOTO LOOP1 ;否,继续查询 MOVF PORTB,0 ;是,把PORTB存到MCU_DATA MOVWF KEY_VALUE CALL DELAY_20ms ;延时20ms,看按键是否有抖动 MOVF KEY_VALUE,0 ; XORWF PORTB,0 BTFSS STATUS,Z GOTO LOOP1 ;有抖动,返回重新检测LOOP2 MOVLW B00111111 ;没有,等待所有按键被释放 ANDWF PORTB,1 ;屏蔽高两位 MOVLW B00111111 ;异或检测按键是否已回弹 XORWF PORTB,0 BTFSS STATUS,Z GOTO LOOP2CALL DELAY_20ms ;延时20ms,看按键是否有抖动LOOP5MOVLW B00111111 ;异或检测按键是否已回弹 XORWF PORTB,0 BTFSS STATUS,Z GOTO LOOP5 MOVLW B11000000 ;高两位置1,为取反做准备 IORWF KEY_VALUE,1 COMF KEY_VALUE,1 ;KEY_VALUE取反 RETURN ;*;* 函数名称:DELAY_20ms ;* 函数功能:延时20ms;* 使用说明:;*DELAY_20ms MOVLW D28 ;设置外部循环次数 MOVWF COUNT1 ;LOOP3 MOVLW D237 ;设置内部循环次数 MOVWF COUNT2 ; DECFSZ COUNT2 ,1 ;内部循环变量自减1,为0则跳转 GOTO $-1 ; DECFSZ COUNT1,1 ;外部循环变量自减1,为0则跳转 GOTO LOOP3 ; RETURN ;返回主程序;*;* 函数名称:DELAY_1ms ;* 函数功能:延时1ms;* 使用说明:;*DELAY_1ms MOVLW D2 ;设置外部循环次数 MOVWF COUNT3 ;LOOP4 MOVLW D165 ;设置内部循环次数 MOVWF COUNT4 ; DECFSZ COUNT4 ,1 ;内部循环变量自减1,为0则跳转 GOTO $-1 ; DECFSZ COUNT3,1 ;外部循环变量自减1,为0则跳转 G

温馨提示

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

评论

0/150

提交评论