




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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,#buffer+7MOVR7,#2ACALLBlackDisplay;将高位0消隐MOVR0,#bufferLCALLDisplay8RETDisplayError:MOVR0,#bufferMOVR7,#8MOVA,#0FHDisplayError1:MOVR0,AINCR0DJNZR7,DisplayError1MOVR0,#bufferLCALLDisplay8RETD4toB2:MOVA,R0ANLA,#0FHXCHA,R0ANLA,#0F0HSWAPAMOVB,#10MULABADDA,R0INCR0MOVB,#10MULABMOVR2,BMOVR3,AMOVA,R0ANLA,#0F
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 咖啡连锁品牌市场布局与扩张战略:2025年消费升级与竞争格局研究报告
- 2025河北雄安新区新建片区学校选聘校长及骨干教师13名考前自测高频考点模拟试题完整答案详解
- 2025年光伏电站智能运维系统在边远地区推广与应用报告
- 2025河南新乡事业单位招录203人考前自测高频考点模拟试题附答案详解(模拟题)
- 2025福建泉州市永春县部分公办学校专项招聘编制内新任教师23人(二)模拟试卷及参考答案详解
- 2025年度哈尔滨“丁香人才周”(春季)延寿县事业单位引才招聘模拟试卷附答案详解(黄金题型)
- 2025年影视工业化制作流程优化与高质量监控体系构建指南
- 2025宝鸡石油机械有限责任公司春季高校毕业生招聘10人模拟试卷及一套完整答案详解
- 2025年新能源行业上市公司股权激励实施对员工激励与约束作用报告
- 2025广西玉林市玉州区城北供销合作社招聘行政工作人员3人模拟试卷附答案详解(模拟题)
- 云南省云南师大附中2026届高考适应性月考卷地理及答案(一)
- 卫生系统保密教育课件
- 中医全科课件下载
- 拒绝烟草诱惑向“吸烟”说不!课件-2024-2025学年高二下学期世界无烟日主题班会
- 4《少给父母添麻烦》公开课一等奖创新教案(第二课时)
- T-JLJY 01 -2023 幼儿园教育装备配置规范
- 《SLT631-2025水利水电工程单元工程施工质量验收标准》知识培训
- 马拉松志愿者培训
- 企业信息化标准规范-全面剖析
- 临床微生物学检验 2细菌形态学检查、培养和分离技术 学习资料
- 防高处坠落 物体打击专项施工方案
评论
0/150
提交评论