单片机lab1

上传人:夏** 文档编号:547926416 上传时间:2023-08-25 格式:DOC 页数:25 大小:1.48MB
返回 下载 相关 举报
单片机lab1_第1页
第1页 / 共25页
单片机lab1_第2页
第2页 / 共25页
单片机lab1_第3页
第3页 / 共25页
单片机lab1_第4页
第4页 / 共25页
单片机lab1_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《单片机lab1》由会员分享,可在线阅读,更多相关《单片机lab1(25页珍藏版)》请在金锄头文库上搜索。

1、实验报告 一汇编指令及IDE姓名:学号:学院:班级:实验目的熟悉51 单片机的指令系统及一种开发软件IDE,如Wave 或Keil,掌握IDE 使用方法,掌握项目创建、软件仿真等调试方法。实验环境PC 机 1 台,伟福6000:软件模拟器(8031)内容与步骤1、初步认识IDE 软件Wave6000的软件界面及使用;2、了解asm、lst、hex 等文件;3、简单程序编写、调试(1) 传送指令内部RAM之间以及内部RAM和寄存器之间的数据传送。基本格式:MOV 目的操作数,源操作数内部数据传输指令MOVA,#30HMOVR0,#30HMOV20H,#87HMOV30H,#65HMOVA,#20

2、HMOVA,20HMOVA,R0MOVA,R0;以Rn为目的地操作数的指令 MOVA,#30HMOV30H,#40HMOV R2,AMOVR2,30HMOVR2,#50H;以直接地址为目的地址的操作数指令MOVA,#30HMOVR2,#40HMOVR0,#70HMOV70H,#78HMOV78H,#50HMOVP1,AMOV70H,R2MOV20H,78HMOV40H,R0MOV01H,#80H;以寄存器间接寻址的单元为目的操作数的指令MOVA,#50HMOV40H,#32HMOVR0,#20HMOVR0,AMOVR0,40HMOVR0,#33H;(2) 数据交互指令有XCH,XCHD,SWA

3、P三种交换指令,分别实现不同要求的字节交换。字节交换指令MOVA,#56HMOVR7,#78HXCHA,R7半字节交换指令MOVA,#26HMOVR0,#40HMOV40H,#45HXCHDA,R0累加器A中高4位和低4位交换MOVA,#63HSWAPA(3) 堆栈操作指令PUSH,POP两条指令。分别用于数据的进出,随着指针SP的移动,实现不同地址数据的传输。进栈指令MOVSP,#50HMOVA,#20HMOVB,#60HPUSHACCPUSHB出栈指令MOVSP,#62HMOV62H,#80HMOV61H,#40HPOPDPHPOPDPL(4) 算术运算指令(加、减、乘、除)通常用累加器A

4、作为第一操作数,运算结果存入A中,第二操作数寻址方式可以是立即寻址、寄存器寻址、寄存器间接寻址、直接寻址。通过算数结果影响PSW的不同标志位来观察结果。1加法指令(1)不带进位的加法指令MOVA,#85HMOV30H,#0FFHADDCA,30H(2)带进位加法的指令MOVA,#0A8HADDA,#0B5H;两个低8位数相加MOV30H,A;结果存入30H单元MOVA,#35HADDCA,#0EH;两个高8位数相加,并加上低8位的进位CYMOV31H,A;结果存入31H单元(3)增量指令(加1指令)MOVA,#0CHMOVR2,#0FFHMOV60H,#0F0HMOVR1,#40HMOV40H

5、,#09HINCAINCR2INC60HINCR1(4)十进制调整指令MOVA,30HADDA,40H;A=30H+40HDAA;对A十进制调整MOV50H,A;50H=AMOVA,31HADDCA,41H;A=31H+41H+CYDAA;对A十进制调整MOV51H,A;51H=A2.减法指令(1)带借位减法指令MOVA,#0C9HMOVR2,#54HSUBBA,R2CLRCMOVA,#0A8HSUBBA,#0B5HMOV30H,AMOVA,#35HSUBBA,#0EHMOV31H,A(2)减1指令MOVA,#0EHMOVR7,10HMOV40H,#00HMOVR1,#30HMOV30H,0F

6、FHDECADECR7DEC40HDECR13.乘法指令MOVA,#25HMOVB,#3FHMULAB4.除法指令MOVA,#0FBHMOVB,#12HDIVAB5空操作指令NOP(5) 逻辑操作指令按位运算,共有与、或、异或三类运算,每类运算根据目的操作数和源操作数的寻址方式不同又分别有6类指令。部分运算结果影响PSW标志位。1.两个操作数的逻辑操作指令(1)逻辑与MOVA,#0A7HMOVR0,#0FHANLA,R0(2)逻辑或MOVA,#0A7HMOVR0,#0FHORLA,R0(3)逻辑异或MOVA,#0A7HMOVR0,#0FHXRLA,R0(6) 清零和求反指令(1)累加器A清0M

7、OVA,#0AAHCLRA(2)累加器A的内容取反MOVA,#0AAHCPLA(7) 循环移位指令MOVA,#7EHRLA;循环左移RRA;循环右移RLCA;带进位循环左移RRCA;带进位循环右移(8) 控制转移指令通过改变程序计数器PC的内容,从而改变程序执行的方向,有AJMP,SJMP,LJMP,JMP,JZ,JNZ,JC,JNC,JB,JNB,JBC,CJNE,DJNZ这些指令。1.无条件转移指令短跳转指令AJMP0100H长跳转指令LJMP0123H相对转移指令SJMP21H间接转移指令 MOV A,1000H MOV DPTR,#20HJMPA+DPTR2.条件转移指令累加器A判0转

8、移指令MOVR0,#11HMOVA,R0JZ0025HMOVR7,#0FFHSJMP0050HORG0025HMOVR7,#00HORG0050HSJMP$判进位标志位CY转移指令MOV20H,#12HMOV30H,#11HMOVA,20HCLRCSUBBA,30HJC0025HMOVP1,#0FFHSJMP0050HORG0025HMOVP1,#0FDHORG0050HSJMP$比较转移指令MOVA,#99HCJNEA,#70H,0050HMOVA,#10H;(A)=70HORG0050HJC0090HMOVA,#80HORG0090HMOVA,#60H减1非零转移指令DELAY:MOVR2

9、,#250DEL1:DJNZR2,DEL1(9) 子程序调用及返回短调用指令MOVSP,#60HLJMP500HORG500HSTRT:ACALL0123HLJMP0123HORG0123HXYM:MOVA,#10H长调用指令MOVSP,#53HLJMP2000HORG2000HSTRT:LCALLKKLJMP3000HORG3000HKK:MOVA,#10H子程序返回指令MOVSP,#62HMOV62H,#20HMOV61H,#06HRET4、掌握Watch、Memory 等观察调试方法。过程分析1.错误:* ERROR: COMMAND-FILE NOT FOUND原因:源程序文件的命名采

10、用了中文名和空格解决方法:在命名文件名时只能采用英文和阿拉伯数字,否则会出现编译问题。2.错误:MOV CY,#1原因:CY是进位标识符,不可以用代码赋值。解决方法:如需更改值,可以在调试时在psw中手动更改CY的值。3.错误:error A51: TARGET OUT OF RANGE原因:跳转目标地址超出范围。AJMP是短跳转指令,跳转范围是PC当前值的一个2K页面内。解决方法:要分清楚AJMP、SJMP、LJMP的格子跳转范围,其中SJMP范围最小,AJMP其次,LJMP最大,为64K。ORG伪指令规定程序或者数据块存放的其实位置,可以配合跳转指令使用。结果总结上机操作是一个很好的理论实

11、践过程,只有自己动手实验过了才会发现单片机中的奥妙,也会发现自己学习过程中的不足,更能巩固书上学习到的知识点。本次实验最大的收获是发现了自己平时在学习时没有发现的许多问题。1、为什么程序需要一个死循环?循环体有大有小,但一定有一个。因为程序容量有限,而执行时间无限。如果不循环,单片机程序执行完后第一遍后就会执行一条不确定的命令。也就是说,执行了这条不确定的命令后,单片机状态是无法确定,那么整个系统就会失去控制,会产生严重的后果。2、比较“跟踪”、“单步”和“断点”调试方式的特点。跟踪:跟踪程序执行的每一步直至程序最后,观察程序运行状态单步:一步一步的执行程序,每执行一步就会停下等待下一步。与跟踪不同的是单步不执行到程序的内部。断点:断点调试是程序运行到你所设置的断点时才会停止,然后等着你的下一步操作改进意见:程序中应合理使用跳转指令和伪码。程序截图:1.传送指令2.数据交互指令3.栈操作指令4.算术运算指令(加、减、乘、除)(1)加法(2)减法(3)乘法(4)除法5.逻辑操作指令(1)逻辑与(2)逻辑或(3)逻辑异或6.清零和求反指令(1)清零指令(2)求反指令7.循环移位指令8.控制转移指令(1)无条件转移指令(2)条件转移指令(3)判进位标志位CY转移指令(4)比较转移指令(5)减1非零转移指令9.子程序调用及返回附录教师评阅:成绩:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 演讲稿/致辞

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号