




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理实验报告实验名称:控制spi显示及led闪烁实验 院 系:物理与机电工程学院 专业班级: 学 号: 学生姓名: 指导教师: 完成时间: 2011.04.20 报告成绩: 评阅意见: 评阅教师 日期 控制spi显示与led闪烁实验一、 实验目的:1、 掌握spi主机实验7段数码管显示的使用和程序的应用;2、 将gpio与spi组合成倒计时显示,同时led也在开始工作;3、 掌握相关程序的书写和更改;二、 实验器材:pc机,easyarm2138开发板,axd仿真软件。三、 实验原理:lpc2138具有一个spi(spi,serial periphl interface)接口,它是一个同步、全双工串行接口,最大数据位速率为时钟速率的1/8,可以配置为主机或者从机。在同一总线上可以有多个主机或者从机,但同一时刻只能有一个主机和一个从机能够进行通信,在一次数据传输过程中,主机向从机发送一字节数据,从机也向主机返回一字节数据。spi主机操作流程图1.spi主机实验-7段数码管显示 实验使用lpc2138的spi接口作为主机向74hc595发送数据,数据内容由7段数码显示,同时spi主机接收74hc595的移位输出数据,即接收回前一个显示数据。实验硬件连接如图4.61所示 图4.61 spi接口控制74hc595硬件连接图 图中已经将最高位输出(sqh)连接到lpc2131的spi接口的miso0,可用来读回74hc595移位输出的数据。 该实验演示在7段数码管上显示一些字符,字符的字模表存于一数组中,流程图如图4.62所示,程序代码如程序清单4.17所示。7段共阳数码管真值表lpc2138具有2个32位可编程定时/计数器,均具有4路捕获、4路比较匹配并输出电路。定时器对外时钟(pclk)周期进行计数,可选择产生中断或根据4个匹配寄存器的设定,在到达指定的定时值时执行其它动作(输出高/低点平、翻转或者无动作)。它还包括4个捕获输入,用于在输入信号发生跳变时捕获定时器值,并可选择产生中断。可用于对内部事件进行计数的实践间隔时器,或者通过捕获输入实现脉宽调制,亦可作为自由运行的定时器。定时器0和定时器1除了外设基地址以外,其他都相同。2.定时器0定时实验-中断方式 用定时器0实现0.5秒定时,使用中断方式实现定时控制,让蜂鸣器每秒钟响1次。程序需要在t0mcr中设置定时器0匹配复位tc并产生中断,还需设置向量中断控制器(vic),使能并设置timer0中断,最后等待中断。timer0中断服务程序取反蜂鸣器控制口的电平,然后清除timer0中断标志,最后通知vic中断处理结束并返回。主程序和中断服务程序的流程图见图4.92,程序清单4.22所示。 图4.92 定时器0定时实验主程序和中断程序流程图四、实验程序: 实验说明:本次实验的目的是实现数码管现实倒计时9-0后led1闪烁的效果,并且spi的显示时间间隔、led1闪烁间隔与定时器0设置的一致,不断循环。 注:修改过的程序均有下划线。#include config.h#define leds8 0xff 18#define leds1 0x01 18#define hc595_cs (1 29) / p0.29口为74hc595的片选uint8 rcv_data; /观察读回的数据uint8 rcv_data; /观察读回的数据 /* 此表为led09 */uint8 const disp_tab16 = / 0 1 2 3 4 5 6 7 8 9 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/* 函数名称:mspi_init()* 函数功能:初始化spi接口,设置为主机。* 入口参数:无* 出口参数:无*/void mspi_init(void) spi_spccr = 0x52; / 设置spi时钟分频 spi_spcr = (0 3) |/ cpha = 0, 数据在sck 的第一个时钟沿采样 (1 4) |/ cpol = 1, sck 为低有效 (1 5) |/ mstr = 1, spi 处于主模式 (0 6) |/ lsbf = 0, spi 数据传输msb (位7)在先 (0 7);/ spie = 0, spi 中断被禁止/* 函数名称:mspi_senddata()* 函数功能:向spi总线发送数据。* 入口参数:data 待发送的数据* 出口参数:返回值为读取的数据*/uint8 mspi_senddata(uint8 data) ioclr = hc595_cs; / 片选74hc595 spi_spdr = data; while( 0 = (spi_spsr & 0x80);/ 等待spif置位,即等待数据发送完毕 ioset = hc595_cs; return(spi_spdr);/* 函数名称 :main()* 函数功能 :使用定时器实现1秒钟定时。*/int main (void) uint8 tt=9;/*设置循环次数*/ pinsel0 = (pinsel0 & 0xffff00ff) | 0x00005500;/ 设置管脚连接spi pinsel2 = pinsel2&(0x08);/* 设置管脚连接gpio*/iodir = hc595_cs; mspi_init(); / 初始化spi接口io1dir = leds8;/* 设置led控制口输出*/io1set=0xfe 18;/* 定时器0初始化 */t0tc = 0;/* 定时器设置为0*/t0pr = 0;/* 时钟不分频*/t0mcr = 0x03;/* 设置t0mr0匹配后复位t0tc,并产生中断标志*/t0mr0 = fpclk; /* 1秒钟定时*/t0tcr = 0x01;/* 启动定时器*/rcv_data = mspi_senddata(disp_tabtt);/ 发送显示数据while (1)while (t0ir & 0x01) = 0);/* 等待定时时间到*/tt-;rcv_data = mspi_senddata(disp_tabtt);/ 发送显示数据t0ir = 0x01;/* 清除中断标志*/while(tt=0)tt=9;t0ir = 0x01;/ 清除中断标志if (io1set & leds1) = 0)io1set = leds1;elseio1clr = leds
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 01-【制度】-04-固定资产保管制度
- 教师招聘之《幼儿教师招聘》考试黑钻押题含答案详解【培优b卷】
- 深度学习图像识别应用创新创业项目商业计划书
- 渔业捕捞智能导航系统创新创业项目商业计划书
- 智能旅游服务创新创业项目商业计划书
- 2025年教师招聘之《小学教师招聘》预测试题及完整答案详解【名师系列】
- 智能灯光控制系统创新创业项目商业计划书
- 教师招聘之《幼儿教师招聘》复习提分资料带答案详解(夺分金卷)
- 医用级造影剂中间体项目可行性研究报告
- 2023年汽车排气系统和整车加油管企业组织架构及部门职责
- 汉字基本笔画与书写训练
- 数控铣工(四级)职业技能理论知识考试题库附答案(新版)
- 儿童常见疾病的防治 OK课件
- 软件工程导论课件(第六版)(张海潘编著)(1-13章)
- 中建硅墨烯保温板外墙保温施工方案
- 第三讲 神话学
- 山东大学核心期刊目录(文科)
- 中医基础理论-脏象学说
- ICU患者的早期活动
- GB/T 8566-2007信息技术软件生存周期过程
- GB/T 13452.2-2008色漆和清漆漆膜厚度的测定
评论
0/150
提交评论