ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:226.34KB ,
资源ID:6592136      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6592136.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机实验指导书.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机实验指导书.docx

1、单片机实验指导书4 单片机应用系统实验4.1 软件实验(使用软件仿真设置)软件实验一 数据传送实验一、实验内容:1 编写程序,将内部RAM中30H-5FH中的数据设置为55H。2 编写程序,将内部RAM中30H-5FH中的内容传送到90H开始的内部RAM中去。3 编写程序,将内部RAM中30H-5FH中的内容传送到200H开始的外部RAM中去(注意实际系统中为扩展的内部RAM)。二、实验目的与要求:1 学习与掌握针对不同区域RAM的操作方法。2 学习与掌握指针的使用与循环程序的编写方法。3 学习与掌握如何查看各个部分存储器的内容。三、实验说明:对于不同区域的RAM操作需要使用不同的寻址方式与指

2、令。对于内部RAM的低128字节,可以使用直接寻址也可以使用间接寻址;对于内部RAM的高128字节,只能使用间接寻址;对于外部RAM,只能使用指针DPTR进行间接寻址。对于数据块的操作一般使用循环程序完成。编写程序并编译(build)检查语法错误。编译通过后进入调试环境,单步执行程序检查程序的正确性。最后连续执行程序并检查RAM内容是否正确。注意主程序的最后应该加一条SJMP $ 指令,以避免由于连续执行时无法停机而造成无法预料的后果。四、实验程序流程图: 五、思考题:如果源与目的数据块 均为外部RAM,应该如何编程?软件实验二 数据分类与校验实验一、实验内容:1编写程序,将内部RAM中30H

3、-5FH中的数据设置为1-48。2 编写程序,将内部RAM中30H-5FH中的奇数传送到90H开始的内部RAM中去。3编写程序,将内部RAM中30H-5FH中的数据按照奇校验设置最高位。二、实验目的与要求:1学习与掌握判断数据奇偶性的方法。2学习与掌握分支程序的编写方法。3学习与掌握如何给存储器中的数据增加校验位。三、实验说明:汇编语言中判断数据的奇偶性很简单,数据的最低位为1为奇数,否则为偶数。分支处理是程序设计中的基本技巧,是根据某一条件是否成立执行或不执行规定操作的方法。数据的奇偶校验不是判断数据的奇偶性,而是判断数据中有奇数个1还是偶数个1。如果是奇校验,则增加校验位后的数据应该具有奇

4、数个1。编写程序并编译(build)检查语法错误。编译通过后进入调试环境,单步执行程序检查程序的正确性。最后连续执行程序并检查RAM内容是否正确。四、实验程序流程图: (传送奇数) Y N五、思考题: 1如果只传送正数或负数应该如何编程? 2如果只传送大于某个规定数值的数据应该如何编程?软件实验三 简单算术运算实验一、实验内容:1编写程序,计算Z=X+Y+30。X、Y为位于内部RAM 30H、31H单元的单字节BCD变量。Z位于32H33H,高位放低地址。2编写程序,计算Z=X*10+Y/5-10。X、Y为位于内部RAM 30H、31H单元的单字节变量,Z位于32H33H,高位放低地址。3编写

5、程序,计算1100的累加和。结果存放于内部RAM的30H、31H中。高位放低地址。二、实验目的与要求:1学习与掌握算术运算指令的使用方法。2学习与掌握BCD数据运算的处理方法。3学习与掌握多字节数据的运算方法。三、实验说明:MCS-51单片机的算术运算指令比较简单,因此功能也比较差。所有的算术运算必须使用累加器进行。如果数据和运算结果都是8位,则处理要简单得多。如果数据和结果高于8位,则必须做多字节运算的处理。应该使用不同的数据对程序进行检验。在第一个程序中,可分别令X=10、Y=20和X=100、Y=200。在第二个程序中,可分别令X=10、Y=30和X=100、Y=200。编写程序并编译(

6、build)检查语法错误。编译通过后进入调试环境,单步执行程序检查程序的正确性。最后连续执行程序并检查RAM内容是否正确。四、实验程序流程图: (数据累加) N五、思考题: 1如果X、Y均为两字节的变量,应该如何编程? 2BCD运算结果为负数时(如-1),其读数是多少?软件实验四 定点数算术运算实验一、实验内容:1编写4字节加法和减法子程序。加数与被加数由指针R0和R1定位。结果存放于固定的内部RAM地址RESULT。2编写2字节乘2字节子程序。乘数位于R2R3,被乘数位于R4R5。结果存放于R4R5R6R7内。3编写2字节除以2字节子程序。除数位于R2R3,被除数位于R4R5。结果存放于R4

7、R5,余数存放于R6R7内。二、实验目的与要求:1学习与掌握常用基本子程序的编写方法。2学习与掌握多字节算术运算程序的编写方法。3学习与掌握主程序调用子程序的方法。三、实验说明:将常用的基本子程序编写出来,以后直接调用,可以提高编程的效率。商业软件中都提供这些基本子程序库,自己编写可以进一步了解其功能与使用方法。多字节的加减法程序比较容易编写,只是要注意进位问题。多字节乘法可以利用单字节乘法来实现,有关教材中已经有所介绍。多字节除法不能用单字节除法实现,只能用移位相减的方法实现。进行除法前必须进行除0检验。编译通过后进入调试环境,单步执行程序并检查程序的正确性。最后连续执行程序并检查RAM中运

8、算是否正确。应该多使用几组数据进行检验,以确保程序的正确性。四、实验程序流程图: (多字节除法) Y N五、思考题: 1N字节乘以M字节的运算结果应该为几个字节? 2如何编写4字节除以2字节的算术运算程序?软件实验五 逻辑运算实验一、实验内容:1编写程序,计算Z=XY、Z=XY和Z=XY。X、Y、Z为位于内部RAM中30H、31H和32H中的字节变量。2编写程序,计算Z=XYF0。X、Y、Z为位于内部RAM中20H中的位变量。F0为位于PSW中的位变量。3利用移位指令完成Y=X*10的运算,结果为单字节。二、实验目的与要求:1学习与掌握逻辑运算指令的使用方法。2学习与掌握位运算指令的使用方法。

9、3学习利用移位指令进行算术运算的方法。三、实验说明:逻辑运算指令有3种,一般情况下也需要使用累加器进行处理。位操作指令是MCS-51单片机的一个特色。所有的位操作必须使用进位位进行。要特别注意SFR中的位操作有些属于“读-修改-写”的类型。编译通过后进入调试环境,单步执行程序检查程序的正确性。最后连续执行程序并检查RAM内容是否正确。有关位的内容也可以输出到P1口直接观看结果。四、实验程序流程图: (计算X*10)五、思考题: 1有什么简单的办法计算一个多字节数据除以256的结果? 2如果Y=X*16的运算结果为双字节,如何编程?软件实验六 数制转换实验一、实验内容:1编写程序,将内部RAM中

10、30H中的二进制数据转换为十进制数据并存放在31H(百)、32H(十)、33H(个)中。2编写程序,将内部RAM中30H-3FH中的16进制数据(0-F)转换为ASCII码并存放在40H-4FH中。3编写程序,将内部RAM中30H31H中的双字节二进制数据转换为十进制BCD码并存放在40H开始的单元中。二、实验目的与要求:1学习与掌握基本的数制转换程序的编写方法。2学习与掌握ASCII码数据的处理方法。3学习与掌握多字节二进制数据的转换方法。三、实验说明:数据在各种不同数制与编码之间的转换是经常要使用的处理过程。不同数制之间的转换有多种方法,也有一定的技巧,可以参考教材中的程序例子。应该使用不

11、同的数据对程序进行检验。在第一个程序中,可以令所转换的数据为10,99,250。在第二个程序中,应该令数据为0-15。在第三个程序中,可以令所转换的数据为10,255,2000,65535等。程序编译通过后进入调试环境,单步执行程序检查程序的正确性。最后连续执行程序并检查RAM中的转换结果是否正确。四、实验程序流程图:(二进制到十进制数据转换)五、思考题: 1二进制数据转换为十进制数据还有其它方法吗? 2多位十进制ASC码如何转换为数字?软件实验七 数据统计实验一、实验内容:1编写程序,首先将内部RAM中30H-7FH中的数据设置为50-9FH。然后编写程序统计该数据区内大于80H的个数,结果

12、存放在寄存器B中。2编写程序,统计该数据区内的奇数个数和正数个数,并存放在R6、R7中。3编写程序,找出该数据区内作为无符号数据的最大值和最小值。二、实验目的与要求:1学习与掌握数据统计程序的基本技巧与编写方法。2学习与掌握如何区分数据的符号。3学习与掌握如何在数据区内寻找最大值和最小值。三、实验说明:MCS-51单片机没有数据比较指令,比较数据的大小只能用减法指令。单字节数据的比较可以使用CJNE指令。要特别注意对于有符号数和无符号数的处理方法是不一样的。在计算机中一般均采用补码表示数据。汇编语言中判断数据的符号很简单,数据的最高位为1为负数,否则为正数。程序编译通过后进入调试环境,单步执行

13、程序检查程序的正确性。最后连续执行程序并检查RAM中的内容及对应的统计结果是否正确。四、实验程序流程图: (寻找最大值) Y N五、思考题: 1数据为无符号数和有符号时的程序编写有何不同? 2如何统计数据区中某一个数字出现的次数(例如0)?软件实验八 数据排序实验一、实验内容:1编写程序,首先将内部RAM中30H-5FH中的数据设置为随机数值。然后编写程序将该数据区内的数据按从小到大的顺序排序。2编写程序将该数据区内的数据按从大到小的顺序排序。3编写程序将该数据区内的数据按正数和负数分别排序。二、实验目的与要求:1学习与掌握数据排序程序的基本技巧与编写方法。2学习与掌握如何进行复杂数据的处理。

14、三、实验说明:数据排序是经常使用的数据处理过程。数据排序有几种不同的方法,单片机中常用的方法是冒泡排序法。其原理和程序可以参考有关教材和书籍。按正数和负数分别排序时可以先分类,再排序。也可以直接进行插入排序。程序编译通过后进入调试环境,单步执行程序检查程序的正确性。最后连续执行程序并检查排序结果是否正确。四、实验程序流程图: (简化的冒泡排序) Y N N五、思考题: 1对于双字节数据排序,应该如何处理? 2尝试使用其它排序方法编写程序。软件实验九 查表与程序散转实验一、实验内容:1编写程序,用查表的方法计算X的平方(X为单字节数据)。2编写程序,用查表的方法计算X的立方(X为单字节数据)。3

15、编写程序,根据A中的内容(1-5)分别执行不同的程序(程序入口分别为PR1,PR2,PR3,PR4,PR5)。二、实验目的与要求:1学习与掌握查表程序的编写方法。2学习与掌握分支程序的编写方法。三、实验说明:查表程序一般需要使用指针DPTR实现,有关程序可以参考教材中的例子。可以将查表计算程序作为一个子程序编写,然后由主程序进行调用。编写程序时需要注意X平方和立方需要多个字节才能容纳。散转程序的编写需要一定的技巧,具体可以参考教材中的例子。散转也可以用多重分支的方法实现,但这样做的效率要低一些。程序编译通过后进入调试环境,单步执行程序检查程序的正确性。最后连续执行程序检查运算结果是否正确,通过

16、设置断点检查散转结果是否正确。四、实验程序流程图: (计算X的平方)五、思考题: 1尝试编写Y=LgX的程序。 2查表程序还能用来做什么?软件实验十 数字滤波实验一、实验内容:1编写程序,计算Yi+1=aYi+bXi。其中a、b为常数,Xi为一个采样数据队列。可以用30H-3FH中的数据来代替。2编写程序,对30H-7FH中的数据进行5次采样中值滤波。结果存放在30H开始的单元中。二、实验目的与要求:1学习与掌握软件滤波程序的基本技巧与编写方法。2进一步学习与掌握基本数据处理程序的编写方法。三、实验说明:各种数据处理方法均有多种相应的程序,可以参考教材和有关的书籍。用汇编语言编写这类程序虽然比

17、较复杂,但是编得好可以提高程序的效率。程序编译通过后进入调试环境,单步执行程序检查程序的正确性。最后连续执行程序并检查RAM内容是否与事先计算的结果吻合。应该使用几组不同的数据进行检验。四、实验程序流程图: (5次采样中值滤波) N五、思考题: 1尝试编写去极值滤波的程序。 2软件滤波程序的作用是什么?4.2 硬件实验(须使用硬件仿真设置)硬件实验一 P3口输出控制实验一、实验内容:1编写程序,使P3.5端口输出周期为1秒的方波信号。并通过三极管驱动一个直流小喇叭,使其发出断续的鸣响。2 改变程序中的延时时间,使喇叭发出不均匀间隔的鸣响。二、实验目的与要求:1 学习与掌握对单片机单个端口进行控

18、制的方法。2 学习与掌握软件延时程序的编写方法与软件延时时间的计算方法。三、实验说明:本实验所使用的喇叭为直流驱动。当P3.5端口输出高电平时,PNP三极管截止,喇叭不响。当端口输出低电平时,PNP三极管导通,喇叭鸣响。通过改变程序的延时时间,可以控制喇叭的鸣响时间。单片机执行一条指令的周期数可以查指令表得到;一个机器周期等于12个时钟周期。一段程序的执行时间是所有指令执行时间的总和。为了减少程序长度,通常采用多重循环结构实现软件延时。可以参考教材中的例子。编写程序并设置为硬件仿真调试,正确连接实验装置。编译通过后进入调试环境,单步执行程序检查程序的正确性。最后连续执行程序检查延时时间是否正确

19、。四、实验程序流程图:五、思考题: 1采用PNP三极管与NPN三极管作为喇叭驱动电路有何不同? 2延时程序的作用是什么?如何实现可变的延时?硬件实验二 P1口输出控制实验一、实验内容:1 编写程序,使P1各个端口轮流输出低电平。从而驱动连接在该端口上的LED指示灯轮流点亮。2 改变程序中的延时时间,使LED指示灯不均匀的点亮。3 改变LED指示灯的点亮组合与次序,使其产生类似彩灯的艺术效果(例如,先由低到高循环点亮,再按照相反的循序点亮;同时由两侧向中间循环点亮,再按照相反的循序由中间向两边循环点亮;间隔循环点亮等)。二、实验目的与要求:1 学习与掌握对P1端口进行整体控制的方法。2 进一步掌

20、握软件延时程序的编写方法。3 掌握复杂组合输出程序的编写方法。三、实验说明:根据本实验电路的设计,当P1端口输出为低电平时,相应的LED指示灯点亮。通过适当配置输出P1口的数据,可以使不同的LED指示灯点亮,从而达到所希望的效果。LED状态持续时间可由软件延时来控制。对于循环点亮LED指示灯的程序,可以利用循环移位指令来实现。有规则的数据变化,可以利用一定的算法实现。编写程序并设置为硬件仿真调试,正确连接实验装置。编译通过后进入调试环境,单步执行程序检查程序的正确性。最后连续执行程序检查运行效果。四、实验程序流程图:(循环点亮LED指示灯)五、思考题: 1能否将P1口的内容读入再改变其状态输出

21、? 2如何确定软件延时程序的最长延时时间?硬件实验三 定时器应用实验一、实验内容:1 编写程序,利用定时器(方式一)使P3.5端口输出周期为1秒的方波信号。从而驱动连接在该端口三极管上的喇叭,使其发出断续的鸣响。2 编写程序,利用定时器(方式一)使P1各个端口轮流输出低电平。从而驱动连接在该端口上的LED指示灯轮流点亮。3 编写程序,利用定时器(方式二)实现上述功能。二、实验目的与要求:1学习与掌握单片机上定时器的基本使用方法。2进一步掌握单片机定时器的各种工作方式。三、实验说明:MCS-51单片机的定时器是一个基本的计数器单元,有三种工作方式。常用的是方式一和方式二。由于只有16位字长,因此

22、最大计数值为65535。最大定时时间为65535时钟周期12。如果定时时间超过这个最大值,就需要采用对定时时间再进行计数的方法。方式一只能单次定时,方式二能够自动重复定时,但是最大计数值仅为255。程序开始需要进行定时器的初始化,然后通过查询标志等待定时时间到达。定时时间到达后再进行相应的处理。注意处理完成后必须清除定时到达的标志位。编写程序并编译通过后进入调试环境,单步或设置断点执行程序检查程序的正确性。最后连续执行程序检查定时时间是否正确。四、实验程序流程图:(循环点亮LED指示灯) N五、思考题: 1定时器的最长定时时间如何计算?如果不够长怎么办? 2使用软件延时与使用定时器各有何优点和

23、缺点?硬件实验四 LED数码管显示实验一、实验内容:1编写程序,在实验板的LED上轮流显示数字0000-9999。2 编写程序,在实验板的LED上轮流显示0000-FFFF。3 编写程序,在实验板上LED上增量显示000-255(每次加1)。二、实验目的与要求:1学习与掌握在LED数码管上显示数字的方法。2进一步掌握在LED数码管上显示部分字母与符号的方法。三、实验说明:LED数码管可以有几种驱动方法,实验板上的LED数码管是由8锁存器74HC373驱动的。因此具体的显示内容要根据实际的连接确定。为了确定实际连接,可以向锁存器输出只含有1个1的数据(01H、02H、04H、08H、10H、20

24、H、40H、80H),然后观察数码管哪一段点亮。将结果进行综合就可以确定每个数字或字母所对应的字模了。小数点可以先不点亮。实验板上的LED数码管通过译码电路进行连接,因此每个LED数码管都有一个地址(分别为8000H、8100H、8200H、8300H)。在编写程序时使用MOVX指令对其进行写操作,读操作没有意义。编写程序并编译通过后进入调试环境,单步执行程序检查程序的正确性。最后连续执行程序检查是否满足所要求的功能。四、实验程序流程图:(轮流显示0000-9999) 。五、思考题:1共阳极LED与共阴极LED的显示有什么不同?2查找一个数字的字模有几种方法?硬件实验五 计数器应用实验一、实验

25、内容:1编写程序,利用单片机上的定时器/计数器测量外部输入信号的频率。2 对所编写的程序进行修改,提高频率测量的精度。二、实验目的与要求:1进一步掌握单片机上定时器/计数器的使用方法。2学习掌握频率测量的方法及提高测量精度的方法。三、实验说明:实验板上有一个由555电路制作的频率发生器,调整电位器可以改变其输出频率。输出频率经过分频后送入单片机的T0引脚。MCS-51单片机有两个定时器/计数器。利用其中一个作为定时器,另外一个作为计数器,在单位时间内对来自外部的脉冲进行计数,就能够实现频率计的功能。程序开始需要进行定时器和计数器的初始化,然后等待定时时间到达。定时时间到达后再读出计数器的计数值

26、,然后利用实验四的显示程序将计数值显示出来。注意读出计数值后应该将计数值清零,以便重新开始计数。频率的测量有两种基本方法,一种是刚才介绍的计数法,另外一种是周期法,即测量脉冲的周期,再将周期换算为频率。计数法适合高频信号测量,而周期法适合低频信号测量。如果能将两者结合起来,就能提高频率测量的精度。编写程序并编译通过后进入调试环境,单步执行程序检查程序的正确性。最后连续执行程序并用万用表检查测量显示结果是否正确。四、实验程序流程图:(计数法测量频率) N五、思考题:1利用定时器/计数器测量的最高频率是多少?2利用定时器/计数器测量频率的误差如何计算?硬件实验六 定时中断实验一、实验内容:1 编写

27、程序,利用定时器中断使P3.5端口输出周期为1秒的方波信号。从而驱动连接在该端口后面三极管上的喇叭,使其发出断续的鸣响。2 编写程序,利用定时器中断使P1各个端口轮流输出低电平。从而驱动连接在该端口上的LED指示灯轮流点亮。二、实验目的与要求:1学习与掌握中断程序的编写方法。2进一步掌握单片机定时器中断的应用。三、实验说明:具有中断的应用程序分为两个独立的部分:主程序和中断服务程序。每个中断服务程序的入口地址是固的不变的,两个定时器/计数器的中断服务程序入口地址分别位于0BH和1BH。主程序开始需要进行定时器和中断的初始化、设置堆栈并开放中断,然后即可执行其它的操作。如果没有其它操作则就地等待

28、。定时时间到达后CPU会自动进入中断服务程序,中断服务程序的结尾必须是中断返回指令。注意中断返回前必须清除中断申请的标志位,否则在返回主程序后会立即重新进入中断。一般情况下中断服务程序中需要保护和恢复现场,但是如果主程序与中断服务程序之间无冲突(例如主程序原地等待),则可以省略这一步骤。编写程序并编译通过后进入调试环境,单步执行程序检查程序的正确性。最后连续执行程序检查运行结果是否正确。四、实验程序流程图:五、思考题:1 还可以利用定时器中断做什么?2 为什么要设置堆栈?什么情况下可以不保护现场?硬件实验七 外部中断实验一、实验内容:1编写中断应用程序,主程序使P1各个端口轮流输出低电平。当连

29、接在INT0上的按键按下时,进入中断清除显示并延时2秒后返回。2编写中断应用程序,主程序在实验板LED上逐个显示000-255。当连接在INT0上的按键按下时,进入中断并关闭显示、使喇叭鸣响并延时2秒后返回。二、实验目的与要求:1进一步掌握中断程序的编写方法。2进一步掌握外部中断的应用与触发方式。三、实验说明:外部中断有两种触发方式:边沿触发与电平触发。采用不同的触发方式会有不同的效果,需要根据具体要求选择触发方式。本实验的中断服务程序中需要保护和恢复现场,因此必须设置堆栈并在中断服务程序中编写入栈与出栈的程序。如果编写错误,用正常的调试手段(单步、断点)一般无法检查出来。编写程序并编译通过后进入调试环境,单步执行程序检查程序的正确性。最后连续执行程序检查结果是否正确。四、实验程序流程图: (P1口输出显示)五、思考题:1 如何设置堆栈空间的大小?2 如果既有定时器中断,又有外部中断,应该如何编写程序?硬件实验八 D/A输出实验一、实验内容:1编写程序,通过实验板上的DAC0832输出一个频率为10 Hz的锯齿波。2编写程序,通过实验板上的DAC0832输出一个频率为10 Hz的正弦波。3编写程序,通过连接在INT0端口上的按键,使实验板上的DAC0832输出不同的电压。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1