单片机实验报告1_第1页
单片机实验报告1_第2页
单片机实验报告1_第3页
单片机实验报告1_第4页
单片机实验报告1_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机实验报告实验一数据传送(RAM - > XRA M)一、实验目得熟悉星研集成环境软件或熟悉Kei 1 C5 1集成环境软件得使用方法。熟悉MC S51汇编指令,能自己编写简单得程序,掌握数据传输得方法。二、实验内容1、熟悉星研集成环境软件或熟悉Ke 1 l C 51集成环境软件得安装与使用方法。2、编写程序,实现内外部数据段得传送、校验。三、程序框图结束数据传送程序框图四、实验步骤堂内部RA M 30H3 FH中输入数据;使用单步、断点方式调试程序,检测外部数据 RAM 得10 0 0H 1 0 0FH中得内容。熟悉查瞧特殊功能寄存器、内部数据RA M外部数据空间得各种方法.五、程

2、序清单;将内部RAM Address1开始得 16个字节送到外部R AM从 Ad dress 2开始得单兀里再作比较。Add resslDATA30HAddress2XDATk1 000HOFG00 0 0HLJMPSTAROR G0100HSTA R:MOVSP,#6 0 HMO VR 0, # A ddr e ss1MOVDPTR # Addr e ss2MO VR7,# 1 0HSTAR 1:MOVA,R0;传送MOVXDPTR, AI NCR0I NCDPTRDJNZR7,STAR1MORO ,#Ad d re s siMOVDPTR ,#Add r e ss 2MOVR7, # 1

3、0 HSTAR 2:MOVB, R 0;比较MO XA, DPT RC JNEA, B , STAR3I NCR0INCDPTRDJ NZR7, STAR2SJMP$;传送正确S TAR3:SJMP$;传送错误END三I c实验二 双字节BCD(十进制数)加法一、实验目得熟悉5 1汇编指令,学会使用星研集成环境软件 ,能自己编写简单得程序,熟悉B CD码, 了解如何调用系统提供得子程序 .二、实验内容从键盘上输入4位被加数、 加数,实现双字节BC加(四位数)得加法,结果显示在数码 管上;熟悉使用断点、单步进入、单步、运行到光标处、修改PC指针、全速运行等各种调试手段;熟悉查瞧特殊功能寄存器、内

4、部数据RAM外部数据空间得各种方法。三、实验框图开始双字节BC加法程序框图四、实验步骤?1、连线说明:D3区:C LKB2 区:2 MD3区:CS-A3 区:CS5D 3区:A 0-A3 区:A 02、在F4区得键盘上输入 4位被加数、力口数EXT R NCO DE (Di s p 1 ay 8 , Ge tBCDKe y)Buffe rDAT A30H;8字节显示缓冲区FlBIT0D 1 H;PSW 1ORG00 0 0HL J MPSTAR TORG01 00HSTART:MO/SP, # 6 0 HCLRF1;先清除显示,再接收键输入S TART1:MOVRO, b buffe rMOV

5、A, #4;按键次数LCALLGetB C DK ey;得到双字节十进制数(被加数SET BF1;接收到A个键,才清除显示MOVR0,#buffer +4MOVA #4;按键次数LCAL LGe t B C DKe y;得到双字节十进制数(加数 )3、结果显示在F4区得数码管上 五、程序清单)MOVA, buff er+1ADDA,b u ff e r+5DAAMO Vb uffer+5,AMOVA, bufferAD DCA, bu f fer+4DAAMO Vb u ffe r +4, ACL RAR LCADi splay:PUSHACC ;显示结果MOVRQ #buffe rMO/Ab

6、uffer+ 5 ;低位ACALLBl to B 2;压缩BCD码转换成非压缩 BC加MOVA, b u f fer + 4;高位ACALLB11 oB2POPACC;进位ACAL LB1to B 2MOVRO ,#1 0 H;最高二位消隐INCR0MOVR0,#10HMO VR0,#b u f f e r +5MO/R7,#5ACALLBla c kDi s p lay;将高位0消隐MOVR0,# b u f ferLCALLDispla y 8S J MPS TART1;将一个字节压缩 BC D码转换成一个字节非压缩 BCD©Bl t o B2:PUSHACCANLA # 0FH

7、MOVR0,AINCROP OPACCANLA, 0F0HSWAPAMO VR0,AI NCR0RETTBlac MOVA, R0;将高位。消隐kDisplay:JNZExitMOVA,# 1 0HMOVR0,AD ECR0Exit:DJNZR7,B 1 ack Di s pl ayRE TE ND实验三 双字节BCD马(十进制数)减法一、实验目得熟悉5 1汇编指令,学会使用星研集成环境软件, 掌握汇编语言得设计与调试方法 .能瞧 懂程序流程框图,能自己设计程序,熟悉 BC加、补码,了解如何调用系统提供得子程序。 二、实验内容从键盘上输入4位被减数、减数 ,实现双字节BC加(四位数)得减法,结

8、果显示在数码 管上;进一步熟悉使用断点、单步进入、单步、运行到光标处、修改PC指针、全速运行等各种调t手段;熟悉查瞧特殊功能寄存器、内部数据RA M外部数据空间得各种方法。三、程序框图开始双字节十进制减法程序框图四、实验步骤?1、连线说明D3 区:C L KD3区:CSA3 区:CS5D3区:A0A3 区:A02、在F4区得键盘上输入4位被减数、减数3、结果显示在 F4区得数码管上五、程序清单EXTR NCOD: (D ispl a y8, G etB C DKey)Buf ferDATA30H;8字节显示缓冲区F1BI T0D1H;PSW 1ORG0000 HLJMPSTARTORG0100

9、HSTARTMOVSP, # 6 0HCL RF 1;先清除显示,再接收键输入ST A RT 1:MO VR0, #bufferMOVA,#4;按键次数LCALLG e t B CD Ke y;得到双字节十进制数(被减数S ETBF 1;接收到A个键,才清除显示MOVR0, #buff e r +4MOVA, #4;按键次数LCALLGetBCEK ey;得到双字节十进制数(减数)MOVA, 9 9AHCLRCS UBBA,buffe r +5MOVbu f f e r +5, AMO VA,# 9 9HC LRCSUB BA ,buff e r+4MOVb u ffer + 4, A;减数取

10、补MOVA, buf f er+1ADDA,buffer+5DAAMOVbu f f e r+5,AMOVA,buffe rADD CA,bu f fer +4DAAMO Vbuffer + 4 , AMO/F 0 ,C;借位标志JCDis p layMOVA, # 9 AHSUB BA, b uffer + 5MOVbuf fer+5,AMO/A, # 99HS UBBA,buffe r + 4)XC HADDDAA ,buff e r+ 5A , # 0 0HAA,buf f er+5A,#00HAbuffe r + 4,AXC H ADDCDAMO VDisp 1 ay:MOVR0, #

11、 buf f e r;显示结果MOVA, b u ffe r + 5;低位ACALLB1toB2;压缩B CD码转换成非压缩 BC加MO/A,b u f fer+4;高位A CALLB 1 toB2MOVR 0 ,# 1 0H;最图四位消隐I NCR0MOVR0, 10HIN CR0MOVR0, # 1 0HINCR 0MOVRO ,#10HMO VR 0, # buff e r+3MOVR7, 3ACA L LB la c kDi spl a ;将高位0消隐yMOVRO ,#b u f ferLC AL LDi s p 1 ay 8SJMPST AR T1BlackDisMOVA,R0; 将

12、高位0 消隐play :JNZEx itMOVA, # 10HMOVRO , AD ECR0DJNZR7, B l ackDispl a yExi t :JBF0 , Exit1INCR0MOVR0, # 11H;负数标志E xitl:RETB1toB2:PUSHANLA,#0FHMOVRO , AI NCR0P OPACCANILA, # 0F0HSW APAMOVR 0 ,AINCR0RETBlackDisplaMO/A,R0y:JNZE x itMOVA, #1 0HMOVR0, ADECR0DJ NZR7, B 1 ac k D isPlayExit :RETEN D实验四?四字节十六

13、进制数转十进制数一、实验目得进一步熟悉5 1汇编指令,了解十六进制数转十进制数得方法二、实验内容从键盘上输入8位十六进制数,实现四字节十六进制数转8位十进制数,并在数码管上 显示。注意输入数据必须在00000000H0 5 FO 0000H范围,否则,结果超出8位十进制数,无法正确显示。三、程序框图开始主程序开始B-1=0?Y返回十六进制转十进制子程序四、实验步骤? 1、连线说明D3 区:C L K-B2 区:2MD3 区:CS-A3 区:CS5D3 区:A0-A3 区:A02、在F 4区得键盘上输入 8位十六进制数3、结果显示在F4区得数码管上五、程序清单?EXTFNCOD E( D is

14、play 8 , Ge t Key)B u ff e rDATA30H;8字节显示缓冲区F 1BI T0D1H;PSW、1ORG0 0 00 HLJMPST ARTOR G0 100HSTAFR?:MOVS P, #60HC L RF 1;先清除显示,再接收键输入STAFR? 1:MOVR 0,#buffe rMOVA,#8;按键次数LCALLGe tKey;得到4字节十六进制数SETBF 1;接收到第一个键后,才清除显示MO/R0,b u f ferMO VR1,buff e r+ 1MOVR2 , buffer + 2MOVR3, b uffer +3ACALLB4t o D4;转换成十进

15、制数Dis p l a y:MOVR0, # bu f f e r;显示结果MO VA, R 7;低位ACA LLBito B2;压缩B CD码转换成非压缩BCD码MOVA,R6A CAL LBl t o B2MOVA, R5A CALLB 1 toB 2MOVA, R4; 高位A C A LBit o B 2LMOVR0, #b uff e r+ 7MOVR7,7AC AL LB 1 ack Display;将高位。消隐MD VR0,#bufferLCAL LDi s p l a y8SJMPSTART1;四字节十六进制数转十进制数f进制数轮十进制数:R0R1R2R3为十六进制,R4R5 R

16、6R7为压缩BCD码B4 t oD4:C LRAMD VR4, AMOVR5 , AMOVR6,AMO/R7, AMOVB, #32LOO P:CLRCMOVA, R3RLCAMOVR3, AMO/A, R2RLCAMOVR2 , AMOVA, RIRL CAMOVRi, AMOVA,R0RLCAMOVR0,AMD VA,R7AD DCA, R7DAAMOVR7,AMOVA,R6ADD CA, R 6DAAMOVR6 , AMOVA,R5ADDCA, R5DAAMOVR5, AMOVA,R4AD DCA,R4DAAMOVR4,ADJ NZB , LOOPRETB1to B 2:PUSHACCA

17、N LA,#0F HMOVR0, AINCR0POPACCANLA, #0F 0HSWAPAMD VR0, AI NCRORE TB la c kDisp 1MOVA, R 0;将高位0消隐ay:JNZExitMO VA,#10HMOVR0, ADECR0DJNZR7, B lac kDisplayRE TExit:END一、实验目得进一步熟悉5 1汇编指令,掌握汇编语言得设计与调试方法 .根据程序流程图,自己设计 程序,了解如何调用系统提供得子程序。二、实验内容从键盘上输入4位被乘数、乘数,实现四位十进制数得乘法,结果显示在数码管上。三、程序框图开始(R0)(R1)X (R2)(R3)(R3

18、R1H)(R3R1L)(R3R0H)(R3R0L)(R2R1H)(R2R1L)+ (R2R0H)(R2R0L)R0 R1 R2 R3双字节十六进制乘法示意图双字节BC廉法程序框图 四、实验步骤? 1、连线说明:D3区:CLK-B2区:2MD3区:C S-A3 区:CS5D 3区:A0A3 区:A 02、在F 4区得键盘上输入 4位被乘数、乘数3、结果显示在F4区得数码管上 五、程序清单EX TRNCODE(Di splay8 , G e tBCDK e y ;IB uf f e rDATA3 0H;8字节显示缓冲区F1BI T0D 1H;PSW 1ORG0 000HLJMPSTARTORG01

19、0 0 HSTAR T :MOVSP,#60 HCLRF1;先清除显示,再接收键输入STA RT 1:MOVR0, #bu f f erMOVA, #4;按键次数LC ALLG et B C D K ey;得到双字节十进制数(被乘数)MOVR0, # b ufferAC AL LD4t o B 2;转换成二进制数PU SH0 2HPUS H03HSET BF 1;接收到第一个键 , 才清除显示MOVR0, #buffe rMD VA, # 4; 按键次数L CALLGe t BCD惶 y;得到双字节十进制数( 乘数 )MOVR0, #buffe rACA L LD4t o B2; 转换成二进制

20、数POP01HPOP00HACA LLW rdMu l;(R0R1) * ( R2 R3)=R0 RI R2R3AC AL LB 4toD4; 转换成十进制数Dis p la y :MOVRO , #buffer;显示结果MOVA, R 7;低位ACA LLB 1 t oB2;压缩BC D码转换成非压缩 BC D码MOVA , R6ACALLB1toB 2MOVA, R5ACALLB1toB2MO/A, R4;高位ACAL LB 1toB2MOVR0, #bu f fe r + 7MOVR7,# 7ACALLBlac k Disp 1 a y;将高位0 消隐MO/R0, #bufferL C

21、A LLDisplay 8SJMPSTAR T 1; 双字节十六进制数乘以双字节十六进制数子程序十六进制数子程序WordMul:MD VA, R3; ?(R0)(R1)MOVB, RI;X(R2) (R3)MULAB; - - - XCHA,R3 - ;(R3R1 H)( R 3R 1L)MD VR7, B;(R3R 0H)(R3R0L)MOVB,R0;(R2R1H) ( R 2 R1DMULAB;(R 2R0H) (R2R0L)ADDA, R7;- - MD VR7,A - - - ; R0R 1 R2R3CLRAADDCA,BXC HA,R1MOVB, R 2MULABADDA, R7XC

22、HA, R2P U SHAC CMOA,BADDCA,R1MOVRI, AC LRARLCAXC HA,R0P OPBMULABAD DA, R 1MOVR1,AMOA,R 0ADD CA, BMORO , ARET; 双字节十进制数转二进制数节十进制数转二进制数,R 0-一指向双字节十进制数,结果在4toB 2 :MOVA,R0ANLA, 0FHXCHA, R0ANLA, # 0F0HS MPAMOB, # 1 0MULABADDA, R 0I N CR0MOVB,#10MULABMO VR2, BMOR3,AMOVA, ROANLA, #0 FHXCHA,R0AN LA, #0F 0 HS

23、Wk PAADDA, R3XCHA,R2ADDCA, #0MOVB,10MULABXCHA, R 2MOVB, # 1 0MULABR2R 3 中ADDA,R0MD VR3 ,AMOVA, R2ADDCA,BMD VR2, ARETBl to B 2:PUS HACCAN LA, #0FHMOVR0, AI NCR0P OPACCANLA, # 0FO HSW APAMOVR0, AINCR0RETBlackDisplay:MCVA,R0;将高位。消隐JNZExi tMOVA, # 10HMOVRO , ADE CRODJNZR 7 ,Bla c kD i sp i ayB4 t oD4 :

24、?CLRAMOVR4,AMOVR5 , AMOVR6 ,AMOVR7,AMOVB, # 3 2Ex i t:RETEN D实验六双字节B CD码除于单字节 BCD马一、实验目得进一步熟悉 51 汇编指令 , 掌握汇编语言得设计与调试方法. 自己设计程序,了解如何调用系统提供得子程序。二、实验内容从键盘上输入4位被除数、二位除数,实现双字节BCD码除于单字节BCD码,结果显示在数码管上。三、程序框图开始开始开始主程序双字节BC除法程序框图四、实验步骤1、连线说明:D3区:CL KB2区:2MD3 区:C S-A3区C S 5D 3 区:A0A3区:A02、在F4区得键盘上输入 4位被乘数、乘数3

25、、使用各种手段调试程序4、结果显示在F4区得数码管上五、程序清单? ?EXT RN ?CODE(Dis play8 , GetBCDK e y)Buff e rDA TA3 0H;8字节显示缓冲区F1BIT0D1 H;PSW 1O RG0000HLJMPSTARTOR G0100 HST A RT:MO/ ?SP, # 60HCLRF1;先清除显示,再接收键输入S TAR T1:MOVR0, # b u fferMOVA,#4;按键次数LCALLG e tB C DK ey;得到双字节十进制数(被除数)SETBF1;接收到个键,才清除显示MOVR0, # bufferACA L LD 4t o

26、 B 2;转换成二进制数MOVR0, # b ufferMOA,#2LCALLGe tBCDKey;得到 1 字节十进制数(除数 )MOVR0,#b u f f e rACA LLD2 toB 2; 转换成二进制数JNZST A RT 2ACALLDi splay E rr o r;除数为0 ,出错SJMPS TARTS T ART 2 :ACALLB2_DI V_B1; 被除数 / 除数ACAL LDisp 1 a y;显示商与被除数SJMPST A RT1;双字节除于单字节,R2R3为1 6位一进制数,B为除数,商在R2R3中,余数在A中B2_DIV_B1:PUSHBMO VA,R2D I

27、 VABMO VR2, BP OPBPUS HACCCA LLD IV_B 2 _B 1P OPAC CXCHA,R2RET; 双字节除于单字节,R2R3为被除数,B为除数,结果:商R3中,余数在R2中DIV B2 B1: MO VR7, #8; 双字节除于单字节DI V2:CLRC;R2R3为被除数,B为除数,MO/A, R3;结果:商R 3中,余数在R2中RLC?AMOVR3,AMOVA, R2RLCAMO VR2,AMO VF0, CCLRCS U BBA,BJ BFO , D IV3JCDI V 4DIV3 :MOVR2,AINC?R3DIV4:DJ NZR7 , DI V 2RET,

28、R2R3为16位二进制数,R4R5R6为压缩BC D码;4 字节二进制数转十进制数卜进制数B2 toD5:CLRAMOVR4 ,A;MOVR5,AMOVR6, AMOVR7,16LOOP:C LR?CMOVA,R3RLC?AMOVR3,AMOVA, R2RL C ?AMO VR 2 , AMOVA,R6ADDCA,R6DA?AMOVR6, AMOVA,R5ADD CA, R 5DA?AMOVR5 ,AMOVA, R4ADDCA,R4DA ?AMO VR4, ADJ NZR 7 , L OO PRETD2toB2:MOVA, R0; 1 字节十进制数转二进制数ANLA,# 0 FH;R 0指向1

29、字节十进制数,结果在B中XCHA, ROANLA, # 0F0HSWAPAMO VB,#1 0MULABADDA, RO;转换成二进制数MOVB,ARE TD i spla y :P USHACC; 商在低四位, 余数在高三位AC A LLB2toD 5; 二进制数转十进制数MO VR0, bufferMOVA, R6ACALLB1toB2;压缩B CD码转换成非压缩 BCD马MO VA, R5ACALLBl to B 2DECROMOVR7 , # 3ACALLBla c kD i spl ay;将高位0消隐MOVbu ff e r + 4,#10H;消隐MOVR0, # buff e r

30、+ 7POP ?ACCMOB, # 1 00D IV?ABMORO, ADE CR0MO VA,BMO/B , #1 0DIV?ABMOVR0, ADECR0MO/RO, BMO/R0, # b u f fer+7MOVR7,2ACA LLBl a ckDisp 1 ay;将高位0 消隐MO VR0,#b u f fe rLC ALLD isplay 8RETDispla y E rMOVR0,#buff e rror:MOVR7, 8 8MOVA,#0 F HDis p layE r r oMO V?RO , Ar1:INC?R0DJNZR7 , D i s p layE rr。门MOVR0, b buff e rL CALLDisp 1 a y8RE TD4t oB2:ANLA, # 0 F HXC HA, ROANLA, # 0 F0HSWAPAMOVB, #10MU LABADDA,R0I NCR 0MO VB ,#1 0MULABMOVR2,BMOVR3,AMO VA,R0MOANLA,#

温馨提示

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

评论

0/150

提交评论