




已阅读5页,还剩58页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,MCS-51系列单片机指令学习,一、实验目的 MCS-51系列单片机指令系统共有111条汇编语言指令,这些指令按功能的不同可分为五类:29条数据传送类指令,24条算术运算类指令,24条逻辑运算类指令,17条控制转移类指令和17条位操作类指令。 本实验通过单步执行程序中各类指令,来进一步学习和理解各类主要指令的功能,掌握指令的用法。 通过实验掌握Keil软件的使用方法。,二、实验准备 1、启动稳压电源,确认输出电压正常。 2、将微机实验开发系统与直流稳压电源连接好。 三、实验内容 将以下各部分实验中所给出的程序的指令机器代码查出,并输入到单片机系统中,然后从程序给定地址开始单步执行,观察并记录程序所指定的内容。,(一)、数据传送与算术运算 1、体会 MOV Rn, direct指令的功能和用法,取n=0,direct=40H。 程序如下: ORG 1000H SUBROUT:MOV 40H, #0FH; 0FH送入RAM 40H单元中 MOV R0, 40H; 40H单元内容送R0 MOV A, R0; R0内容送累加器A HERE:SJMP HERE; END A=( ),40H=( ),R0=( ),2、体会MOV Ri,#DATA指令的功能和用法,选择DATA=0FH,i=0。 程序如下: ORG 1010H SUBR:MOV R0, #50H; R050H MOV R0, #0FH; (R0)0FH MOV A, 50H; A(50H) HERE:SJMP HERE; END R0=( ),50H=( ),A=( ),3、体会查表指令MOVC A,A+DPTR,MOVC A,A+PC的功能和用法。 设定40H单元中的内容为09之间的一个整数,用查表的方法求出它的平方值(BCD码),结果存入41H单元。 (1)、利用MOVC A, A+DPTR指令查表 程序如下: ORG 1020H START:MOV DPTR, #SQR; MOV A, 40H; MOVC A, A+DPTR; MOV 41H, A; HERE:SJMP HERE; SQR:DB 00H,01H,04H,09H,16H DB 25H,36H,49H,64H,81H END,(2)、利用 MOVC A,A+PC 指令查表 程序如下: ORG 1050H START:MOV A, 40H; ADD A, #04H; MOVC A, A+PC; MOV 41H, A; HERE:SJMP HERE; SQR:DB 00H,01H,04H,09H,16H DB 25H,36H,49H,64H,81H END,步骤:1)、仔细阅读程序并进行手工汇编。 2)、将程序输入单片机实验开发系统。 3)、建立平方值表。 4)、在40H单元键入0009之间的随机整数,分别执行上述两个程序,检查41H单元的值。 41H=( ), 41H=( ) 4、用加法指令ADD A,R0实现两数相加,如52H+FCH。 程序如下: ORG 1100H SUBROUT:MOV A, #52H ; A52H MOV R0, #0FCH; R00FCH ADD A, R0; A(A)+(R0),HERE:SJMP HERE; END A=( ), PSW=( ) 用带进位加法指令 ADDC A,R0实现52H与0CH之和。 程序如下: ORG 1150H SUBROUT:MOV A, #52H; MOV R0, #0CH; SETB C; ADDC A, R0; HERE:SJMP HERE; END,执行后 A=( ),PSW=( ) 若将 SETB C 指令改为 CLR C 执行后 A=( ),PSW=( ) 5、体会十进制调整指令 DA A 的功能和用法 程序如下: ORG 1200H SUBROUT:MOV A, #65H; ADD A, #58H; DA A; HERE:SJMP HERE; END,执行后 A=( ), PSW=( ) 若将 DA A 指令用NOP代替,则执行后 A=( ),PSW=( ) 6、用乘法指令 MUL AB 进行 0FFH*03H 程序如下: ORG 1250H SUBROUT:MOV A, #0FFH; MOV B, #03H; MUL AB; NOP; NOP; HERE:SJMP HERE END,执行后 A=( ),B=( ),将2个空操作指令换成MOV A,B执行后A=( ),B=( ),最后0FFH*03H=( ),是否等于B与A的内容的积( )。 (二)、逻辑运算和循环指令 1、逻辑“与”指令实验。 程序如下: ORG 1300H SUBROUT:MOV A, #0FBH; ANL A, #0FH; HERE:SJMP HERE; END 执行后 A=0BH,实验结果是否正确?“与”指令有何作用?,2、逻辑“或”指令实验。 程序如下: ORG 1400H SUBROUT:MOV R1, #0FH; MOV A, #33H; ORL A, R1; HERE:SJMP HERE; END 执行后 A=( ),“或”指令有何作用?,3、逻辑“异或”指令实验。 程序如下: ORG 1500H SUBROUT:MOV A, #55H; MOV 40H, #00H; XRL A, 40H; HERE:SJMP HERE; END 执行后 A=( ),将MOV 40H,#00H 改为 MOV 40H, #55H,执行后A=( )。,4、利用左移指令实现乘2运算。 程序如下: ORG 1600H SUBROUT:MOV A, #29H; RLC A; HERE:SJMP HERE; END 执行后 A=( ),5、利用循环移位指令实现累加器A中内容高半字节与低半字节互换。 程序如下: ORG 1700H SUBROUT:MOV A, #38H; RL A; RL A; RL A; RL A; HERE:SJMP HERE; END 执行后 A=( ),改用 RR A指令重新实验,执行后 A=( ),改用SWAP A指令重新执行,则A=( )。,(三)、位操作指令的功能和用法。 利用位条件转移指令实现两个无符号数比较大小。 程序如下: ORG 1800H SUBROUT:MOV 30H, #80H; MOV 31H, #7FH; MOV A, 30H; CJNE A,31H,BIG; MOV A,#0DDH; SJMP HERE; BIG:JC SMALL;,MOV A, #0F0H; SJMP HERE; SMALL:MOV A, #0FH; HERE:SJMP HERE; END 执行后 A=( ),修改(30H)=7FH,(31H)=80H,执行后 A=( ),再修改(30H)=80H,(31H)=80H,执行后A=( )。,四、实验报告要求 1、整理好记录的数据,与理论分析的结果相比较。 2、归纳MCS-51 系列单片机各类主要指令的功能,熟悉指令寻址方式。 3、位操作指令JC是根据什么条件实现转换的。 4、实验报告格式参照实验报告说明 五、预习报告要求 1、认真阅读实验要求。 2、汇编所有实验程序。,数据传送,一、实验目的 1、进一步熟悉Keil软件的使用方法。 2、练习设计简单的程序。 3、掌握MCS-51 系列单片机内部RAM之间,外部RAM之间以及内部RAM与外部RAM之间的数据传送方法,从而了解这两部分数据存贮器的特点。 4、掌握MCS-51系列单片机堆栈的使用方法。,二、设计要求 1、先将MCS-51系列单片机内部RAM 30H3FH单元分别置初值,初值为00H0FH,然后将片内RAM 30H3FH的内容传送至片内RAM 404FH单元中,再将片内RAM 40H4FH单元中的内容传送到外部RAM 4800H480FH单元中,之后又将4800H480FH单元内容送到外部RAM 5800H580FH单元中,最后将片外RAM 5800H580FH单元内容传送回片内RAM 50H5FH单元中。 2、设置五个断点,断点地址分别为404AH,4056H,4063H,408CH,4099H,每运行到断点时,检查相应的CPU现场及存贮器单元的内容。,3、另设置七个断点,断点地址分别为4063H,4066H,406DH,406FH,4072H,4078H,407AH,每运行到断点时检查相应的SP,(SP),DPH,DPL的内容。 三、设计提示 1、在微机上编辑数据传送汇编语言程序源文件,然后进行机器汇编,将实验机器代码程序下载至实验装置。 2、实验步骤: (1)设置五个断点,断点地址分别为404AH,4056H,4063H,408CH,4099H。 (2)运行程序到第一个断点404AH,检查30H3FH单元内容及累加器A的内容。,(3)运行程序到第二个断点4056H,检查40H4FH单元内容及累加器A的内容。 (4)运行程序到第三个断点4063H,检查4800H480FH单元内容及累加器A,数据指针DPTR的内容。 (5)运行程序到第四个断点408CH,检查5800H580FH单元内容及累加器A,数据指针DPTR的内容。 (6)运行程序到第五个断点4099H,检查50H5FH单元内容及累加器A,数据指针DPTR的内容。 (7)清除以上所设断点,另设七个断点,断点地址分别为4063H,4066H,406DH,406FH,4072H,4078H,407AH。 (8)每运行到一个断点,分别检查SP,(SP),DPH,DPL内容。,3、实验测量数据表格如下。 表格(一),表格(二),四、实验报告要求 1、写出实验程序清单。 2、将测得的数据填入表格,并和理论分析的结果相比较。 3、实验报告格式参照实验报告说明。 五、实验思考与总结 1、说明MCS-51系列单片机对片内RAM和片外RAM存贮器各有哪些寻址方式? 2、说明指令MOV A,20H和MOV C,20H中的20H含义有什么不同?传送指令中的助记符 MOV,MOVX,MOVC各适用于访问哪个存储器空间? 3、根据实验结果,说明MCS-51系列单片机堆栈操作规则。,五、实验参考程序 ORG 4000H 4000:0140 AJMP MAIN ORG 4040H 4040:7830 MAIN:MOV R0, #30H; 4042:7A10 MOV R2, #10H; 4044:E4 CLR A; 4045:F6 A1: MOV R0, A; 4046:08 INC R0; 4047:04 INC A; 4048:DAFB DJNZ R2, A1;,404A:7830 MOV R0, #30H;把片内RAM 303FH 404C:7940 MOV R1, #40H;内容传送到片内RAM 404E:7A10 MOV R2, #10H;40H4FH单元中 4050:E6 A2:MOV A, R0; 4051:F7 MOV R1, A; 4052:08 INC R0; 4053:09 INC R1; 4054:DAFA DJNZ R2, A2;,MOV R1, #40H;把片内RAM 404FH 4058:904800 MOV DPTR,#4800H;内容传送到片外RAM 405B:7A10 MOV R2, #10H;4800480FH单元中 405D:E7 A3:MOV A, R1; 405E:F0 MOVX DPTR,A; 405F:09 INC R1; 4060:A3 INC DPTR; 4061:DAFA DJNZ R2, A3;,MOV SP, #60H; 把片外RAM 4800 4066:7A10 MOV R2, #10H; 480FH内容传送到片 4068:904800 MOV DPTR,#4800H;外RAM 5800580FH 406B:C082 PUSH DPL; 单元中 406D:C083 PUSH DPH; 406F:905800 MOV DPTR, #5800H; 4072:AB82 MOV R3, DPL; 4074:AC83 MOV R4, DPH;,A4:POP DPH; 4078:D082 POP DPL; 407A:E0 MOVX A, DPTR; 407B:A3 INC DPTR; 407C:C082 PUSH DPL; 407E:C083 PUSH DPH; 4080:8B82 MOV DPL, R3; 4082:8C83 MOV DPH, R4; 4084:F0 MOVX DPTR,A; 4085:A3 INC DPTR; 4086:AB82 MOV R3, DPL; 4088:AC83 MOV R4, DPH; 408A:DAEA DJNZ R2, A4;,MOV R0, #50H; 把片外RAM 5800 408E:905800 MOV DPTR,#5800H;580FH内容传送回片 4091:7A10 MOV R2, #10H; 内RAM 505FH单元 4093:E0 A5:MOVX A, DPTR; 4094:F6 MOV R0, A; 4095:08 INC R0; 4096:A3 INC DPTR; 4097:DAFA DJNZ R2, A5; 4099:80FE HERE:SJMP HERE; END,定时器/计数器及中断系统的应用,一、实验目的 掌握定时器/计数器及中断系统的使用 方法。 掌握Proteus软件与Keil软件的使用方法。 二、设计要求 1、在P 1.0口线上产生周期为500微秒的连续方波。,2、连续方波产生的时刻由按键K控制。 三、设计提示 1、用Proteus软件画出电路原理图。 2、按键K作为外部中断源使用。 3、定时器/计数器可采用查询或中断方式工作。 4、在P 1.0口线上接示波器观察波形。,四、实验报告要求 1、列出实验程序清单。 2、实验报告格式参照实验报告说明。 五、实验思考与总结 1、如何产生周期为500微秒,占空比为2:5的连续矩形波。 2、总结本实验用到的知识点。,MCS-51系列单片机P1口、P3口的应用,一、实验目的 1、学习MCS-51系列单片机的P1口和P3口的使用方法。 2、学习延时子程序的编写。 3、学习汇编语言编程方法与调试技巧。 4、掌握Proteus软件与Keil软件的使用方法 。 二、设计要求 1、P1口灯亮实验 P1口作输出口,接八只发光二极管,使发光二极管循环点亮。,2、P1口转弯灯实验 P1.0接+5V时,右转弯灯闪亮; P1.1接+5V时,左转弯灯闪亮; P1.0,P1.1同时接+5V或接地时,转弯灯均不闪亮。 3、P3口输入,P1口输出实验 从P3.3口线输入一脉冲,P1口按十六进制加一方式点亮发光二极管。 三、设计提示 1、P1口灯亮实验程序流程框图如图所示。将P1.0P1.7用扦针连至L1L8,运行程序,注意观察发光二极管闪亮移位情况。,2、P1口转弯灯实验程序流程框图如图所示。将P1.0接K1,P1.1接K2,P1.4P1.7接L1,L5,L9,L13,运行程序,观察转弯灯闪亮情况。 3、P3口输入,P1口输出实验程序流程框图如图所示。将P3.3用扦针连至K1,P1.0P1.7扦针连至L1L8,运行程序,K1拨动一次,注意观察L1L8发光二极管点亮变化情况。 四、实验报告要求 1、列出各实验程序清单。 2、实验报告格式参照实验报告说明。,五、实验思考与总结 1、对于P1口亮灯实验,如何修改程序,使发光二极管闪亮时间改变以及使发光二极管闪亮移位方向改变。 2、对于P1口转弯灯实验,如何使用单步方式调试本程序 (提示:如何修改延时子程序)。 3、对于P3口输入,P1口输出实验,如何修改程序,使发光二极管以左移方式点亮。 4、总结本实验用到的知识点。,六、实验参考程序 1、P1口灯亮实验 ORG 0790H SE18: MOV P1, #0FFH; 送P1口 LO34: MOV A, #0FEH; L1发光二极管点亮 LO33: MOV P1, A; LCALL SE19; 延时 RL A; 左移位 SJMP LO33; 循环,ORG 07A0H SE19:MOV R6, #0A0H; 延时 LO36:MOV R7, #0FFH; LO35:DJNZ R7, LO35; DJNZ R6, LO36; RET END,2、P1口转弯灯实验 ORG 0C30H PX00:MOV P1, #0FFH; 初始化 PX03: MOV A, P1; MOV B, A; ANL A, #03H; CJNE A, #01H, PX01;满足只是P1.0为高条件吗? JB 00H, PX04; 闪烁标志位 CLR P1.4; CLR P1.5; 开右灯 SETB P1.6; SETB P1.7; 关左灯,MOV R2, #20H; LCALL DELY; 延时 SETB 00H; 置标志位 LJMP PX03; 继续查状态 PX04: SETB P1.4; SETB P1.5; SETB P1.6; 关灯 SETB P1.7; MOV R2, #20H; LCALL DELY; 延时 CLR 00H; 清标志位 AJMP PX03; 继续查状态,PX01: CJNE A, #02H,PX02;满足只是P1.1为高条件吗? JB 01H, PX05; 判标志位 SETB P1.4; SETB P1.5; 开左灯 CLR P1.6; CLR P1.7; 关右灯 MOV R2, #20H; 延时 LCALL DELY; SETB 01H; 置标志位 LJMP PX03; 继续查状态 PX05: SETB P1.4; SETB P1.5;,SETB P1.6; 关灯 SETB P1.7; MOV R2, #20H; LCALL DELY; 延时 CLR 01H; 清标志位 LJMP PX03; 继续查状态 PX02: SETB P1.4; SETB P1.5; SETB P1.6; 关灯 SETB P1.7; LJMP PX03; 继续,ORG 0213H 0213:C002 DELY: PUSH 02H; 延时 0215:C002 DEL2: PUSH 02H; 0217:C002 DEL3: PUSH 02H; 0219:DAFE DEL4: DJNZ R2, DEL4; 021B:D002 POP 02H; 021D:DAF8 DJNZ R2, DEL3; 021F:D002 POP 02H; 0221:DAF2 DJNZ R2, DEL2; 0223:D002 POP 02H; 0225:DAEC DJNZ R2, DELY; 0227:22 RET,3、P3口输入,P1口输出实验 ORG 0810H J100: MOV A, #00H J101: JB P3.3,J101; MOV R2, #20H; LCALL DELY; JB P3.3,J101; P3.3电平为低吗? J102: JNB P3.3,J102; MOV R2, #20H; LCALL DELY; JNB P3.3,J102; P3.3电平高吗? INC A; 加1 PUSH ACC; CPL A; 取反 MOV P1, A; 驱动发光二极管 POP ACC; AJMP J101; 循环,ORG 0213H 0213:C002 DELY: PUSH 02H; 延时 0215:C002 DEL2: PUSH 02H; 0217:C002 DEL3: PUSH 02H; 0219:DAFE DEL4: DJNZ R2, DEL4; 021B:D002 POP 02H; 021D:DAF8 DJNZ R2, DEL3; 021F:D002 POP 02H; 0221:DAF2 DJNZ R2, DEL2; 0223:D002 POP 02H; 0225:DAEC DJNZ R2, DELY; 0227:22 RET,8255的应用,一、实验目的 1、掌握MCS-51系列单片机与8255的接口设计方法。 2、熟悉8255芯片初始化程序的设计方法。 3、掌握Proteus软件与Keil软件的使用方法。,二、设计要求 1、在8255的PA口上接八个发光二极管,使之轮流循环点亮。 2、在8255的PB口上接八个发光二极管,按特定模式点亮。 3、利用8255做输出口,控制十二个发光二极管的亮灭,模拟交通灯管理。 要求:执行程序,初始态为四个路口的红灯全亮之后,东西路口的绿灯 亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后,东西路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,再切换到东西路口方向,之后重复以上过程。,三、设计提示 1、利用Proteus软件绘制电路原理图; 2、利用Keil软件编制并调试好实验程序; 3、在Proteus上仿真实验结果 。 四、实验报告要求 1、列出实验程序清单; 2、实验报告格式参照实验报告说明。 五、实验思考与总结 1、总结本实验用到的知识点。,多分支及数据排序,一、实验目的 1、进一步掌握MCS-51系列单片机汇编语言程序设计的方法。 2、学会编写多分支应用程序、显示、延时程序。 3、学会采用冒泡法编写数据排序程序。 4、掌握Proteus软件与Keil软件的使用方法 。 二、设计要求 1、多分支程序的应用 (1)将00H,01H,02H,03H分别送入20H单元中,每次运行程序后,应观察到0,1,2,3从右向左循环移动。,(2)修改程序,再次将00H,01H,02H,03H分次送入20H单元中,每次运行程序后使0,1,2,3从左向右循环移动。 (3)修改程序,将00H,01H,02H,03H分次送入20H单元中,每次运行程序后,使4,5,6,7,8从右向左循环移动。 2、数据排序 (1)将片内RAM 50H5AH单元中的内容分别置为1AH,06H,3DH,4FH,10H,25H,7FH,05H,5BH,19H,60H。 (2)运行排序程序,将50H5AH中的十一个无符号数从小到大的次序排列。 (3)运行排序程序,将50H5AH中的十一个无符号数从大到小的次序排列。,三、设计提示 1、多分支程序流程框图如图所示。 (1)向系统输入多分支应用程序。 (2)将00H,01H,02H,03H分次送入20H单元中,调试运行程序,观察LED显示器显示结果。 (3)修改程序,使0,1,2,3从左向右循环移动,重新运行,注意观察LED显示器显示结果。 (4)修改程序,使4,5,6,7,8从右向左循环移动,重新运行,注意观察LED显示器显示结果。 2、数据排序程序流程框图如图所示。 (1)向系统输入数据排序程序。 (2)将给定的十一个无符号数依次置入50H5AH单元之中。,(3)调试运行程序,记录50H5AH单元的内容。 (4)修改程序,使数据按从大到小的次序排列。 (5)重新运行程序,记录50H5AH单元的内容。 四、实验报告要求 1、列出实验程序清单。 2、将每次程序的运行结果与理论分析结果相比较。 3、实验报告格式参照实验报告说明。 五、实验思考与总结 1、分析程序,如果要求改变字符显示的速度,应如何修改程序。 2、分析程序,如果要求显示字符从LED显示器上任一位置开始显示,如何修改程序。,3、分析程序,如果要求对MCS-51系列单片机外部RAM单元中的11个字节数据排序,应如何编写程序。 4、总结本实验用到的知识点。,六、实验参考程序 1、多分支程序 ORG OA10H 0A10:E520 MEMS: MOV A, 20H 0A12:900A17 MOV DPTR,#KKKK; 散转首址 0A15:23 RL A; (20)*2 0A16:73 JMP A+DPTR; 转到(20)*2+DPTR 0A17:411F KKKK: AJMP MEMSP0; 0A19:4125 AJMP MEMSP1; 0A1B:412B AJMP MEMSP2; 0A1D:8012 SJMP MEMSP3;,0A1F:7520C0 MEMSP0: MOV 20H, #0C0H; 0字循环 0A22:020DA0 LJMP SOX0; 0A25:7520F9 MEMSP1: MOV 20H, #0F9H; 1字循环 0A28:020DA0 LJMP SOX0; 0A2B:7520A4 MEMSP2: MOV 20H, #0A4H; 2字循环 0A2E:020
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年医保知识考试题库及答案:医保政策调整对医疗保险基金筹集的影响试题
- 2025年注册会计师考试《会计》会计分录专项模拟试题精讲与解析
- 人教版小学四年级艺术与人文教学计划
- 艺术教育后进生潜能开发计划
- 商会创新项目年度总结与未来计划
- 急救中心卒中快速反应计划
- 2025年幼儿园语言学习线上教学计划
- 初中道德与法治信息化教学应用计划
- 幼儿园学习资源共享计划
- 小学二年级秋季学期家长沟通计划
- 围手术期的营养治疗
- 食堂从业人员绩效管理考核专项方案
- 幼儿园游戏活动评价
- (正式版)SHT 3075-2024 石油化工钢制压力容器材料选用规范
- 机器人发展史课件完整版
- 2024年中国诗词大会知识竞赛模拟题库及答案(120题)
- 2024年浙江杭州市高三二模高考数学模拟试卷试题(含答案)
- 赔偿谅解协议书食品安全事故赔偿
- 抖音本地生活培训课件
- 2023年安徽公务员录用考试行测真题及解析
- 动态心电图及动态血压课件
评论
0/150
提交评论