单片机实验报告1.docx

上传人:h**** 文档编号:11724794 上传时间:2022-04-21 格式:DOCX 页数:48 大小:44.65KB
返回 下载 相关 举报
单片机实验报告1.docx_第1页
第1页 / 共48页
单片机实验报告1.docx_第2页
第2页 / 共48页
点击查看更多>>
资源描述

《单片机实验报告1.docx》由会员分享,可在线阅读,更多相关《单片机实验报告1.docx(48页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、单片机实验报告1单片机试验报告 试验一数据传送 (RA – M)一、试验目得熟识星研集成环境软件或熟识 Kei 5集成环境软件得运用方法。熟识 MS51 汇编指令,能自己编写简洁得程序,驾驭数据传输得方法。二、试验内容1、熟识星研集成环境软件或熟识l 51 集成环境软件得安装与运用方法。、编写程序,实现内外部数据段得传送、校验。三、程序框图起先 堆栈指针初始化计数器、地址初始化内部RAM数据传送外部RAM一次地址指针+1 计数器-1=0?计数器、地址指针复位取内部RAM和对应的外部RAM比较是否相等地址指针+1计数器-1=0?传送正确传送错误结束NNYYYN数据传送程序框图 四、试

2、验步骤MAR 据数部外测检,序程试调式方点断、步单用使;据数入输中F H03 MR 部内在得 100H 10FH 中得内容。熟识查瞧特别功能寄存器、内部数据 RM、外部数据空间得各种方法. 五、程序清单;将内部A Address1 起先得 1个字节送到外部A从 Adress起先得单元里,再作比较。Adress1 A 30HAddress2 XDAT 000H OR 000H LJP STA OG 0100HSTR: MOV SP,#6H V 0,ddrss1 MOV DPTR,Addrss2 MV R7,#0HSTA1: MOV A,R0 ;传送 OVX DT,A IC R0 IC DPTR

3、DJNZ R7,STAR1 MO R,#Adres M DPT,#Adde OV R7,HSTA2: MOV B,0 ;比较MOX A,DPR JE A,STAR NC 0 INC P DNZ R7,STAR2 SJMP ;传送正确 TAR3: SJP $ ;传送错误EN 试验二双字节 D BCD 码( ( 十进制数) ) 加法一、试验目得熟识1 汇编指令,学会运用星研集成环境软件,能自己编写简洁得程序,熟识CD 码,了解如何调用系统供应得子程序. 二、试验内容从键盘上输入位被加数、加数,实现双字节 BCD 码(四位数)得加法,结果显示在数码管上;熟识运用断点、单步进入、单步、运行到光标处、修

4、改 PC 指针、全速运行等各种调试手段;熟识查瞧特别功能寄存器、内部数据AM、外部数据空间得各种方法。三、试验框图起先初始化堆栈设定"先清LED,再接收键输入"标记通过键盘获得4位被加数(压缩BCD码)置位"接收到第一个键后才清除LED"标记通过键盘获得4位加数(压缩BCD码)被加数与加数的低位字节不带进位加法被加数与加数的高位字节带进位加法十进制调整十进制调整压缩BCD码(结果)转换为非压缩BCD码高位0消隐显示结果双字节BCD加法程序框图四、试验步骤、 :明说线连D3 区 :L - B区:M D3 区 :CS - A3 区:CS5 区 :0 -&md

5、ash; A区: 、在 F4 区得键盘上输入 4 位被加数、加数 3、结果显示在 F4 区得数码管上 五、程序清单EXN CD(Dipay, GtBCDKy) Buffe AA 30H ;8 字节显示缓冲区 F BT 0H ;PSW、ORG 000 M STAT RG 000HSTART: MO SP,6 CLR F1 ;先清除显示,再接收键输入 TART1: O R0,buffe MOV ,#4 ;按键次数LCALL GetDe ;得到双字节十进制数(被加数)SE F1 ;接收到第一个键,才清除显示MOV R0,#buffer4 OV A,# ;按键次数LCAL GtDK ;得到双字节十进制

6、数(加数) MOV ,bfer+1 A A,bffr+5 DA A MV uffer+5,A MOV ,buffer AC A,bufer+4 A MV ffe+4,A C A L ADsplay: PUSH ACC ;显示结果O R0,#buffe MO A,b5 ;低位ACALL Bto2 ;压缩 BD 码转换成非压缩 BCD 码M A,fer4 ;高位ACALL B1oB POP C ;进位ACAL B1to MOV R,#1H ;最高二位消隐INC R0 MOV R0,#10H MV R0,#bfe+5 MO R7,#5 ACAL BlakDilay ;将高位 0 消隐MOV R0,#

7、ufer LALL Displa8 MP TART1;将一个字节压缩 BD 码转换成二个字节非压缩 BCD 码 BB2: PUSH CC AN A,0F O 0,A INC R OP C ANL A,0F0H SWAP A MV R0,A IC 0 RE Bla kDisplay: MOV A,R0 ;将高位消隐JNZ Exit O A,#0H O R0,A EC 0 DJ R7,BacDpyExit: RTN 试验三双字节 D BCD 码(十进制数)减法一、试验目得熟识1 汇编指令,学会运用星研集成环境软件,驾驭汇编语言得设计与调试方法.能瞧懂程序流程框图,能自己设计程序,熟识 BCD 码、

8、补码,了解如何调用系统供应得子程序。二、试验内容从键盘上输入位被减数、减数,实现双字节 BCD 码(四位数)得减法,结果显示在数码管上;进一步熟识运用断点、单步进入、单步、运行到光标处、修改 P指针、全速运行等各种调试手段;熟识查瞧特别功能寄存器、内部数据 RM、外部数据空间得各种方法。三、程序框图设定"先清LED,再接收键输入"标记堆栈初始化起先通过键盘获得双字节十进制被减数(压缩BCD码)置位"接收到第一个键后才清除LED"标记通过键盘获得双字节十进制减数(压缩BCD码)减数进行十进制取补双字节十进制加法操作C=1?C=0,有进位(结果为负),再执行

9、一次求补运算,调整为正数高位0消隐,若结果为负,前面加上"-"显示结果YN双字节十进制减法程序框图四、试验步骤、 :明说线连D3 区 :CK —— 区:M3 区 :CS —— A3 区:CS5 D3 区 :0 —— A3 区:A0 2、在 F4 区得键盘上输入 4 位被减数、减数 、结果显示在 F区得数码管上 五、程序清单EXTN COD(sply8, etBDKey) Bufer DATA 30H ;8 字节显示缓冲区 F1 BI 0D1H ;PSW、1ORG 0000 LJP STAR ORG 01

10、00HSTART:MOV SP,6H CR F ;先清除显示,再接收键输入 S1: V R0,#buffer MOV A,#4 ;按键次数LCALL tCKy ;得到双字节十进制数(被减数)ETB 1 ;接收到第一个键,才清除显示M R0,#buff+4 MOV A,#4 ;按键次数LCALL GetBCDey ;得到双字节十进制数(减数)MOV A,9A CLR C UBB A,buffe+5 MOV bue+5, MV A,#H LR C SUB ,buffr+4 OV bffer4,A ;减数取补MOV ,bufer+1 AD A,buffer+5 DA OV bfr+5,A M A,b

11、uffe ADC A,bufer4 D MV buffer,A MO ,C ;借位标记JC Dislay OV A, SUB A,uffer OV ufer+5,A MO A,99H UBB A,buffe XH ,buffr+ ADD ,0H DA A XH A,bufer+5 DDC A,#00H A V buffe4,Aispay:OV R0,bufr ;显示结果OV A,ffe5 ;低位ACALL B1toB2 ;压缩CD 码转换成非压缩 BCD 码MO A,bfer+4 ;高位CALL BtoB2 MOV ,#0H ;最高四位消隐IC R0 MOV R0,10H IN R0 MOV

12、R0,#0H INC R,#10H MV 0,buffr+ R7,3 ACL lakDsply ;将高位 0 消隐MOV R,#bfer LA Dipay SJMP SAT1BlackDi play: A,R0 ;将高位 0 消隐JNZ Eit OV A,10 MOV R, E R0 DJNZ R7, l c DisplyExi: JB F0,Exit1 INC R0 OV R0,11 ;负数标记 xit1: RET B1toB2: PUSH ACCNL A,#0FH OV R, NC R0 OP ACC N A,0F0 SAP A MOV ,A INC R0 RET BlackDispl y

13、:MO A,R0 JZ it MOV A,#0 MOV R0,A DEC R0 NZ R7,acisyExit:RET ED四 试验四 数制进十转数制进六十节字四 四字节十六进制数转十进制数一、试验目得进一步熟识1 汇编指令,了解十六进制数转十进制数得方法. 二、试验内容从键盘上输入 8 位十六进制数,实现四字节十六进制数转位十进制数,并在数码管上显示。留意输入数据必需在0000000H0F0000H 范围,否则,结果超出位十进制数,无法正确显示。三、程序框图初始化堆栈起先设定"先清LED,再接收键输入"标记通过键盘获得4字节十六进制数置位"接收到第一个键后,才清

14、除LED"标记十六进制转十进制子程序显示起先0→R4,R5,R6,R7(用于存放压缩BCD码)32→B(循环次数)CLR C四字节十六进制数带进位左移一位(R4R5R6R7)×2+进位位C→(R4R5R6R7),同时进行十进制调整主程序 十六进制转十进制子程序NY返回B-1=0? 四、试验步骤、1:明说线连D区 :CK - B2 区:2M D3 区 :CS -— A区:CS5 D区 :A0 —- A区:A0 2、在 F区得键盘上输入 8 位十六进制数 3、结果显示在 F4 区得数码管上 五、程序清单 EXTR COE(

15、play, GeKey) ffr AT 30H ;8 字节显示缓冲区 BI 0D1H ;PS、1ORG 00H LJMP SAR OG 100HSTAR: M P,#60 R F ;先清除显示,再接收键输入 STAR1: M 0,#buffe MOV A,#8 ;按键次数LCALL GtKey ;得到字节十六进制数SET 1 ;接收到第一个键后,才清除显示MO R0,bfer V R1,buffr+ OV R,buffer2 OV R3,uffer3 ACAL B4tD4 ;转换成十进制数 Disly: MOV R0,bur ;显示结果V A, ;低位 ACLL B ;压缩CD 码转换成非压缩

16、CD 码OV A,R6 CA BtB2 MOV A, R5 CALL toB A,R4 ;高位 B1t2 OV R0,#uffr7 MOV R7,7 AL ackisplay ;将高位消隐M R0,#buffer LCAL Dily8 SJMP START1;四字节十六进制数转十进制数:01R2为十六进制,RR6R为压缩 BC码 B4oD4:L A MV R4,A MOV R, MOV 6,A MO 7,A O B,#32OP:CL C OV A,R3 RL R3, MO A,2 L A MOV R,A MOV A,R RC MOV R1, MOV ,R0 RLC A OV R0,A MV A

17、,R7 ADC ,R A MOV R7,A MOV A,R6 D A, A M R, MOV A,R5 DDC A,R DA A MOV R5, M ,R4 AD A,R4 A A O R4,A DNZ ,LO RET B1to2: PUSH CC AL A,#0F OV R0,A INC R0 POP ACC ANL A,#00H SWAP A MV 0, IC R RT lakDispay: OV A, ;将高位 0 消隐JN Exit V A,#10H M R0,A DEC 0 DJNZ R7, lac DisplayExit: RT END五 试验五 节字双 双字节 D BCD 码(

18、( 十 进制数) ) 乘法一、试验目得进一步熟识1 汇编指令,驾驭汇编语言得设计与调试方法.依据程序流程图,自己设计程序,了解如何调用系统供应得子程序。二、试验内容从键盘上输入 4 位被乘数、乘数,实现四位十进制数得乘法,结果显示在数码管上。三、程序框图起先初始化堆栈设定"先清LED再接收键输入"标记通过键盘获得4位十进制被乘数转换成二进制数并压栈暂存置位"接收到第一个键后,才清除LED"标记通过键盘获得4位十进制乘数转换成二进制数(R2R3)被乘数出栈(R0R1)双字节十六进制乘法子程序十六进制结果转十进制压缩BCD码转非压缩BCD码将高位0消隐显示双

19、字节BCD乘法程序框图(R0)(R1) × (R2)(R3)(R3R1H)(R3R1L)(R3R0H)(R3R0L)(R2R1H)(R2R1L)(R2R0H)(R2R0L)R0 R1 R2 R3+双字节十六进制乘法示意图四、试验步骤、:明说线连3 区 :CLK -— 区:2M 3 区 :S -— A区:CS5 区 :A0 —— A3 区:A 2、在4 区得键盘上输入 4 位被乘数、乘数 3、结果显示在 F4 区得数码管上 五、程序清单 ETRN CODE(Dsplay8, GtBCDe)ufr DATA H ;字节显示缓冲区 F1 B

20、T 01H ;PSW、1R 000H LJMP START ORG 010HSTA: MOV SP,#60 CLR F1 ;先清除显示,再接收键输入 STR1: MOV R0,#buer O A,#4 ;按键次数LALL etey ;得到双字节十进制数(被乘数)O R0,#uffer AA D4t2 ;转换成二进制数PS 2H PUH 03H SEB F ;接收到第一个键,才清除显示OV R0,#buffe MV A, ;按键次数CALL GBCDK ;得到双字节十进制数(乘数)MOV R0,#buffe CL D4tB ;转换成二进制数POP 01H POP 00H ACLL WrdMl ;

21、(0R1)(RR3)=RRR2R3AA 4toD4 ;转换成十进制数 Disla: MOV R,#buffer ;显示结果O A,7 ;低位ACL 1oB ;压缩 BD 码转换成非压缩 BD 码MOV ,6 ACALL B1toB MOV A, 5 ACALL B1toB2 MO A,R ;高位ACAL 1toB2 OV R0,#bufe7 OV R7,# ACALL BlacDispy ;将高位 0 消隐MO R0,#buffer LL Display SJP STA1;双字节十六进制数乘以双字节十六进制数子程序 WordMul:MV A,3 ; ()1R()0R MOV B,R ;&tim

22、es; (R2)(R3)MUL A ;—- -—-———-—— ——————-——— A,R3 ; (3RH)(31L)MV 7, ; (R30H)(R3R0L)MOV B,R0 ; (2R1H)(R1L)MUL AB ;(2R0H)(R2R0L)ADD A,R7 ; — -——-— ————-—-

23、—-————-——MV 7,A ;R0 R R2 R3CL A ADDC A,B XH ,R1 MOV B, AB DD A,R XCH A,2 SH AC MO A,B ADD A,R1 MOV ,A LR A RLC A XH ,R0 OP B MUL B AD A,1 OV R1,A MO ,R C A, MO R, RE ;双字节十进制数转二进制数 ,R-—指向双字节十进制数,结果在 R23 中 4to: MOV A,R0 ANL A,0FH X ,R0 ANL ,0F0H W A MO B

24、,0 MUL A ADD A, C R0 MOV B,#10 MUL AB V R2,B MO R3,A MOV A,R NL A,#FH A,R0 L A,#0F SWP A ADD A,R3 CH ,R2 ADDC A,#0 MOV B,10 MUL AB XCH A, MOV B,1 MUL ADD A,R MV R,A OV A,R ADDC ,B MV R2,A ET Bto2:PU CC AL ,#0F MOV R0, IC 0 OP ACC ANL ,0FH SAP A OV R0,A INC R0 RET BlackDisplay: MO A,R ;将高位 0 消隐JNZ Ex

25、t MOV A,10 MOV R,A DC R DJNZ ,BlakDpayB4oD: CLR A MOV R4,A OV R,A MOV R,A MOV R7,A MOV B,2Et: RE ED 试验六双字节C C 码除于单字节 D BCD 码一、试验目得进一步熟识 51 汇编指令,驾驭汇编语言得设计与调试方法.自己设计程序,了解如何调用系统供应得子程序。二、试验内容从键盘上输入 4 位被除数、二位除数,实现双字节 BC码除于单字节D 码,结果显示在数码管上。三、程序框图起先初始化堆栈设定"先清LED,再接收键输入"标记通过键盘获得4位被除数,转换为十六进制数并暂存通过

26、键盘获得单字节除数,转换为16进制数显示子程序置位"接收到第一个键后,才清除LED"标记单字节除法:被除数的高字节除以除数,结果为最终商的高8位双字节除以单字节(商为16位)双字节除以单字节(商只有8位)子程序最终获得结果(16位的商,8位余数)双字节除以单字节(商为16位)子程序循环次数8→R716位被除数(R2,R3)带进位左移一位(最低位补0, C →F0)R2-除数(B)F0=1?C=1?差→R2,R3自加1R7-1=0?双字节除以单字节(商为8位)子程序起先 起先返回返回主程序YYYNNN双字节BCD除法程序框图 四、试验步骤 1、连

27、线说明:D3 区 :CL —— B2 区:2 D3 区 :S - A区:5 3 区 :A0 —— A3 区:0 2、在 F4 区得键盘上输入 4 位被乘数、乘数 3、运用各种手段调试程序 4、结果显示在 F4 区得数码管上 单 五、程序清单 EXR CODE(Diplay, GetBCDKy) Buffr DTA 0 ;8 字节显示缓冲区 F1 BIT 0D ;PSW、1R 0000H LJP STAR OG 00SRT: MO SP,60H CLR F1 ;先清除显示,再接收键输入 TAT1: MOV R0,bffer OV A,#4 ;按键次

28、数LCALL tBDey ;得到双字节十进制数(被除数)SETB F1 ;接收到第一个键,才清除显示M R0,buffer ACL 4tB ;转换成二进制数O R0,#uffer MO A,#2 LCALL GtBCDKey ;得到 1 字节十进制数(除数)M R0,#bfr ACLL DtoB ;转换成二进制数JN SR ACALL Dsplayrrr ;除数为,出错SJP TARAR:ACALL B2_DI_B1 ;被除数 / 除数ACAL Dispa ;显示商与被除数SJP STRT1; 双字节除于单字节,R2R为 1位二进制数,B 为除数,商在 R2R中, 余数在 A 中 B2_DIV

29、_B1:PUS B MV A,R2 AB MV R2,B OP PU CC CLL IV_B_ OP A CH ,R2 ET ;双字节除于单字节,R2R3 为被除数,为除数,结果:商 R3 中,余数在 R中 DIV_B2B1: MV 7,# ;双字节除于单字节 DV2: CL ;R2R3 为被除数,B 为除数,MO A,R ;结果:商3 中,余数在 R2 中LC A M R3,A O A,2 RLC A MV R2,A MV F0, CLR BB A,B B F,IV3 JC D4DIV: OV R2,A R3DIV4: DNZ R,D2 RET ;4 字节二进制数转十进制数,R2R3 为 1

30、位二进制数,R4RR为压缩D 码 BtoD5:CL MOV R,A ;MOV 5,A O 6,A O R7,16LOOP:LR C MOV A,R RLC A MOV R3,A M A,R2 R A MV , M A,R6 ADDC A,R6 DA OV R6,A MOV A,R5 AD A,5 DA OV R,A MOV ,R4 DDC,R4 D A MV R4,A DN ,OP ET 2toB2: MOV A,0 ;1 字节十进制数转二进制数AN A,#FH ;——指向 1 字节十进制数,结果在中XCH A,R ANL A,0F0 AP MV B,#1 MUL AB

31、 DD A,R ;转换成二进制数M B,A RT spla:USH AC ;商在低四位,余数在高三位ALL B2toD ;二进制数转十进制数MV R0,buffer MOV ,R ACAL B1toB2 ;压缩C码转换成非压缩 BCD 码V A,R5 CALL Bto2 C R MOV R,3 ACAL Blaksply ;将高位消隐MOV bffr4,#10H ;消隐 MOV R0,buff7 PO CC MOB,00 IV A MO R0, DC R0 MV ,B MO ,#1 DIV AB O R0,A DEC R0 MO ,B MO R0,#ufer+7 MOV R7,2 ACLL B

32、ckDispay ;将高位 0 消隐V R0,#bfe LALL isplay ET Displa E ror:MOVR0,#buffr MOV 7,8 M A,#0HDislayErr1:MV R,A INC R0 DJZ R,layrrr1 MOV 0,buffr CALL Dispy8 RT D4oB2:MO A,R0 ANL A,H H A,R AN A,F0H SWAP A MOV B,#10 L A ADD A,R0 NC MV ,#1 MU AB MOV R2,B MOV R3,A MV A,R0 NL A,#0FH XCH ,R NL A,#0FH SAP ADD A,R CH

33、 A,R2 DC ,# MOV ,10 MUL AB XH A,R2 MO ,#10 MU AB ADD A,R0 MOV R3,A MOV A,R2 ADC A,B OV R, RET B1to:PUS CC A ,0H MOV 0,A I 0 PP AC ANL A,#0H SWA A MOV R0,A I R0 RE Blac i play:MO A,R0 ;将高位消隐JNZ Exit MO A,#10H M R, DEC R0 D 7 , Bl ckD splaEND试验八冒泡排序一、试验目得熟识运用 MCS51 指令,驾驭汇编语言得设计与调试方法,了解如何运用高效方法对数据排序 二、

34、试验内容。列排新重大到小从据数组一将法泡冒用使求要,序程序排个一试调并写编三、程 序框图起先初始化堆栈将待排序数组转移到内部30H起先的RAM中数据数-1→R7,数据交换标记bSort=0PUSH07H被比较数地址R0=30H比较数地址R1=R0+1DEC R7R0>R1?R0与R1互换1→bSortINC R0INC R1POP R7R7=R7-1 R7=0?bSort=0?结束NNNYYY冒泡排序程序框图 四、试验步骤 。列排序顺得大到小从按否是就据数中 HF3H03 A部内查检,序程试调式方点断用使单 五、程序清单 bSr BI F0 O 0000 LM TAR

35、 RG 010HSTR: MOV SP,60H ;堆栈MOV R0,#30H ;存放待排序数据得首地址MV R7,16 ;数据个数MOV DPTR,#TATAR1:LR A OV A,ADR O , ;将数据移入内部 RA中INC R0 IC DPTR DN R7,SAR1 M R,-1 ;存放比较次数 STAR2: PUSH O R0,0H ;存放启始地址CLR bSort MOV R1,00H IN R MV A,R0STR3:O ,A MOV A,R1 CJNE A,B,$+3 JNSR5 XH A,R0 R1, SEB orR: INC R IN R1 DJNZ R7,STA3 POP 07 NB bSor,i E R7 JMP SARExit:SJMP $TAB1:DB 0,5,6,3H,8H,2H,0H,57,6H,1H,FH,0A0H,45H,99H,55H,66HEND本文来源:网络收集与整理,如有侵权,请联系作者删除,谢谢!第48页 共48页第 48 页 共 48 页第 48 页 共 48 页第 48 页 共 48 页第 48 页 共 48 页第 48 页 共 48 页第 48 页 共 48 页第 48 页 共 48 页第 48 页 共 48 页第 48 页 共 48 页第 48 页 共 48 页

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

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁