您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 《单片机原理与应用》の实验指导书
《单片机原理与应用》实验指导书目录第一章初级软件实验部分.............................................................2实验一二进制转换成十进制实验..................................................2实验二无符号数十进制加法实验..................................................4实验三数据传送实验......................................................................5实验四数据排序实验......................................................................6第二章硬件接口实验部分.............................................................8实验五I/O口输入、输出实验........................................................8实验六定时器实验..........................................................................9实验七计数器实验........................................................................11实验八外部中断实验....................................................................13第一章初级软件实验部分实验一二进制转换成十进制实验一、实验设备1.THGQC-1型嵌入式单片机实验开发系统-套。2.PC机一台。注:其它实验与此相同,此项以后不再重述。二、实验目的掌握汇编语言设计和实验步骤,熟悉在KEIL环境下观察内部RAM的方法。三、实验内容单片机中的数值有各种表达方式,这是单片机的基础。掌握各种数制之间的转换是一种基本功。本实验内容是将一个给定的一字节二进制数,通过编程将其转换成十进制码。四、实验步骤1)启动PC机,打开KEIL软件,软件设置为模拟调试状态。在所建的Project文件中添加TOBCD.ASM文件,打开TOBCD.ASM文件,阅读、分析、理解程序,编译程序进行调试。(如何建立工程请看附录说明)2)打开RAM观察窗口,根据示例程序注释设置断点,运行程序。程序具体功能是将累加器A的值拆为三个BCD码,并存入RESULT开始的三个单元,例程A赋值#0ffh。打开MEMORYWINDOW数据窗口,(在MEMORY#1中输入D:30H)观察RAM地址30H、31H、32H的数据变化,30H更新为02,31H更新为05,32H更新为05。3)修改源程序中给累加器A的赋值,重复实验,观察实验效果。4)打开CPU寄存器窗口,选择单步或跟踪执行方式运行程序,观察各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。五、实验程序参考框图六、实验参考程序RESULTEQU30HORG0000HJMPSTARTORG0100HSTART:MOVSP,#40HMOVA,#0FFHCALLBINTOBCDNOP;此处设置断点,察看RAM30H,31H,32HLJMP$BINTOBCD:MOVB,#100DIVABMOVRESULT,A;除以100得百位数MOVA,BMOVB,#10DIVABMOVRESULT+1,A;余数除以10得十位数MOVRESULT+2,B;余数为个位数RETEND实验二无符号数十进制加法实验一、实验目的掌握无符号数、十进制加法,熟悉在KEIL环境下观察内部RAM的方法。二、实验内容编写并调试一个双字节无符号十进制数加法程序,其功能为将被加数写入30H、31H单元,加数写入40H、41H单元,运行程序结果写入52H、51H、50H单元中,则加法程序功能为(31H)(30H)+(41H)(40H)=(52H)(51H)(50H)(都是高位在前、低位在后)。三、实验步骤1)启动PC机,打开KEIL软件,软件设置为模拟调试状态。在所建的Project文件中添加ADD.ASM文件,打开ADD.ASM文件,阅读、分析、理解程序,编译程序进行调试。2)打开RAM观察窗口,根据示例程序注释设置断点,运行程序,打开MEMORYWINDOW数据窗口,分别观察30H(在MEMORY#1中输入D:30H)观察RAM地址30H、31H、40H、41H、50H、51H、52H的数据变化。示例程序执行:3412H+7856H,结果为0AC68H。四、实验参考程序DATA0EQU12HDATA1EQU34HDATA2EQU56HDATA3EQU78HORG0000HAJMPSTARTORG0100HSTART:MOV30H,#DATA0MOV31H,#DATA1;被加数送31H,30HMOV40H,#DATA2MOV41H,#DATA3;加数送41H,40HMOVA,30HADDA,40H;(30H)+(40H)→AMOV50H,A;保存低位结果MOVA,31HADDCA,41H;(40H)+(50H)+CY→AMOV51H,A;保存高位结果MOV52H,#0MOVA,#0ADDCA,52HMOV52H,A;进位→52HSJMP$;此处设置断点,察看RAM30H,31H,40H,41H,50H,51H,52HEND实验三数据传送实验一、实验目的1.掌握对8051内部RAM及外部RAM的数据操作。2.掌握对8051片内外扩RAM的操作方法。二、实验内容本例程将内部RAM70H~7FH的16个数据送到外部RAM7000H~700FH。三、实验步骤1)启动PC机,打开KEIL软件,软件设置为模拟调试状态。在所建的Project文件中添加Tran.ASM文件,打开Tran.ASM文件,阅读、分析、理解程序,编译程序进行调试。2)打开VIEW菜单中打开MEMORYWINDOW数据窗口,分别观察70H(在MEMORY#1中输入D:70H并在其中输入任意的值)、7000H(MEMORY#2窗口输入X:7000H)。运行程序,观察内外70H和7000H的相对应的数据区的数据是否一致。3)可单步执行程序,观察数据传送过程。四、实验参考程序ORG0000HJMPMAINORG0100HMAIN:MOVR7,#16MOVR1,#70H;内部RAM地址70H送R1MOVDPTR,#7000H;DPTR指向XRAM地址7000HLOOP:MOVA,@R1;内部RAM内容送累加器AMOVX@DPTR,A;将累加器A的值送到XRAMINCDPTRINCR1DJNZR7,LOOP;判断数据是否送完NOP;次处设置断点观查7000H的值是否和70H的值一样SJMP$END实验四数据排序实验一、实验目的掌握排序程序的设计方法。二、实验内容本例程采用交换排序法将内部RAM中的50~59H单元中的10个单字节无符号二进制数按从小到大的次序排列,并将这一列排序后的数据从小到大依次存贮到外部RAM1000H开始处。三、实验步骤1)启动PC机,打开KEIL软件,软件设置为模拟调试状态。在所建的Project文件中添加Order.ASM文件,打开Order.ASM文件,阅读、分析、理解程序,编译程序进行调试。2)在VIEW菜单中打开MEMORYWINDOW数据窗口,分别观察50H(在MEMORY#1中输入D:50H)、1000H(MEMORY#2窗口输入X:1000H)3)可在程序指令NOP处设置断点,在第一个断点处可观察50~59H单元内容是否为10个任意排列原始数据。4)在第二个断点处可观察每次排序的结果。5)可单步执行程序观察排序过程。四、实验参考程序ORG0000HJMPMAINORG0100HMAIN:MOVR0,#50HMOV@R0,#5FHINCR0MOV@R0,#56HINCR0MOV@R0,#5AHINCR0MOV@R0,#5EHINCR0MOV@R0,#51HINCR0MOV@R0,#5BHINCR0MOV@R0,#53HINCR0MOV@R0,#58HINCR0MOV@R0,#57HINCR0MOV@R0,#55H;将10个随机数送入内部RAM的50~59H单元NOP;可在此处设置断点ACALLQUE;调用排序子程序OUT:MOVR0,#50HMOVDPTR,#1000HMOVR7,#10OUT1:MOVA,@R0MOVX@DPTR,AINCR0INCDPTRDJNZR7,OUT1HERE:AJMPHERENOP;可在此处设置断点,观察每次排序结果QUE:CLR00H;清交换标志MOVR1,#50HMOVR6,#09HI3:MOVA,R6MOVR7,AMOVA,R1MOVR0,AMOVA,@R0I2:INCR0MOVR2,ASUBBA,@R0MOVA,R2JCI1SETB00HXCHA,@R0I1:DJNZR7,I2JNB00H,STOPMOV@R1,AINCR1DJNZR6,I3STOP:RETEND第二章硬件接口实验部分实验五I/O口输入、输出实验一、实验目的掌握单片机I/O口输入、输出数据的方法;二、实验内容以P1口为输入口,接八位逻辑电平输出,以P0口为输出口,接八位逻辑电平显示,编写一个程序,读入P1口状态并在P0口输出显示。三、实验电路实验电路参见指导书中的附录一系统原理图。系统原理图的第一部分为MCU模块,详细地描述了MCU的管脚连接。系统原理图的其它部分为各模块原理图。本实验所需电路请参见系统原理图的第一部分和图9-1、图10-1。四、实验步骤1)系统各跳线器处在初始设置状态(参见附录四),J1的8只短路帽打在1,2处,3,4五只短路帽打在右边,用8位数据线连接八位逻辑电平输出模块的JD50到MCU的JD12(P1口),MCU的JD13连接到八位逻辑电平显示模块的JD30。2)启动PC机,打开KEIL软件,软件设置为硬件调试状态。在所建的Project文件中添加“LED.ASM”文件,打开“LED.ASM”文件,阅读、分析、理解程序,编译程序进行调试。3)观察发光二极管的亮灭与拨动开关的状态是否一致。设拨动开关拨下输出为低电平,发光二极管点亮。改变拨动开关的状态,发光二极管的亮灭随之变化。五、源程序:ORG0000HLJMPMAINORG0100HMAIN:MOVA,#0XFFMOVA,P1MOVP0,ALCALLDELAYLJMPMAINDELAY:MOVR6,#20DLOOP1:MOVR7,#0DLOOP2:DJNZR7,DLOOP2DJNZR6,DLOOP1RETEnd实验六定时器实验一、实验目的1.学习8051内部计数器的使用和编程方法2.进一步掌握中断处理程序的编写方法二、实验说明关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部计数器在单片机中主要有定时器和计数器两个功能。本实验使用的是定时器,定时为一秒钟。CPU运用定时中断方式,实现每一秒钟输出状态发生一次反转,即发光管每隔一秒钟亮一次。定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是12个振荡器周期。假设实验系统的晶振是12MHZ,程序工作于方式2,即8位自动重装方式定时器,定时器100uS中断一次,所以定时常数的设置可按以下方法计算:机器周期=12÷12MHz=1uS(256-定时常数)×1uS=100uS定时常数=156。然后对100uS中断次数计数10000次,就是1秒钟。在本实验的中断处理程
本文标题:《单片机原理与应用》の实验指导书
链接地址:https://www.777doc.com/doc-5303736 .html