好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

单片机实验指导.doc

27页
  • 卖家[上传人]:ni****g
  • 文档编号:389612288
  • 上传时间:2023-10-12
  • 文档格式:DOC
  • 文档大小:1.19MB
  • / 27 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 目 录Keil软件介绍与仿真器设置 1实验一、80C51汇编指令练习 6实验二、80C51汇编语言程序设计 9实验三、中断应用实验 13实验四、定时器/计数器应用实验 16实验五、A/D转换器应用实验 19实验六、D/A转换器应用实验 22实验七、综合技能训练(键盘、LED显示、D/A、A/D及电机等)(6课时) 22实验电路图 24Keil软件介绍与仿真器设置8051单片机采用CISC指令集,111条汇编指令,因单片机硬件资源远小于8086微机,所以单片机的汇编指令是汇编语言的子集,另外,结合8051单片机硬件特点扩展了一部分汇编指令,有些指令执行的功能也有区别;同样,单片机的C语言仅是ANSI—C的较小子集,使用时须针对单片机硬件结构,随着单片机技术几十年的发展,形成了符合单片机结构特点的C语言风格要想高效开发实用的单片机系统,就要熟练掌握C语言编程,并至少能读懂汇编指令单片机应用系统开发的一般过程有项目组织、编制程序、程序编译、仿真调试、编程下载等过程项目管理针对目标器件设置开发环境参数、配备初始文件等;编译过程将C或汇编程序翻译成机器码,并连接生成可执行文件,在编译过程查找并修改程序的语法性错误;仿真是模拟程序的运行,查找程序功能性错误,验证程序执行效果,其中软件仿真是用PC机模拟程序的运行,硬件仿真是使用仿真器代替单片机接入实际电路中运行。

      国内常用的单片机开发软件工具有IAR、Keil、WAVE等使用Keil可以完成程序编辑、编译、连接、软硬件仿真过程Keil自带Simulator软件仿真器,也可以安装使用Proteus仿真模拟演示系统的动画效果Keil已安装支持四种种硬件仿真器,使用其它型号仿真器需要安装驱动文件一. Keil界面1. 编辑界面:打开计算机,运行Keil C51 集成开发环境,观察菜单和工具栏图1 Keil C项目和文件编辑界面File、Edit—同一般软件,对单独程序文件的新建、打开、保存、各种编辑...View—对各种工具栏、窗口的管理Project—项目的建立、设置、编译等工具Windows—管理各窗口的排列布局快捷工具栏里也准备了最常用的工具,鼠标停留时提示操作任务,在图中依次有文件打开、编辑、对齐、标记、查找...调试等,下一行有编译、项目设置工具左侧是项目窗口,列举出当前项目的各种文件,也可以切换成Regs或Books区右侧灰色区域是工作区,对程序文件的编辑底部是OUTPUT窗口,显示编译、连接等信息2. 调试界面:编译完成进入调试界面如图图2 调试界面DEBUG—各种调试操作,主要是运行、断点设置。

      Peripherals—对外围模块中断、IO口、串口、定时器的观察设置常用快捷工具如图注释:图3 调试状态快捷工具二. Keil操作过程操作方法、步骤不是唯一,可根据实际需求与个人爱好自行确定,基本过程如下:1. 建立工程:Project \ New Project... ,输入项目名、选定保存目录2. 自动跳出Select Device for Target...指定目标器件的窗口,选择Atmel公司的AT89C51单片机随后跳出的Copy Standard 8051 Startup...是将文件STARTUP.A51文件添加到项目中,这个文件用于在软件仿真前对RAM区清零等,建议选择“是”3. 建立程序文件:File \ New...,键入程序代码,保存文件时按类型加后缀,如.ASM或.C或.H4. 为工程添加文件:快捷的添加方法是—在工程文件目录区单击选中Source Group 1 ,右键出现下拉菜单,选Add Files to Group ...,找到文件所在文件夹,指定文件类型,选中文件,单击一次Add即可添加结束后,可以用鼠标点击工程项目窗口中的“+”,展开工程项目内部的文件,从中可以看到添加进来的文件名称。

      5. 设置工程项目环境: Project \ Options for Target ‘Target1’,对,选取其中的“Debug”标签,出现如下的项目设置对话框: 图4 Keil项目设置在Device Target 标签下修改Xtal(晶振频率)值,在Debug标签下设置仿真器:Use Simulator是软件仿真,图中选择了伟福V系列仿真器,是硬件仿真其余可选择默认6. 编译项目:编译是综合环境设置,将程序文件翻译、连接、生成目标文件或可执行文件的过程,要逐条修正出现的错误直至编译成功Translater current file仅编译当前文件,Build target连接并生成目标文件,Rebuild all target files编译连接所有需要的文件,如果修改了程序和环境设置,在调试前一定要Rebuild all target files一次才有效7. 调试过程:点击Start / Stop Debug Session进入和退出调试状态调试过程中可观察到寄存器、内存、变量...随指令执行的变化情况,可单步、全速执行,可设置断点,需根据要求自行选择在Keil运行期间,RAM区可能出现非0随机数,可将如下的程序片段添加到汇编文件开始位置,编译并运行一次软件仿真即可,一旦清零后再次启动Keil仍然保持是0,片段如下:MOV R0,#200CLR AIDATALOOP: MOV @R0,A DJNZ R0,IDATALOOP三. 实验注意事项1. 实验前应预习,看懂程序和电路,准备好记录数据的表格。

      2. 项目安排有一定连贯性,实验结束后及时完成实验报告,解决遗留问题3. 建议在个人计算机上安装软件4. 实验期间需要认真思考,禁止上网5 建议将已经掌握的子程序写进自己的包含文件,自带U盘保存四. 实验报告要求1.符合实验报告格式要求2.明确实验目的、实验步骤清晰、实验报告内容充实3.程序关键语句、结构要有注释,注释应清楚、简练4. 实验现象描述准确,现象要结合实验原理5. 功能性实验应画出流程图6.字迹清楚,图表数据规范7.实验报告独立完成8.完成思考题实验一、80C51汇编指令练习一、实验目的1.熟悉Keil C51 集成开发环境的使用方法2.掌握数据传送指令的用法3.掌握算术运算指令的用法4. 掌握逻辑运算指令的用法5.掌握位操作指令的用法6.掌握控制转移指令的用法二、实验步骤1.按照Keil C51 集成开发环境的要求,建立程序,然后进行编译、调试并记录结果2.完成数据传送指令、算术运算指令、逻辑运算指令的实验三、实验内容1.将下列汇编指令组合为汇编程序,观察内部RAM数据传输指令的功能,记录各指令执行后目标RAM的数值,描述寻址方法—26—ORG 0000HMOV R0,#40H MOV R1,#41HMOV A, R0 MOV 30H,A MOV 20H,30H MOV A,#30H MOV @R0,A MOV A,30H MOV R1,A MOV A,@R0 MOV R7,A MOV DPTR,#1700H MOV 30H,R7 MOV 20H,@R0 MOV 21H,#10HMOV @R0,21H MOV @R1,#01H SJMP $END提示:观察内存数据操作—打开Memory Winds,在Address栏输入D:0030H即可观看数据存储区从0030H开始的各单元数据,外部数据区用X,程序ROM区用C。

      在Disassembly Windows窗可观察汇编指令的机器码和单元地址2.外部RAM数据传输指令ORG 0000HMOV DPTR,#0A330HMOV A,#80H MOVX @DPTR,A MOV A,#00H MOVX A,@DPTR MOV P2,#80HMOV R0,#31H MOV R1,#32H MOVX @R0,A MOV A,#30H MOVX @R1,A MOVX A,@R0 MOVX A,@R1END3. 加法指令练习,观察记录目标寄存器及PSW内容、运算对标志位的影响ORG 0000HMOV 40H,#0F0HMOV R0,#3EHMOV A,R0ADD A,R0ADD A,40HADD A,#0A0HADDC A,R0ADDC A,40HINC A INC R0 INC R0 ADDC A,@R0INC 40H INC @R0ADDC A,#0B2HADD A,@R0MOV DPTR,#0A30FH INC DPTR MOVX @DPTR,A END4.减法指令练习,观察记录目标寄存器及PSW内容ORG 0000HMOV 30H,#37HMOV R0,#32H MOV A,30H SUBB A,R0SUBB A,30HDEC R0DEC 30H SUBB A,#0CBHDEC R0DEC A SUBB A,@R0DEC @R0NOPEND5.逻辑操作指令练习,解释指令并验证执行结果ORG 0000HMOV A,#35HMOV R0,#50H MOV 50H,#55HMOV 30H,#78HANL A,R0ORL A,R0CPL AANL A,#9AHORL A,30HXRL 30H,A RL A ANL 30H,#0F0H XRL A,@R0 ORL A,@R0XRL 30H,#0D5HANL A,@R0END6.位操作指令练习,解释指令并验证执行结果ORG 0000HMOV P1,#74HMOV 20H,#31HMOV 30H,#00HCPL 05H MOV C,00H ANL C,01H SETB P1.0MOV A,#33HANL C,ACC.3 ORL C,ACC.7END7.控制转移指令练习,加注释并说明该程序所完成的功能。

      本实验用硬件仿真,在Project \ Options for Target...设置使用WAVE仿真器;用排线连接仿真头P1口与LED指示灯(J7)ORG 0000HSTART: MOV A,#01HLOOP: MOV P1,AMOV R1,#10HDEL1: MOV R2,#200DEL2: MOV R3,#126DEL3: DJNZ R3,DEL3DJNZ R2,DEL2DJNZ R1,DEL1RL AAJMP LOOPEND观察实验现象,分析程序并画出流程图四、思考题1.数据传送指令中直接寻址、间接寻址、立即数寻址有什么区别,请各举两例说明2.内部RAM和外部RAM的地址范围各是多少?在2中各MOVX指令是对哪个单元的操作?3.总结影响C、CY、Z标志位的操作指令有哪些4. 逻辑操作有哪些指令?可以不需要A参与的有哪些?5.怎样区别一条指令是位操作还是单元操作?。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.