




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机实验报告实验一数据传送(RAM>XRAM)一、实验目的熟悉星研集成环境软件或熟悉Keil C51集成环境软件的使用方法。熟悉MCS51汇编指令,能自己编写简单的程序,掌握数据传输的方法。二、实验内容1、熟悉星研集成环境软件或熟悉Keil C51集成环境软件的安装和使用方法。2、编写程序,实现内外部数据段的传送、校验。三、程序框图四、实验步骤在内部RAM 30H 3FH中输入数据;使用单步、断点方式调试程序,检测外部数据RAM的1000H 100FH中的内容。熟悉查看特殊功能寄存器、内部数据RAM、外部数据空间的各种方法。五、程序清单;将内部RAM Address1 开始的16个字节
2、送到外部RAM从Address2开始的单元里,再作比较。Address1DATA30HAddress2XDATA1000HORG0000HLJMPSTARORG0100HSTAR:MOVSP,#60HMOVR0,#Address1MOVDPTR,#Address2MOVR7,#10HSTAR1:MOVA,R0;传送MOVXDPTR,AINCR0INCDPTRDJNZR7,STAR1MOVR0,#Address1MOVDPTR,#Address2MOVR7,#10HSTAR2:MOVB,R0;比较MOVXA,DPTRCJNEA,B,STAR3INCR0INCDPTRDJNZR7,STAR2SJM
3、P$;传送正确STAR3:SJMP$;传送错误END实验二 双字节BCD码(十进制数)加法一、实验目的熟悉51汇编指令,学会使用星研集成环境软件,能自己编写简单的程序,熟悉BCD码,了解如何调用系统提供的子程序。二、实验内容从键盘上输入4位被加数、加数,实现双字节BCD码(四位数)的加法,结果显示在数码管上;熟悉使用断点、单步进入、单步、运行到光标处、修改PC指针、全速运行等各种调试手段;熟悉查看特殊功能寄存器、内部数据RAM、外部数据空间的各种方法。三、实验框图四、实验步骤1、连线说明:D3区 :CLKB2区:2MD3区 :CSA3区:CS5D3区 :A0A3区:A02、在F4区的键盘上输入
4、4位被加数、加数3、结果显示在F4区的数码管上五、程序清单EXTRNCODE(Display8, GetBCDKey)BufferDATA30H;8字节显示缓冲区F1BIT0D1H;PSW.1ORG0000HLJMPSTARTORG0100HSTART:MOVSP,#60HCLRF1;先清除显示,再接收键输入START1:MOVR0,#bufferMOVA,#4;按键次数LCALLGetBCDKey;得到双字节十进制数(被加数)SETBF1;接收到第一个键,才清除显示MOVR0,#buffer+4MOVA,#4;按键次数LCALLGetBCDKey;得到双字节十进制数(加数)MOVA,buff
5、er+1ADDA,buffer+5DAAMOVbuffer+5,AMOVA,bufferADDCA,buffer+4DAAMOVbuffer+4,ACLRARLCADisplay:PUSHACC;显示结果MOVR0,#bufferMOVA,buffer+5;低位ACALLB1toB2;压缩BCD码转换成非压缩BCD码MOVA,buffer+4;高位ACALLB1toB2POPACC;进位ACALLB1toB2MOVR0,#10H;最高二位消隐INCR0MOVR0,#10HMOVR0,#buffer+5MOVR7,#5ACALLBlackDisplay;将高位0消隐MOVR0,#bufferLC
6、ALLDisplay8SJMPSTART1;将一个字节压缩BCD码转换成二个字节非压缩BCD码B1toB2:PUSHACCANLA,#0FHMOVR0,AINCR0POPACCANLA,#0F0HSWAPAMOVR0,AINCR0RETBlackDisplay:MOVA,R0;将高位0消隐JNZExitMOVA,#10HMOVR0,ADECR0DJNZR7,BlackDisplayExit:RETEND实验三 双字节BCD码(十进制数)减法一、实验目的熟悉51汇编指令,学会使用星研集成环境软件,掌握汇编语言的设计和调试方法。能看懂程序流程框图,能自己设计程序,熟悉BCD码、补码,了解如何调用系
7、统提供的子程序。二、实验内容从键盘上输入4位被减数、减数,实现双字节BCD码(四位数)的减法,结果显示在数码管上;进一步熟悉使用断点、单步进入、单步、运行到光标处、修改PC指针、全速运行等各种调试手段;熟悉查看特殊功能寄存器、内部数据RAM、外部数据空间的各种方法。三、程序框图四、实验步骤1、连线说明:D3区 :CLKB2区:2MD3区 :CSA3区:CS5D3区 :A0A3区:A02、在F4区的键盘上输入4位被减数、减数3、结果显示在F4区的数码管上五、程序清单EXTRNCODE(Display8, GetBCDKey)BufferDATA30H;8字节显示缓冲区F1BIT0D1H;PSW.
8、1ORG0000HLJMPSTARTORG0100HSTART:MOVSP,#60HCLRF1;先清除显示,再接收键输入START1:MOVR0,#bufferMOVA,#4;按键次数LCALLGetBCDKey;得到双字节十进制数(被减数)SETBF1;接收到第一个键,才清除显示MOVR0,#buffer+4MOVA,#4;按键次数LCALLGetBCDKey;得到双字节十进制数(减数)MOVA,#9AHCLRCSUBBA,buffer+5MOVbuffer+5,AMOVA,#99HCLRCSUBBA,buffer+4MOVbuffer+4,A;减数取补MOVA,buffer+1ADDA,b
9、uffer+5DAAMOVbuffer+5,AMOVA,bufferADDCA,buffer+4DAAMOVbuffer+4,AMOVF0,C;借位标志JCDisplayMOVA,#9AHSUBBA,buffer+5MOVbuffer+5,AMOVA,#99HSUBBA,buffer+4XCHA,buffer+5ADDA,#00HDAAXCHA,buffer+5ADDCA,#00HDAAMOVbuffer+4,ADisplay:MOVR0,#buffer;显示结果MOVA,buffer+5;低位ACALLB1toB2;压缩BCD码转换成非压缩BCD码MOVA,buffer+4;高位ACALLB
10、1toB2MOVR0,#10H;最高四位消隐INCR0MOVR0,#10HINCR0MOVR0,#10HINCR0MOVR0,#10HMOVR0,#buffer+3MOVR7,#3ACALLBlackDisplay;将高位0消隐MOVR0,#bufferLCALLDisplay8SJMPSTART1BlackDisplay:MOVA,R0;将高位0消隐JNZExitMOVA,#10HMOVR0,ADECR0DJNZR7,BlackDisplayExit:JBF0,Exit1INCR0MOVR0,#11H;负数标志Exit1:RETB1toB2:PUSHACCANLA,#0FHMOVR0,AIN
11、CR0POPACCANLA,#0F0HSWAPAMOVR0,AINCR0RETBlackDisplay:MOVA,R0JNZExitMOVA,#10HMOVR0,ADECR0DJNZR7,BlackDisplayExit:RETEND实验四四字节十六进制数转十进制数一、实验目的进一步熟悉51汇编指令,了解十六进制数转十进制数的方法。二、实验内容从键盘上输入8位十六进制数,实现四字节十六进制数转8位十进制数,并在数码管上显示。注意输入数据必须在00000000H05F00000H范围,否则,结果超出8位十进制数,无法正确显示。三、程序框图四、实验步骤1、连线说明:D3区 :CLKB2区:2MD3
12、区 :CSA3区:CS5D3区 :A0A3区:A02、在F4区的键盘上输入8位十六进制数3、结果显示在F4区的数码管上五、程序清单EXTRNCODE(Display8, GetKey)BufferDATA30H;8字节显示缓冲区F1BIT0D1H;PSW.1ORG0000HLJMPSTARTORG0100HSTART:MOVSP,#60HCLRF1;先清除显示,再接收键输入START1:MOVR0,#bufferMOVA,#8;按键次数LCALLGetKey;得到4字节十六进制数SETBF1;接收到第一个键后,才清除显示MOVR0,bufferMOVR1,buffer+1MOVR2,buffe
13、r+2MOVR3,buffer+3ACALLB4toD4;转换成十进制数Display:MOVR0,#buffer;显示结果MOVA,R7;低位ACALLB1toB2;压缩BCD码转换成非压缩BCD码MOVA,R6ACALLB1toB2MOVA, R5ACALLB1toB2MOVA,R4;高位ACALLB1toB2MOVR0,#buffer+7MOVR7,#7ACALLBlackDisplay;将高位0消隐MOVR0,#bufferLCALLDisplay8SJMPSTART1;四字节十六进制数转十进制数:R0R1R2R3为十六进制,R4R5R6R7为压缩BCD码B4toD4:CLRAMOVR
14、4,AMOVR5,AMOVR6,AMOVR7,AMOVB,#32LOOP:CLRCMOVA,R3RLCAMOVR3,AMOVA,R2RLCAMOVR2,AMOVA,R1RLCAMOVR1,AMOVA,R0RLCAMOVR0,AMOVA,R7ADDCA,R7DAAMOVR7,AMOVA,R6ADDCA,R6DAAMOVR6,AMOVA,R5ADDCA,R5DAAMOVR5,AMOVA,R4ADDCA,R4DAAMOVR4,ADJNZB,LOOPRETB1toB2:PUSHACCANLA,#0FHMOVR0,AINCR0POPACCANLA,#0F0HSWAPAMOVR0,AINCR0RETBla
15、ckDisplay:MOVA,R0;将高位0消隐JNZExitMOVA,#10HMOVR0,ADECR0DJNZR7,BlackDisplayExit:RETEND实验五双字节BCD码(十进制数)乘法一、实验目的进一步熟悉51汇编指令,掌握汇编语言的设计和调试方法。根据程序流程图,自己设计程序,了解如何调用系统提供的子程序。二、实验内容从键盘上输入4位被乘数、乘数,实现四位十进制数的乘法,结果显示在数码管上。三、程序框图四、实验步骤1、连线说明:D3区 :CLKB2区:2MD3区 :CSA3区:CS5D3区 :A0A3区:A02、在F4区的键盘上输入4位被乘数、乘数3、结果显示在F4区的数码管
16、上五、程序清单EXTRNCODE(Display8, GetBCDKey)BufferDATA30H;8字节显示缓冲区F1BIT0D1H;PSW.1ORG0000HLJMPSTARTORG0100HSTART:MOVSP,#60HCLRF1;先清除显示,再接收键输入START1:MOVR0,#bufferMOVA,#4;按键次数LCALLGetBCDKey;得到双字节十进制数(被乘数)MOVR0,#bufferACALLD4toB2;转换成二进制数PUSH02HPUSH03HSETBF1;接收到第一个键,才清除显示MOVR0,#bufferMOVA,#4;按键次数LCALLGetBCDKey;
17、得到双字节十进制数(乘数)MOVR0,#bufferACALLD4toB2;转换成二进制数POP01HPOP00HACALLWordMul;(R0R1)*(R2R3)=R0R1R2R3ACALLB4toD4;转换成十进制数Display:MOVR0,#buffer;显示结果MOVA,R7;低位ACALLB1toB2;压缩BCD码转换成非压缩BCD码MOVA,R6ACALLB1toB2MOVA, R5ACALLB1toB2MOVA,R4;高位ACALLB1toB2MOVR0,#buffer+7MOVR7,#7ACALLBlackDisplay;将高位0消隐MOVR0,#bufferLCALLDi
18、splay8SJMPSTART1;双字节十六进制数乘以双字节十六进制数子程序WordMul:MOVA,R3; (R0)(R1)MOVB,R1; × (R2)(R3)MULAB;-XCHA,R3; (R3R1H)(R3R1L)MOVR7,B; (R3R0H)(R3R0L)MOVB,R0; (R2R1H)(R2R1L)MULAB;(R2R0H)(R2R0L)ADDA,R7;-MOVR7,A; R0 R1 R2 R3CLRAADDCA,BXCHA,R1MOVB,R2MULABADDA,R7XCHA,R2PUSHACCMOVA,BADDCA,R1MOVR1,ACLRARLCAXCHA,R0P
19、OPBMULABADDA,R1MOVR1,AMOVA,R0ADDCA,BMOVR0,ARET;双字节十进制数转二进制数 ,R0-指向双字节十进制数,结果在R2R3中D4toB2:MOVA,R0ANLA,#0FHXCHA,R0ANLA,#0F0HSWAPAMOVB,#10MULABADDA,R0INCR0MOVB,#10MULABMOVR2,BMOVR3,AMOVA,R0ANLA,#0FHXCHA,R0ANLA,#0F0HSWAPAADDA,R3XCHA,R2ADDCA,#0MOVB,#10MULABXCHA,R2MOVB,#10MULABADDA,R0MOVR3,AMOVA,R2ADDCA,B
20、MOVR2,ARETB1toB2:PUSHACCANLA,#0FHMOVR0,AINCR0POPACCANLA,#0F0HSWAPAMOVR0,AINCR0RETBlackDisplay:MOVA,R0;将高位0消隐JNZExitMOVA,#10HMOVR0,ADECR0DJNZR7,BlackDisplayB4toD4:CLRAMOVR4,AMOVR5,AMOVR6,AMOVR7,AMOVB,#32 Exit:RETEND实验六 双字节BCD码除于单字节BCD码一、实验目的进一步熟悉51汇编指令,掌握汇编语言的设计和调试方法。自己设计程序,了解如何调用系统提供的子程序。二、实验内容从键盘上输
21、入4位被除数、二位除数,实现双字节BCD码除于单字节BCD码,结果显示在数码管上。三、程序框图四、实验步骤1、连线说明:D3区 :CLKB2区:2MD3区 :CSA3区:CS5D3区 :A0A3区:A02、在F4区的键盘上输入4位被乘数、乘数3、使用各种手段调试程序4、结果显示在F4区的数码管上五、程序清单EXTRNCODE(Display8, GetBCDKey)BufferDATA30H;8字节显示缓冲区F1BIT0D1H;PSW.1ORG0000HLJMPSTARTORG0100HSTART:MOVSP,#60HCLRF1;先清除显示,再接收键输入START1:MOVR0,#buffer
22、MOVA,#4;按键次数LCALLGetBCDKey;得到双字节十进制数(被除数)SETBF1;接收到第一个键,才清除显示MOVR0,#bufferACALLD4toB2;转换成二进制数MOVR0,#bufferMOVA,#2LCALLGetBCDKey;得到1字节十进制数(除数)MOVR0,#bufferACALLD2toB2;转换成二进制数JNZSTART2ACALLDisplayError;除数为0,出错SJMPSTARTSTART2:ACALLB2_DIV_B1;被除数 / 除数ACALLDisplay;显示商和被除数SJMPSTART1; 双字节除于单字节,R2R3为16位二进制数,
23、B为除数,商在R2R3中, 余数在A中B2_DIV_B1:PUSHBMOVA,R2DIVABMOVR2,BPOPBPUSHACCCALLDIV_B2_B1POPACCXCHA,R2RET;双字节除于单字节,R2R3为被除数,B为除数,结果:商R3中,余数在R2中DIV_B2_B1:MOVR7,#8;双字节除于单字节DIV2:CLRC;R2R3为被除数,B为除数,MOVA,R3;结果:商R3中,余数在R2中RLCAMOVR3,AMOVA,R2RLCAMOVR2,AMOVF0,CCLRCSUBBA,BJBF0,DIV3JCDIV4DIV3:MOVR2,AINCR3DIV4:DJNZR7,DIV2R
24、ET;4字节二进制数转十进制数,R2R3为16位二进制数,R4R5R6为压缩BCD码B2toD5:CLRAMOVR4,A;MOVR5,AMOVR6,AMOVR7,#16LOOP:CLRCMOVA,R3RLCAMOVR3,AMOVA,R2RLCAMOVR2,AMOVA,R6ADDCA,R6DAAMOVR6,AMOVA,R5ADDCA,R5DAAMOVR5,AMOVA,R4ADDCA,R4DAAMOVR4,ADJNZR7,LOOPRETD2toB2:MOVA,R0;1字节十进制数转二进制数ANLA,#0FH;R0-指向1字节十进制数,结果在B中XCHA,R0ANLA,#0F0HSWAPAMOVB,
25、#10MULABADDA,R0;转换成二进制数MOVB,ARETDisplay:PUSHACC;商在低四位,余数在高三位ACALLB2toD5;二进制数转十进制数MOVR0,#bufferMOVA,R6ACALLB1toB2;压缩BCD码转换成非压缩BCD码MOVA,R5ACALLB1toB2DECR0MOVR7,#3ACALLBlackDisplay;将高位0消隐MOVbuffer+4,#10H;消隐MOVR0,#buffer+7POPACCMOVB,#100DIVABMOVR0,ADECR0MOVA,BMOVB,#10DIVABMOVR0,ADECR0MOVR0,BMOVR0,#buffe
26、r+7MOVR7,#2ACALLBlackDisplay;将高位0消隐MOVR0,#bufferLCALLDisplay8RETDisplayError:MOVR0,#bufferMOVR7,#8MOVA,#0FHDisplayError1:MOVR0,AINCR0DJNZR7,DisplayError1MOVR0,#bufferLCALLDisplay8RETD4toB2:MOVA,R0ANLA,#0FHXCHA,R0ANLA,#0F0HSWAPAMOVB,#10MULABADDA,R0INCR0MOVB,#10MULABMOVR2,BMOVR3,AMOVA,R0ANLA,#0FHXCHA,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内蒙古交通职业技术学院《大学体育一》2023-2024学年第二学期期末试卷
- 江苏省盐城市盐城初级中学2024-2025学年初三下学期第二次质量测试化学试题含解析
- 山东政法学院《国际物流学》2023-2024学年第二学期期末试卷
- 上海市黄浦区卢湾中学2025年初三五月调研测试物理试题试卷含解析
- 电动工具在医疗器械制造中的无菌要求考核试卷
- 电视边缘计算与内容分发优化考核试卷
- 电子智能健康监测设备行业挑战考核试卷
- 涤纶纤维在农业种植技术与智能温室中的应用与前景考核试卷
- 核辐射测量在核设施辐射防护性能提升中的研究考核试卷
- 燃油零售业务中的互联网思维考核试卷
- 附着龈重建在口腔种植修复中的应用探索
- 房屋建造流程过程
- 2025年教科新版七年级英语下册月考试卷
- 2025年春新沪科版物理八年级下册课件 第九章 浮力 第四节 物体的浮与沉 第1课时 物体的浮沉条件
- 第二单元“中华传统文化经典研习”说课稿 2024-2025学年统编版高中语文选择性必修上册001
- 中华人民共和国内河交通安全管理条例
- 文化行业非物质文化遗产保护传承方案
- 2025届高考政治核心知识梳理提纲
- 【MOOC】光学发展与人类文明-华南师范大学 中国大学慕课MOOC答案
- 《异常子宫出血诊断与治疗指南(2022版)》解读
- 中小学思政课课件
评论
0/150
提交评论