《《嵌入式系统原理与应用》实验报告05-SPI通信实验(共10页).doc》由会员分享,可在线阅读,更多相关《《嵌入式系统原理与应用》实验报告05-SPI通信实验(共10页).doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上嵌入式系统原理与应用实验报告实验序号:05 实验项目名称:SPI通信实验学号姓名ZRZ专业、班18计卓1班实验地点指导教师黄鹏程实验时间一、实验目的1熟悉proteus仿真软件的使用。2熟悉ADS1.2编译器的使用。二、实验设备(环境)及要求硬件:PC机; 软件:PC机操作系统windows XP,Proteus软件,ADS1.2 三、实验内容与步骤实验内容:搭建好环境的基础上,实现SPI通信实验。实验要求如下:利用LPC2138的SPI接口,实现与外围芯片74HC595的通信。控制74HC595实现流水灯效果或者实现八段数码管的显示效果。可根据自己的能力自由发挥。实
2、验步骤:1. 在Proteus将实验所需的各个部件连接,确保连接正确无误。2. 在ADS当中将相应的代码完成,保证编译通过无异常。3. 在Proteus打开相应的hex文件进行仿真实验。 四、 实验结果与数据处理(一)1. 实验连接图 图1 实验原理图2. 程序代码#include config.h#define HC595_nCS (10)#define HC595_RCK (1 0;time-)for(i = 0;i 3300;i+);void HC595_Init(void)PINSEL0=(PINSEL0&0xffff00ff)|0x;PINSEL0=PINSEL0&0xfffffff
3、c;PINSEL2=PINSEL2&0xfffffff7;IO0DIR=IO0DIR|HC595_nCS;IO1DIR=IO1DIR|HC595_RCK;IO0CLR=HC595_nCS;S0PCCR=0x64;S0PCR=0x30;uint8 HC595_SendData(uint8 data) IO1CLR=HC595_RCK; S0PDR = data; while( 0=(S0PSR&0x80) ); IO1SET=HC595_RCK; return(S0PDR); int main (void)int i;HC595_Init();for(i=0;i256;i+)HC595_Send
4、Data(i);delay(1000); return 0;3. 实验说明在这个实验中,主要的难点在于如何使用74HC595对LED流水灯进行控制,首先我们要对74HC595进行初始化 图2 74HC595初始化我们初始化完成之后,就可以通过控制不同的位来点亮不同位置的流水灯,这里对各个流水灯高低电平的控制我们可以用HC595_SendData()函数来完成。 图3 HC595_SendData()4. 实验效果 图4 实验效果图四、实验结果与数据处理(二)1. 实验连接图 图5 实验原理图2. 程序代码#include config.h#define HC595_nCS (10)#defin
5、e HC595_RCK (1 0;time-)for(i = 0;i 3300;i+);void HC595_Init(void)PINSEL0=(PINSEL0&0xffff00ff)|0x;PINSEL0=PINSEL0&0xfffffffc;PINSEL2=PINSEL2&0xfffffff7;IO0DIR=IO0DIR|HC595_nCS;IO1DIR=IO1DIR|HC595_RCK;IO0CLR=HC595_nCS;S0PCCR=0x64;S0PCR=0x30;uint8 HC595_SendData(uint8 data) IO1CLR=HC595_RCK; S0PDR = da
6、ta; while( 0=(S0PSR&0x80) ); IO1SET=HC595_RCK; return(S0PDR);void nums(int x)switch(x)case 0:HC595_SendData(0x3F);break;case 1:HC595_SendData(0x06);break;case 2:HC595_SendData(0x5B);break;case 3:HC595_SendData(0x4F);break;case 4:HC595_SendData(0x66);break;case 5:HC595_SendData(0x6D);break;case 6:HC5
7、95_SendData(0x7D);break;case 7:HC595_SendData(0x07);break;case 8:HC595_SendData(0x7F);break;case 9:HC595_SendData(0x6F);break;int main (void)int i;HC595_Init();nums(1);delay(1000);nums(8);delay(1000);nums(1);delay(1000);nums(0);delay(1000);nums(7);delay(1000);nums(1);delay(1000);nums(6);delay(1000);nums(6);delay(1000);nums(4);delay(1000);nums(3);delay(1000);for(i=0;i=9;i+)nums(i);delay(1000); return 0;3. 实验效果 图6 实验效果图 图7 实验效果图五、分析与讨论 在这一次实验中,我学会了使用74HC595来对流水灯和数码管进行控制,初步了解并且掌握了SPI串行通信,我知道了SPI是一个全双工的同步串行接口。在数据传输过程中,总线上只能是一个主机和一个从机进行通信,这些为之后的学习打下了基础。六、教师评语签名:日期:成绩专心-专注-专业
限制150内