单片机之间spi总线通信实验报告

单片机之间spi总线通信实验报告

ID:10998071

大小:632.00 KB

页数:9页

时间:2018-07-09

单片机之间spi总线通信实验报告_第1页
单片机之间spi总线通信实验报告_第2页
单片机之间spi总线通信实验报告_第3页
单片机之间spi总线通信实验报告_第4页
单片机之间spi总线通信实验报告_第5页
资源描述:

《单片机之间spi总线通信实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验报告课程名称:PIC单片机实验任课教师:周燕实验名称:单片机之间SPI总线通信实验年级、专业:09电科学号:20091050146姓名:院睿智日期:2012年6月20日云南大学信息学院8一、实验目的n掌握SPI转换模块的内部结构和工作过程,每一位相关设置项的功能含义。n看懂电路原理图,掌握控制线的连接方法;n进一步操作按键和显示的功能;n练习先编写流程图,再编写程序代码的能力,练习程序代码片段的功能测试;n进一步熟练掌握集成开发环境的使用方法二、实验内容1.在MPLAB软件上设置相应的参数项,主要是菜单configure的configurationbits。2.新

2、建工程和文件,编写代码,然后分别选择设备在菜单programmer中选择ICD2,再使用快捷键将程序烧进去点击运行按钮。3.运行程序,观察结果。三、实验步骤和过程记录(实现某一步骤时,不论是否成功和出现什么问题,记录自己采用的具体方法和过程)四、主要算法与程序#include"p16f877a.inc"#DEFINECS_MCUPORTC,6KEY_VALUEEQU20HKEY_VALUE_CEQU21HCOUNT1EQU22HCOUNT2EQU23HCOUNT3EQU24HCOUNT4EQU25HORG00HNOPGOTOMAINMAINBANKSELSSPSTAT

3、8BCFSSPSTAT,CKE;初始化SSPSTAT,CKE=0,SMP=OBCFSSPSTAT,SMPCLRFOPTION_REG;开启B口内部弱上拉,控制按键CLRFTRISD;将PORTD设置为输出端口,控制LED显示MOVLWB'00111111';RB0-RB5设置为输入端口,控制按键MOVWFTRISBMOVLWB'10010111';初始化SPI模块通信线方向TRISC为B'10010111'MOVWFTRISC;SCK输出,SDO输出,SDI输入,CS_MCU输出BCFPIE1,SSPIE;禁止SSP中断BSFINTCON,GIE;禁止所有中断BANK

4、SELPIR1BCFPIR1,SSPIFCLRFPORTDBSFCS_MCU;从机SS禁止;BSFCS_MCUMOVLWB'00100001';初始化SSPCON;CKP=0,SSPEN=1,SPI主模式Fosc/16MOVWFSSPCONLOOPCALLCHECK;调用获取按键值CHECK子程序BCFCS_MCUMOVFKEY_VALUE,W;向从机发送数据:将KEY_VALUE写入SSPBUF后,开MOVWFSSPBUF;始启动发送和接收过程BTFSSPIR1,SSPIFGOTO$-1BSFCS_MCUBCFPIR1,SSPIFCALLDELAY_1msBCFCS

5、_MCUMOVLW0x17;写一个无效数据入SSPBUF后,启动发送和接收过程MOVWFSSPBUFBTFSSPIR1,SSPIFGOTO$-1BSFCS_MCUBCFPIR1,SSPIFMOVFSSPBUF,WMOVWFKEY_VALUE_CMOVFKEY_VALUE_C,WMOVWFPORTDGOTOLOOP;**函数名称:CHECK;**函数功能:获取按键值************************************************8CHECKBANKSELPORTB;跳到体0LOOP1CLRFKEY_VALUE;KEY_VALUE清零MOV

6、LWB'00111111';检测是否有按键被按下ANDWFPORTB,1;屏蔽高两位MOVLWB'00111111'XORWFPORTB,0;异或检测按键是否有变化BTFSSSTATUS,ZGOTOLOOP1;否,继续查询MOVFPORTB,0;是,把PORTB存到MCU_DATAMOVWFKEY_VALUECALLDELAY_20ms;延时20ms,看按键是否有抖动MOVFKEY_VALUE,0;XORWFPORTB,0BTFSSSTATUS,ZGOTOLOOP1;有抖动,返回重新检测LOOP2MOVLWB'00111111';没有,等待所有按键被释放ANDWFPO

7、RTB,1;屏蔽高两位MOVLWB'00111111';异或检测按键是否已回弹XORWFPORTB,0BTFSSSTATUS,ZGOTOLOOP2CALLDELAY_20ms;延时20ms,看按键是否有抖动LOOP5MOVLWB'00111111';异或检测按键是否已回弹XORWFPORTB,0BTFSSSTATUS,ZGOTOLOOP5MOVLWB'11000000';高两位置1,为取反做准备IORWFKEY_VALUE,1COMFKEY_VALUE,1;KEY_VALUE取反RETURN;*****************************

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。