欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    MCU综合课程设计——IO接口实验与LED显示实验.doc

    • 资源ID:4146654       资源大小:84.50KB        全文页数:10页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    MCU综合课程设计——IO接口实验与LED显示实验.doc

    实 验 报 告课程名称: MCU(微控制器)综合课程设计 实验名称: I/O接口实验与LED显示实验 院 (系): 专 业: 姓 名: 学 号: 实 验 室: 测控技术实验室 实验组别: 同组人员: 实验时间: 2011 年 4 月 29 日评定成绩: 审阅教师: 目 录一、 实验目的和要求······································3二、 实验原理···········································3三、 实验方案和实验步骤··································5四、 实验设备与器材配置··································8五、 实验记录············································8六、 实验总结···········································8七、 源代码··············································8一、 实验目的和要求1、 熟悉和掌握编辑和编译环境Keil和Medley;2、 熟悉汇编语言;3、 了解I/O接口和使LED灯和数码管亮的原理。4、 利用实验板I/O口(例如P0口)控制8个LED循环显示,循环点亮时间间隔约为1秒(采用软件延时实现)。5、 在8个LED数码管显示8个指定的数(例如学号后8位)。二、 实验原理(1)、I/O接口实验(流水灯实验):本实验采用上排LED指示灯(与FPGA相连),其原理图如下:主板左下方有16个LED指示灯,其中上面8个LED指示灯FLED0FLED7输入直接与FPGA插座引脚相连,可由FPGA模块输出引脚直接驱动,需要8根导线将I/O口与相应的LED连接。输入高电平时相应指示灯被点亮(这里实验箱开机复位后默认是点亮的)。通过改变送到I/O接口的8位数,控制8个LED灯的亮灭。本实验中使用的单片机的工作频率为12MHz,机器周期为1us。延时1s的实现可通过控制指令周期来实现。(2)、LED显示实验:要求在8个LED数码管显示8个指定的数(例如学号后8位)。LED数码管的电路图如下:如图所示:实验装置上设有8只共阳极七段数码管及驱动电路,8只数码管共数据线,通过片选可以分别显示。段码表为:数码管模块具有两个地址:片选地址(位控地址)0F400H和数据(段码)地址0F300H,要在某个数码管上显示1个数,需要先向片选地址上送一个数,选中其中一个数码管,再向数据地址送要显示的数据的段码值,这就是位控和段控。数码管的I/O地址都为片外地址。数码管要8位同时显示,需要采用动态刷新的方式将8位数码管轮流显示。刷新时间可设为1ms,可用软件延时实现。段码可采用查表法或其它方法来实现,例如查表法TAB: DB 0C0H,0F9H,三、 实验方案与实验步骤(最好绘制程序流程图)(一)、I/O接口实验(流水灯实验)实验步骤:编译环境为Medley(1)新建项目,命名后其它设置按默认进行,无需手工进行任何设置(一路默认设置即可)直到完成项目的创建。(2)添加自己编写的.asm源文件。(3)编译/汇编。(4)用8根导线分别将8个LED指示灯 FLED0FLED7和P0口的8位相连。(5)生成代码并下载到仿真器上。(6)全速运行,即可看到流水灯现象。实验方案:利用实验板I/O口(例如P0口)控制8个LED循环显示,循环点亮时间间隔约为1秒。先将A中的数赋01,并送到P0口,即右边第一个灯亮,调用延时,然后A的数值左移,再送P0口,再延时,采用RL A左移,所以当最左边的灯亮后,下一次亮的会是最右边的灯,如此循环反复,流水灯就运作起来了。流程图:开 始将累加器A中赋立即数01,即从右边的灯开始亮起将累加器A中的值送到P0口调用延时将寄存器R2置初始值5将寄存器R3置初始值20将寄存器R4置初始值20将寄存器R5置初始值248将(R5)-1,判断是否为0将(R4)-1,判断是否为0将(R3)-1,判断是否为0NYNNY将寄存器R6赋168将(R6)-1,判断是否为0将(R2)-1,判断是否为0YY跳出延时子程序将A中的数值左移一位NYN该实验的延时1S用指令周期的个数实现,一个机器周期为1us,所以需要1000000个指令周期。计算所编写程序的延时时间为: (248*2+3)*20+3*20+3+1+2*168*5+3=1000003us(二)、LED显示实验实验步骤:编译环境为Medley,本实验无需连图,编写.asm源文件,编译后生成代码下载到仿真器上,全速运行,即可看到数码管的现象。实验方案:通过片选地址(位控地址)0F400H和数据(段码)地址0F300H送的内容显示数值。要在8个数码管上显示8个数,需要先向片选地址上送一个数选中其中一个数码管,再向数据地址送要显示的数据的段码值,再选中下一个数码管,然后送该数码管要显示的段码值,如此循环,使数码管动态显示,由于两个数码管之间亮的时间间隔短,视觉暂留,仿佛8位同时显示一样。流程图:开 始将08008401八个数分别送到地址80H79H将立即数79送入寄存器R0中,建立缓冲区首址将位控码FE送寄存器R3 ,并同时送AY 将位控地址0F400送DPTR将位控码从A通过DPTR间址送到位控口0F400H通过R0间址将要显示的数送A将查询表的地址送DPTR将DPTR加A中的偏移后,取该地址中的字行代码送到A将段控地址0F300送DPTR将段控码从A通过DPTR间址送到段控口0F300H将数值2送入R4将数值248送入R5(R5)-1,判断是否为0(R4)-1,判断是否为0Y NN进入延时退出延时将R0+1,转向下一个缓冲单元将R3的内容送给A判断位控是否达到最高位A中内容左移一位A的内容即位控码送R3保存YN该实验的延时1ms用指令周期的个数实现,一个机器周期为1us,所以需要1000个指令周期。计算所编写程序的延时时间为:(248*2+1+2)*2+1=999us=0.999ms四、 实验设备与器材配置电脑一台(配有Medley编译环境)、MCU单片机实验硬件箱、八根导线五、 实验记录流水灯实验现象:8个LED灯从右边到左依次亮,每次只亮一个灯,间隔时间为1s。当亮完最左边的灯时,最右边的灯又开始亮,如此循环反复。数码管显示实验现象:8位学号显示在8个数码管上。六、 实验总结1、 使用Keil和Medley软件大致相同,但也有些微不同,特别是在运行存储器内容交换的程序时,Medley需要下载到单片机里,但是Keil不需要。2、 外部数据存储器读/写只能通过累加器A使用间接寻址方式进行,间址寄存器可以是Ri或DPTR.。3、 查询A累加器里面的位的状态,只能使用ACC形式,ACC代表累加器地址(E0H)。七、 源代码(一)、I/O接口实验(流水灯实验)ORG 0000HLJMP MAINORG 0100HMAIN:MOV A,#01HDDD:MOV P0,ACALL DELAYRL ASJMP DDDDELAY:MOV R2,#5; 延时1秒D0: MOV R3,#20 D1: MOV R4,#20D2: MOV R5,#248 DJNZ R5,$ DJNZ R4,D2 DJNZ R3,D1MOV R6,#168DJNZ R6,$ DJNZ R2,D0 RETEND(二)、LED显示实验:ORG 0000HLJMP MAINORG 0100HMAIN:MOV 79H,#01HMOV 7AH,#00HMOV 7BH,#04HMOV 7CH,#08HMOV 7DH,#00HMOV 7EH,#00HMOV 7FH,#08HMOV 80H,#00HDDD:MOV R0,#79H;建立显示缓冲区首址MOV R3,#0FEH;从右边开始显示MOV A,R3;位控码初值LD0:MOV DPTR,#0F400H;位控口地址MOVX DPTR,A;输出位控码MOV A,R0;取出显示数据MOV DPTR,#TABMOVC A,A+DPTR;查表取字形代码MOV DPTR,#0F300H;段控口地址MOVX DPTR,A;输出段控码CALL DELAY;延时INC R0;转向下一缓冲单元MOV A,R3JNB ACC.7,LD1;判断是否到最高位,到,则返回RL A;不到,向显示器高位移位MOV R3,A;位控码送R3保存AJMP LD0;继续扫描LD1:AJMP DDD;字形代码表TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EHDELAY:MOV R4,#2;延时1msD2: MOV R5,#248 DJNZ R5,$ DJNZ R4,D2 RETEND

    注意事项

    本文(MCU综合课程设计——IO接口实验与LED显示实验.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开