收藏 分销(赏)

单片机原理及其接口技术实验问答答案.doc

上传人:pc****0 文档编号:7449665 上传时间:2025-01-05 格式:DOC 页数:5 大小:28.50KB 下载积分:10 金币
下载 相关 举报
单片机原理及其接口技术实验问答答案.doc_第1页
第1页 / 共5页
单片机原理及其接口技术实验问答答案.doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
实验一(无符号数加法实验) 1 如果要实现2345+6789,程序应如何修改? 2 如果去掉程序中的两句“DA A”指令,有何实验现象?原因是什么? 3 如果将程序中的“ADDC”改为ADD”, 有何实验现象?为什么? 4 如果将程序中的“ADD”改为“ADDC”,程序是否正确?为什么? 解:1将程序中66改为23, 78改为45, 67改为67, 43改为89 2结果是十进制变为十六进制,原因是“DA A”指令是十进制调整指令。 3不能改为ADD,因为ADDC是带有进位CY的加法指令。 4 ADD一般情况下不能改为ADDC,因为缺少CY的进位,但是在本题中可以,因为不造成进位。 实验二 闪烁灯控制 1若将程序中的“SETB P1.1”改为“CLR P1.1”有何实验现象? 答:将程序中的“SETB P1.1”改为“CLR P1.1”,指示灯不闪烁,因为SETB是置位指令,P1.1输出置1,CLR使P1.1输出置0,置1端口开启,置0时端口关闭,因此不闪烁。 2若将程序中的“JNB P1.1,LOOP”改为“JB P1.1,LOOP”有何实验现象? 答:将程序中的“JNB P1.1,LOOP”改为“JB P1.1,LOOP”,会使闪光灯开关置0闪烁,因为闪光灯闪烁频率由RT控制。 3若要加快或减慢灯的闪烁频率,有何方法?为什么? 答:若要加快频率可将MOV R7,#10H改为MOV R7,#5H,减慢频率可将MOV R7,#10H改为MOV R7,#50H。 4若将P1.0改为与灯L7连接,有何实验现象?为什么? 答:P1.1与L7连接,则L7灯就变成了闪烁灯。因为当P1.0数据为1时,引脚上出现高电平,导致L7发光,反之,数据为0,P1.0引脚上出现低电平不发光。 5若将灯的开关控制由当前程序的P1.1控制改为由P1.5控制,应如何修改? 答:若将P1.1控制改为由P1.5控制,可以酱SETB P1.1改为SETB P1.5将 JNB P1.1改为 JNB P1.5,$ 6若将当前的P1.0与灯连接改为P1.3连接,应该如何修改程序? 答:若将当前P1.0与灯连接改为PL3灯连接,应将CPL P1.0G改为CPL P1.3。 跑动灯控制 1将程序中RL A改为RR A,有何实验现象? 答:将程序中RL A改为RR A,会使向左移动的【跑动灯变为右移 2将程序中MOV A,#88H改为MOV A,#77H,有何实验现象? 答:若将MOV A,#88H改为MOV A,#77H,会使原先10001000(88H的二进制数)变为01110111(77H的二进制数),会出现灭亮亮亮灭亮亮亮的实验现象。 3若将程序中MOV A.#88H改为MOV A,#66H,有何实验现象? 答01100110(66H的二进制数)变为向左移动的灭亮亮灭灭亮亮灭的现象。 4若将程序中MOV R7,#0F7H改为MOV R7,#83H,有何实验现象? 答:若将MOV R7,#0F7H改为MOV R7,#83H,则会使第一个灯无法正常跑动。 5若将程序中MOV R6#0FDH改为MOV R6,#92H,有何实验现象? 答:若将MOV R6#0FDH改为MOV R6,#92H,则第二个灯无法正常跑动。 6若要加快或减慢灯的跑动速度,可以修改哪些指令?为什么? 答:修改R5可改变跑动速度。 7若要将灯的起始顺序改为灭灭亮灭灭灭亮灭,应如何修改程序?为什么? 答:若将灯的起始顺序改为灭灭亮灭灭灭亮灭,可将MOV A#88H改为MOV A,#22H。因为00100010(22H的二进制数)。 实验三问题:(定时器应用) (1) 若将程序中“ORL P1,#02H”改为“CLR P1.1”,有何实验现象? (2) 若将程序中“ORL P1,#02H”改为“SETB P1.1” 有何实验现象? (3) 若将程序中“JB P1.1,LOOP1”改为“JNB P1.1,LOOP1”, 有何实验现象? (4) 若分别将程序中“CJNE R7,#05H,LOOP2”改为“CJNE R7,#03H,LOOP2”及“CJNE R7,#0FH,LOOP2”,各有何实验现象? (5) 若分别将程序中“SETB EA”、“SETB ET0”及“SETB TR0”改为“CLR EA”、 “CLR ET0”、 “CLR TR0”,各有何实验现象? (6) 若分别将程序中“MOV TH0,#3CH”及“MOV TL0,#0B0H”中的数值增加或减少,各有何实验现象?为什么? (7) 若将程序改为由定时器1定时,应如何修改程序? (8) 若要加快或减慢灯的闪烁频率,如何修改程序?为什么? 将“ORL,P1,#20H”改为“CLR  P1.1”则会使闪光灯在置0时闪烁,因为ORL为累加器的逻辑运算指令,CLR为置0置位指令,SETB为置1置位指令;将ORL  P1,#02H改为SETB P1.1会导致闪光灯在P1.1置1时闪烁;若将程序中“JB  P1.1,LOOP1”改为“JNB P1.1,LOOP”则会使原来的亮变为灭,灭变为亮;如果“CJNE R7,#05H,LOOP2”改为“CJNB R7,#03H,LOOP2”则会导致延时变短;若改为“CJNE R7,#0FH,LOOP2”则会使延时变长。若将SETB EA改为“CLR EA”,会导致闪光灯不闪烁。“SETB TR0”改为“CLR TR0”导致闪光灯不闪烁。 将MOV TH0,#3CH若常数体增加,会减少中断次数和中断时间,数值减小,将增加中断次数和中断时间,若程序改为定时器1定时, 改为SETB TR1,CLR TR0.若加快闪烁频率,可减小CJNE A的值,反之,增加CJNE A的值。 实验四(查表显示实验) 1, 右侧第一位数字显示5,需要怎样修改程序。 2, 右侧第三位数字显示3,需要怎样修改程序。 3, 右侧第一位和第三位数字显示7,需要怎样修改程序。 解:1 要将右侧第一位数字显示5,需将TABLE:DB后的数值改为6DH并将MOV A后的数值改为#01H 2要将右侧第三位数字显示3,则需将MOV A 后的数值改为#04H,将TABLE: DB后的数值改为4FH; 3要将右侧第一位和第三位数字显示7,则需将MOV A 后的数值改为#05H,将TABLE: DB后的数值改为07H; 实验6(A/D转换:) (1)若想使用外部中断1,如何修改程序?为什么? (2)若要将A/D转换后的数值放在41H内,如何修改程序? (3)寄存器R5有何作用?为什么? (4)程序中启动A/D转换的地址是多少?若不改变连线,这个地址是否唯一?为什么?若将启动A/D转换的地址改为7FFFH连线如何改变,这个地址是否唯一?为什么? (5)从显示程序分析,A/D转换结果是如何变为十进制数并逐位分离出来的?分离出来的每一位十进制数分别存放在何处? (6)从程序分析,显示所用的数码管共阴还是共阳?为什么? (7)显示程序中的“RL A”有何作用?为什么?“CJNE R7,#08H,DISP2”有何作用?为什么? (8)显示程序中的“DEC R0”有何作用?为什么? 使用外部中断时,要将中断DINT0改为INI1,如果将A/D转换后的数值放到41H中,则要MOV 40H,A----MOV 41H ,A.寄存器R5是用来控制程序的定时中断。启动A/D转换的地址为8000H,若不连线,则这个地址不唯一,要将A/D转换的地址为7FFFH,需将INT1中的MOV DPTR,#8000H----MOV DPTR ,#7FFFH. 将P1口接到P3口,这个地址是唯一的,从显示程序分析,A/D转换的结果,通过数据采集控制来实现的,分离后在XXX位,数码管共阳极,阴极可以改变。RL为累加器左循环,来控制程序左移。CJNE为寄存器与之即数不等转换,在R7中的#08H不等的则跳转到DISP2. DEC R0寄存器减小指令,来执行下一步。 实验7(步进电机控制:) (1)若要增加或减少步进电动机的转动步数,如何修改程序? (2)若要增加或减慢步进电动机的转动速度,如何修改程序? (3)若想将步进电动机的转向控制改为开、停控制,如何修改程序? (4)若想将现有步进电动机的正、反向控制改为反、正向控制,有哪些方法?为什么? (5)程序中的两句“MOV R0,#00H”分别有何作用?当其它程序不变时,其中的数字“#00H”能否改变?为什么? (6)若要将步进电动机的转向控制改为由P1.0控制,如何修改程序?连线有何变化? (7)若将程序中“ORL P1,#80H”改为“ANL P1,#80H”有何实验现象?为什么? “ORL P1,#80H”是否不能变,为什么? 步进电机控制: 若要增加或减少步进电动机的转动步数,如何修改程序? 当需要改变步进电动机的步数时,只需将四拍改为八拍即可增加步数,将A—B—C—D—A改为A—AB—B—BC—C—CD—D—DA—A,将TAB:DB后的88H,84H,82H,81H改为88H,80H,84H,89H,82H,83H,81H,86H,若要减少步数,DB后改为88H,84H,82H。 若要增加或减慢步进电动机的转动速度,如何修改程序? 当需要改变步进电动机的转动速度时,可改变脉的时间间隔,缩短或增加延时,DELY为延时指令,只需要MOV R7,#200H 200H变大则延时增加,速度变慢,200H变小则延时减小,速度变快。 若想将步进电动机的转向控制改为开、停控制,如何修改程序? 若想控制KO开关控制的效果,LOOP1中的循环不变,只需将LOOP2中的反转程序改为指令,后接END结束程序。 若想将现有步进电动机的正、反向控制改为反、正向控制,有哪些方法?为什么? 将正反控制改为反正控制,只需要将JNB为0转移指令改为JB为1转移指令;还可以将LOOP1中的程序和LOOP2中的程序多换一下;或者再输入TAB:DB后的程序改为88H,81H,82H,84H的顺序输入。 程序中的两句“MOV R0,#00H”分别有何作用?当其它程序不变时,其中的数字“#00H”能否改变?为什么? 程序输入的起始有一句“MOV R0,#00H”语句,首先将R0中清零,让程序从停止开始,同时给予反面的循环计数时的一个初始值,当00H改为其他数值时,当行动时,会陷入无限循环无数计数,正转LOOP1中也有一句“MOV R0,#00H”是为了在四拍结束时重新赋予一个初始值,如果将赋予其00H改变,四拍会变成五拍,六拍。 若要将步进电动机的转向控制改为由P1.0控制,如何修改程序?连线有何变化? 若要将步进电动机的转向控制改为由P1.0控制,将导线KO与P1.7接改为KO与P1.0连接,同时将程序中的P1.7改为P1.0,ORL相当于与指令,若改为ANL指令,P1中的数值会全部清零,灯将不亮,步进器无法转动。 若将程序中“ORL P1,#80H”改为“ANL P1,#80H”有何实验现象?为什么? “ORL P1,#80H”是否不能变,为什么? 80H不能变,因为如果变了,可能会其中一项置1,使其一直起作用。 实验8(8255操作实验)操作: (1)步进电动机的转动步数由何决定?为什么? (2)步进电动机的转速由什么决定? (3)程序中的“CJNE R0,#04H,ROTATE2” 有何作用?当其它程序不变时,其中的数字“#04H”能否改变?为什么? (4)举出1至3种改变步进电动机各相与8255口的连线但能保持步进电动机正常工作的方法。同时说明对应的程序如何修改? (5)若将“TAB1”中的数据与“TAB2”中的数据对调,有何实验现象?为什么? (6)若将程序中的“LJMP 2000H”改为“LJMP 1000H”,是否可以?为什么? 1.步进电动机转动步数是由步进电动机的节拍决定的,四拍一周期停4下,八拍停八下。 2.步进电动机的转速由延时程序决定,时间越长转速越慢。 3.“CJNE R0,#04H,ROTE2”的作用是判断30H是否溢,溢出则清零。#04H 不能变,因为只有#00H~#03H可以用来查表 4.改为A-PA1 B-PA2 C-PA3,则将“03H,06H,09H”改为“06H ,0CH,18H,12H” 6.“LJMP 2000H”改为“LJMP 1000H”不可以,除非把对应地址改为1000H
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服