单片机导论实验讲义_第1页
单片机导论实验讲义_第2页
单片机导论实验讲义_第3页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章单片机软件实验实验一内存操作1. 实验目的 掌握数据传送指令; 掌握各种数据传送指令的寻址方式; 熟练运用keil环境对汇编程序进行调试; 掌握数据传送、复制等程序的设计与调试方法。2. 预习要求 理解数据传送指令和循环指令的使用; 理解如何对内部寄存器、内部RAM、外部RAM的读写; 理解各种寻址方式,尤其是较为抽象的变址寻址及相对寻址的方式; 认真预习本实验内容,自行编写程序,填写实验报告。3. 实验设备计算机1台;4. 基础型实验内容 下列程序的功能是给外部RAM800080FFH的256个单元的内容赋值,赋值的内容取决于程序中 A的赋值。在Keil环境运行该程序,并观察寄存器及内

2、存单元的 变化。;起始地址;设置256字节计数值ORG 0000HSTART EQU 8000HMAIN: MOV DPTR,#START MOV R0,#0ffh;MOV A, #1HLoop: MOVX DPTR, AINC DPTR;指向下一个地址DJNZ RO, loop;计数值减 1SJMP $ END下列程序将3000H起始的256个字节存储块移动到4000H起始的256个字节存储块,在 Keil环境运行如下程序,观察寄存器及存储单元的变化。ORG 0000HMOV DPTR,#3000HMOV A,#01HMOV R5,#OLOOP: MOVX DPTR,AINC DPTRDJN

3、Z R5,LOOPMOVR0,#30HMOVR1,#00HMOVR2,#40HMOVR3,#00HMOVR7,#0LOOP1 MOV DPH,R0MOV DPL ,R1MOVX A ,DPTRMOV DPH, R2MOV DPL,R3MOVX DPTR ,AINC R1INC R3DJNZ R7 , L00P1SJMP $END5. 设计型实验内容 在keil环境修改内部 RAM 30H3FH的内容分别为#OOH-#OFH,设计程序实现将内 部RAM30H-3FH到40H-4FH的数据块拷贝。 在keil环境修改内部 RAM 30H3FH的内容分别为#OOH-#OFH,设计程序实现将片 内30

4、H3FH单元的内容复制到片外 1030H103FH中。 在keil环境修改内部 RAM 30H3FH的内容分别为#OOH-#OFH,设计程序实现将内部RAM30H3FH内容逆序拷贝到外部数据 XRAM 0000H000FH中。使用单步、 断点方式调试程序,查看特殊功能寄存器、内部数据RAM外部数据空间的变化。实验二数制及代码转换1. 实验目的 了解微机系统中的数制与代码表示方法; 掌握计算机中使用的各种代码转换方法; 掌握实现分支、循环的指令及其程序的编写方法;2. 预习要求 理解十进制数、十六进制数的数制表示方法; 理解BCD码、ASCII码编码方式; 如何实现十六进制数与 BCD码之间的转

5、换; 如何实现ASCII码与BCD码之间的转换。3. 实验设备计算机1台。4. 基础型实验内容 以下程序完成单字节的ASCII码到十六进制数转换,完成空白处程序填写,并在Keil环境运行程序,观察寄存器及内存单元的变化。RESULT EQU 30HORG 0000HMOV A,#41H; “A” 的 ASCII 码CLR CSUBB A, -转换为十六进制值 AMOV RESULT, ALJMP $END 以下程序完成单字节的 BCD码到十六进制数转换,在Keil环境运行程序,观察寄 存器及内存单元的变化。RESULT EQU 30HORG 0000HMOV A,#23HMOV R0,AANL

6、 A,#0F0HSWAP AMOV B ,#0AHMUL ABMOV RESULT ,A;转换高位MOV A, ROMOV B,#0FHADD A,RESULTMOV RESULT,A ;转换低位SJMP $END 以下程序将单字节十六进制数A的值转换为十进制数,存放在30H32H中,完成空白处程序填写,并在 Keil环境运行程序,观察寄存器及内存单元的变化。RESULT EQU 30HORG 0000HMOV A, #7BHMOV B, #DIV ABMOV RESULT , A;除以100得百位数MOV A, BMOV B, #MOV RESULT+1, A;除以10得十位数MOV RES

7、ULT+2, B;余数为个位数SJMP $END5. 设计型实验内容 设一串字母的ASCII存于30H起始的单元中,设计程序判断字母是否为大写字母, 是则将大写字母的 ASCII字符转换成小写字母的 ASCII字符,为小写则不转换。 将单字节十六进制数 D8H转换为十进制数,存放在 30H33H中。, 设计程序,将十六进制数614EH转换成ASCII码,使用单步、断点方式调试程序, 查看结果。实验三算术运算1. 实验目的 掌握算术运算类、逻辑运算类指令的使用方法; 掌握BCD码、补码数制表示方法; 掌握运算程序及循环程序的编写和调试方法。2. 预习要求 理解8051单片机的算术运算指令; 理解

8、补码表示数值的方法; 理解压缩、非压缩 BCD码表示数值的方法; 如何实现多位数的 BCD码加、乘、除运算; 如何实现多位数的 BCD码减法运算; 预习本实验内容,以及相关课程内容。3. 实验设备计算机1台。4. 基础型实验内容 以下程序完成单字节的 BCD码加法功能,完成空白处程序填写,并在Keil环境运行程序,观察寄存器及内存单元的变化。RESULT EQU 30HORG 0000HMOV A,#99HMOV B,#99HADD ; BCD码相加并得到BCD码结果MOV RESULT , AMOV A,#00HA,#00HMOV RESULT+1, A;高位处理LJMP $END 下列程序

9、完成多字节 BCD码加法运算。内部 RAM30H开始的4字节长的BCD码 和外部RAM 1000H开始的4字节长的BCD码相加,结果放在 1100H开始的单元 中(从低字节到高字节)。ORG0000HCLRCMOVR5, #04HMOVR0,#30HMOVR1,#10HMOVR2,#00HMOVR3,#11HMOVR4,#00HL1:MOVDPH,R1MOVDPL,R2MOVX A,DPTRADDC A, R0DA A;十进制调整MOV DPH,R3MOV DPL,R4MOVX DPTR,AINC R2INC R4INC ROL2:DJNZ R5, L1JNC L3MOVDPTR,#1104H

10、 ;有进位则结果的第五个字节置1MOV A,#01HMOVX DPTR,AL3:NOPEND5. 设计型实验内容 设计程序,实现任意字节压缩BCD码的相加,使用单步、断点方式调试程序,查看结果。 设计程序,实现多字节十六进制数的减法123456H 005634H,使用单步、断点方式调试程序,查看结果。 在内部RAM的30H单元开始,有一串带符号数据块,其长度在10H单元中。编程求其中正数与负数的和,并分别存入2CH与2EH开始的2个单元中。(负数存放形式为补码)。请分别在30H单元开始写入5个正数、11个负数和9个正数、7 个负数的情况,记录程序运行结果。例如:输入-69H,65H,-7H,-

11、25H,-47H,56H, -3H,17H,6H,-5H,-45H,-1H, -57H,23H ,-5H,-13H则正数的和89,负数的和-199H。实验四比较和查表1. 实验目的 掌握比较指令的使用及循环程序的编写方法; 掌握字符查找的思路和算法; 理解并能运用查表和散转指令。2. 预习要求 理解掌握比较程序的设计思路; 理解多分支结构程序的编程方法; 预习本节实验内容,编写程序及实验预习报告。3. 实验设备 计算机1台。4. 基础型实验内容 以下子程序完成一个两位十六进制数到ASCII码的转换,数值存放在R2中,转换结果地位存于 R2,高位存于R3。用PC做基址实现。ORG 0000HHE

12、XA:MOV R2,#1BHMOV A,R2ANL A,#0FHADD A,#09HMOVC A,A+PCXCH A,R2ANL A,#0F0HSWAP AADD A,#02HMOVC A,A+PCMOV R3,ARETTAB:DB '0','1','2',3,'4'DB '5','6','7',8,9DB 'A','B',C,'D','E','F'END5. 设计型实验内容 分别用近程查表指令和远程查表

13、指令,查找R3内容的平方值。R3内容小于等于0FH,即平方值为单字节数据。 在外部RAM 1000H开始处有10H个带符号数,请找出其中的最大值和最小值,分别存入内部 RAM的MAX、MIN单元。 分别用近程查表指令和远程查表指令,查找R3内容的平方值。平方值为两个字节数据。第二章单片机硬件实验硬件实验需要连接计算机与 80C51的仿真器,在实验前要理解相关的硬件 电路,按实验指导书中的硬件连接方法正确连线,才能保证实验的正常进行,得到正确结果。硬件实验时要注意以下几点:1、 根据实验指导书正确进行模块与模块之间接口的连接;注意一定要在实验系 统上电前进行接口的连接,千万不能带电操作。2、用串

14、行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中, 请注意仿真器的方向:缺口朝上。(断电时进行)3、进行KEIL软件的设置(KEIL软件使用见附录一),编辑汇编源程序,编译, 直至编译无误。4、打开80C51模块电源和总电源,可以单步或跟踪或全速方式运行程序,同时 观察运行结果(注意:要停止调试,按THKL- C51仿真器上的Reset按键)。5、 也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到 89S52/89S51芯片中运行(注意:芯片缺口朝上;不建议使用)。(ISP烧录器 的使用查看附录二)注:1、在做完实验时记得养成一个好习惯:把相应单元的短路帽和电源开关

15、还原到 原来的位置!以下将不再重述。2、不要插拔实验系统上的模块和芯片,不要打开与本实验不相关模块的电源。不能带电进行模块之间导线的连接! !实验一I/O控制实验1. 实验目的 掌握基本10输入输出操作指令; 熟练运用keil环境对硬件接口进行调试。2. 预习要求 理解51单片机10的输入、输出控制方式;理解PO、P1、P2、P3 口做为普通的10口有何区别。 理解实现软件延时程序设计的延时时间估算; 认真预习本节实验内容,设计出器件之间的实验连接线,自行编写程序,填写实验报告。3. 实验设备计算机ZDGDTH-1型80C51实验开发系统2号导线8P数据线4.基础型实验内容8位逻辑电平显示的接

16、口电路设计如图1台;1套;4条;1条。1-1所示,用P1 口做输出口,接八位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。用8P数据线将 D2区80C51/C8051F020MCU模块的JD1 ( P1 口)与 A5区8位逻辑电平显示模块JD1A5相连。在Keil环境运行该程序,观察发光二极管显示情况。VCC ir LIBVCC74LS 373LCL1P32BL2P33B13P34BL4P35BL5P36BL6P37BL7P3BB,3.70.1图1-18位八位逻辑电平显示接口电路P1 口循环点灯程序框图ORG0LOOP: MOVA, #0FEHMOVR2,#8OUTPUT: MOVP

17、1,ARLAACALL DELAYDJNZR2,OUTPUTLJMPLOOPDELAY: MOVR6,#0;延时程序MOVR7,#0DELAYLOOP: DJNZR6,DELAYLOOPDJNZR7,DELAYLOOPRETEND 8位拨动开关的接口电路设计如图1-2所示,假设采用P1 口控制LED显示,P2 口接收拨码开关的输入值,用8P数据线将D2区80C51/C8051F020MCU莫块的JD1 ( P1 口)、JD1( P2 口)分别与A5区八位逻辑电平显示模块JD1A5 C6区8位拨动开关模块JD1 C6相连。在Keil环境运行该程序,使用单步、断点、连续运行调试程序, 查看结果。K

18、0S4E2 K1S5ES7ESIDEVCCJD1C6KOkTK2K3K£K5K«K7图1-2拨码开关接口电路ORG OOOOHLL:MOVP2,#0FFHNOPA, P2MOVNOPMOVP1,ALJMP LLEND如图1-3所示,假设采用 P1.0 口控制外部LED,拨动开关控制外部中断,用二号导线将 D2区80C51/C8051F020MCU 模块的 P1.0、P3.2 口分别与 A 5区八位逻辑 电平显示模块的L0、C8区单次脉冲输出相连。 并在Keil环境运行程序,观察实验 现象。RJvcc ILEDOVGEtESET100C1F410 uF4KEYvcc2P 0 Pl P13F1Pl.4 Pl J Pl 6Pl.1RSIFl 0>IRXD P3JJTXD P2 j TO P3 3?rMTl P3.4i»raF3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论