单片机原理及应用实验.docx

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

一、数据传送

实验目的:

掌握8051单片机内部数据存贮器、外部数据存贮器的数据传送特点和应用

掌握MOV,MOVX和MOVC类指令的用法及区别

实验内容:

将内部数据存贮器20H为首地址的十六个字节传送到30H为首地址的数据区,即:

20H~2FH送30H~3FH

将外部数据存储器2000H~200FH单元的十六个数据传送到内部数据存储器的30H~

3FH

将外部数据存贮器中首地址为1000H的连续存放的八个数与首地址为1010H的间隔存放的八个数进行交换

1000 1001 1002 1003 1004 1005 1006 1007

1010 1012 1014 1016 1018 101A 101C 101E

建立一个数字0~9的ASCⅡ码表,表格房子程序存储器区首地址为1000H的十个单元内,编程根据R0中的内容来查表,所得结果存放在寄存器B中,注意R0中得内容不在0~9范围时的处理。

二、加减法运算

实验目的:

正确使用单片机的加减运算指令

掌握不同指令对于程序状态字的影响及程序状态字的意义、用处

掌握ADD,ADDC,SUBB和DA A等指令的用法

学习模块化程序设计方法

实验内容:

编写3字节二进制加法子程序,并用主程序调用不同的加数和被加数来检测该子程序的正确性。需考虑有进位和无进位情况。

程序入口为:加数:22H,21H,20H三字节,22H为最高位被加数:32H,31H,30H三字节,32H为最高位

程序出口为:23H,22H,21H,20H四字节,23H为最高位

例如:地址:23

22

21

20

32

31

30

执行前数据:

01

23

45

FF

01

01

执行后数据:01

00

24

46

编写10位十进制加法子程序(十进制数采用压缩BCD码存放)入口:加数:24H-20H,低地址放低字节

被加数:29H-25H,低地址放低字节出口:和:4005H-4000H,低地址放低自己

要求调用多组数据调试,注意观察PSW的变化,理解DA A指令的含义。例如:

执行前地址:24

23

22

21

20

29

28

27

26

25

数据:12

34

56

78

90

88

99

33

12

74

执行后地址:4005

4004

4003

4002

4001

4000

数据:01

01

33

89

91

64

三、乘除法运算

实验目的:

掌握MUL和DIV指令的用法

掌握无符合整数的乘、除法设计思路

实验内容:

(1)无符号二进制双字节乘法

入口:R1(高位)R0(低位)内放被乘数

R3(高位)R2(地位)内放乘数

出口:33H~30H内放乘积,33H为最高位设置多组数据来验证程序的正确性,例如:

执行前地址:R1

R0

R3

R2

数据:FE

00

FE

00

执行后地址:33

32

31

30

数据:FC

04

00

00

四、代码转换

实验目的:

掌握代码转换的方法

进一步熟悉51单片机指令系统

实验内容:

(1)将内部RAM30H~37H单元的16个拼装4位二进制数0~F,转换成ASCⅡ码,并存入内部数据RAM以40H为首地址的区域中。

转换前:地址:30

31

32

33

34

35

36

37

数据:01

23

45

67

89

AB

CD

EF

转换后:

地址: 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E EF

ASCⅡ码:3031 32 33 34 35 36 37 38 39 41 42 43 44 45 46

五、逻辑运算和位操作

实验目的:

掌握位操作指令

掌握字节逻辑运算和位逻辑运算的区别

实验内容:

(1)有布尔表达式为Y=A(B+/C)+D(E+/F)

设A为累加器ACC,B为寄存器B,C为R0,D为R1,E为R2,F为R3,Y为R7。编程实现并调试。

设A为P1.0,B为P1.4,C为TF1,D、E、F分别为20H.0,20H.3,和20H.5,Y为P1.5。编程

实现并调试。

六、数据排序

实验目的:进一步熟悉单片机指令

实验内容:

设计并调试一个通用子程序,其功能为:将以R0的内容作为起始地址的内容RAM的10

个单字节无符号二进制整数按从小到大的次序重新排列,结果依次送至20H-29H单元。

七、查表

实验目的:掌握查表指令的应用

实验内容:

设计并调试一个查表子程序,其功能为应用查表指令:MOVCA,@A+DPTR,求累加器A中数据所对应的温度值,送R2R3(温度值为两个字节的压缩BCD码xx.xx),子程序入口时(A

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档