单片机发送at指令指令题目

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
【精品】MCS51单片机试题及答案
下载积分:620
内容提示:【精品】MCS51单片机试题及答案
文档格式:DOC|
浏览次数:27|
上传日期: 03:28:06|
文档星级:
全文阅读已结束,如果下载本文需要使用
 620 积分
下载此文档
该用户还上传了这些文档
【精品】MCS51单片机试题及答案
关注微信公众号单片机试题库(有答案)_中华文本库
第6页/共26页
A.保护断点
B.保护现场
C.保护现场,恢复现场
D.保护断点,恢复断点
41.MCS-51寻址方式中,操作数Ri 加前缀“@”号的寻址方式是
A.寄存器间接寻址
B.寄存器寻址
C.基址加变址寻址
D.立即寻址
42.MCS-51寻址方式中,立即寻址的寻址空间是
A.工作寄存器R0~R7
B.专用寄存器SFR
C.程序存储器ROM
D.片内RAM 的20H ~2FH 安节中的所有位和部分专用寄存器SFR 的位
43.MCS-51寻址方式中,直接寻址的寻址空间是
A.工作寄存器R0~R7
B.专用寄存器SFR
C.程序存储器ROM
D.数据存储器256字节范围
44.执行指令MOVX
A,@DPTR时,WR 、RD 脚的电平为
A.WR 高电平,RD 高电平
B.WR 低电平,RD 高电平
C .WR 高电平,RD 低电平
D.WR 低电平,RD 低电平
45.主程序中调用子程序后返回主程序,堆栈指针SP 的值
46.单片机中使用MOVX
A,@R1指令,
寻址数据存储器1050H 单元。
A .能直接
C.与P2口配合能
D.与P1口配合能
47.下列指令判断若P1口最低位为高电平就转LP ,否则就执行下一句的是
B.JB P1.0,LP
C.JC P1.0,LP
D.JNZ P1.0,LP
48.指令JB OEOH,LP 中的OEOH 是指
A.累加器A
B.累加器A 的最高位
C.累加器A 的最低位
D .一个单元的地址
49.下列指令中比较转移指令是指 B
A . DJNZ Rn,rel
B.CJNE Rn,#data,rel
C.DJNZ direct,rel D.JBC bit,rel
50.指令MOV R0,#20H执行前(R0)=30H,(20H )=38H,执行后(R0)=
51.指令MOV R0, 20H执行前(R0)=30H,(20H )=38H,执行后(R0)=
52.执行如下三条指令后,30H 单元的内容是
MOV R1,#30H
MOV 40H,#0EH
MOV @R1,40H
54.MCS-51指令MOV R0,#20H中的20H 是指
B.内部RAM20H
C.一个数的初值
D .以上三种均有可能,视该指令的在程序中的作用
55.MCS-51单片机在执行MOVX A,@DPTR指令时,其寻址单元的地址是由 B
A.P0口送高8位,P2口送高8位
B.P0口送低8位,P2口送高8位
C .P0口送低8位,P2口送低8位
D.P0口送高8位,P2口送低8位
56.在MCS-51指令中,下列指令中
是无条件转移指令。
第6页/共26页
寻找更多 ""51单片机接收到指令后的控制问题 - 单片机/MCU论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
51单片机接收到指令后的控制问题
17:09:59  
& && & 我最近在做套用AT89S52开发的控制柜的板子, 是利用RS485的方式从上位机通过单片机控制40个接口。
& && &协议、通信、控制功能都已经实现了,现在为了加强协议的抗干扰性,在协议里面加了一位“01”和“04”命令标识,例如我发送 68 01 01 06 01 00 00 00 8C,单片机接收到这串指令后,只是通过译码器识别40个接口的高低电平的状态,而不通过译码器发送这串指令去控制任何一个接口的高低电平,然后再给上位机发送一串指令,让上位机知道40个接口的状态;我要是发送68 01 04 06 01 00 00 00 8C,单片机接收到这串指令后,通过译码器将1号接口置为高电平,然后再给上位机发送一串指令,让上位机知道40个接口的状态;
& && &目前程序流程就是上位机发一组指令,单片机返回一组指令,我现在在协议里加上命令标示后(“04”好说,保存原状就行)当单片机收到带“01”的指令后,怎么样不向译码器发送这串指令去控制接口,并且读一遍所有接口的状态返回给上位机?怎么样通过程序控制单片机如何处理接收到的指令?
& && &下面是我写得这部分功能代码,那位专家帮忙指导下,如做过类此的东西,能直接附上代码让我学习下最好了!!!!谢谢
void main(void)
{
UART_init();& && &&&//初始化串口
LED=0;& && && && && && &//red lamp& &
RS485E=0;& && && && && && &//green lamp& &
& &&&
//&&addr_re();
(*((void (*)())(addr_re)))();&&// 执行上一行代码,将rst数组当函数调用
(*((void (*)())(rq)))();
//UART_init();& && &&&//初始化串口
for(i = 0;i & 10 ;i++)
{
& && && &//首先发送一次数据作为测试用
& &(*((void (*)())(COM_send)))();
}
while(1)& &
{
& &if(read_flag==1)&&//如果取数标志已置位,就将读到的数从串口发出
&&{
& &&&RS485E=1;
& & (*((void (*)())(COM_send)))();
& &_nop_();
& &read_flag=0; //取数标志清0
&&}
else
&&{
& &RS485E=0;&&
&&}
&&WDI=1;
//;_nop();
&&}&&
}
复制代码
这里是协议定义的内容,协议我写在中断里面了。
&P& case 2: //命令标示
& && && &if(temp==0x01)&&
& &{
& & cmd_order=&/P&
&P&& & &STRONG& //单片机只识别不发送的功能
&/STRONG&& & state=3;
& &}
& && & else if(temp==0x04)&&
& &{
& & cmd_order=
& & state=3;
& &}
& &else
& &{
& & rc_index=0;
& & state=0;
& & MSG_LEN=0;
& & sum=0;
& && &}
&&
&&case 3: //接收数据长度
& &if(temp&=7)
& &{
& & MSG_LEN=
& & prar_len=MSG_LEN-1;
& & state=4;
& &}
& &else
& &{
& & rc_index=0;
& & state=0;
& & MSG_LEN=0;
& & sum=0;
& &}
&&
&&case 4: //获取命令参数
& &rbut[rc_index]=
& &sum=sum+
& &rc_index=rc_index+1;
& &if(rc_index&=prar_len)&&state=5;
&&&/P&复制代码
21:56:01  
(*((void (*)())(COM_send)))();
这个怎样看啊,好像好高深
14:35:41  
PCB在线计价下单
板子大小:
板子数量:
PCB 在线计价
个人觉得你的思路有点局限,没有理清整个程序框架。
首先应当确定一套通信协议,但这个通信协议并不是直接用于控制,而是使需要传送的数据能准确无误的发送和接收,打个比方,要发送的数据是货物,而这个协议是汽车,汽车只负责完整的确保货物被送达,而不参与控制。
接下来就是将要发送的数据通过该协议打包,接收的数据从该协议拆包。这个应数据底层程序,其实是非常简单的。
再说控制,通过通信协议拆解出的数据已经是正确数据了,那么只需要设定另一套控制的协议即可。这点不用多说应该也明白了。
总的来说,做通信控制应包含两层协议,第一是数据通信协议,即保正传输的数据能正确完整的接收。
第二是应用层面的数据协议,就是指通过第一层协议承载的有用数据的数据格式。这样有条理的设计程序才是最佳。
补充一点,在串口中断中一般不允许过长的程序,但可以将第一层数据同信协议做在里面。
00:15:49  
都是大师,我想凑个热闹都不好意思
09:59:48  
大师们你们速度解答我来像你们学习的来了
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司单片机的指令系统练习题
单片机的指令系统习题 一、选择题 1、执行下列3条指令后,30H单元的内容是 (c )
D)FFH 2、在堆栈中压入一个数据时 ( )
A)先压栈,再令SP+1
B)先令SP+1,再压栈
C)先压栈,再令SP-l
D)先令SP-1,再压栈 3、在堆栈操作中,当进栈数据全部弹出后,这时的SP应指向
A)栈底单元
C)栈底单元地址加1
D)栈底单元地址减l 4、指令MOVC A,@A+PC源操作数的寻址方式是
A)寄存器寻址方式
B)寄存器间接寻址方式
C)直接寻址方式
D)变址寻址方式 5、ANL 20H,#30H指令中,源操作数的寻址方式是 b
A)立即寻址方式
B)直接寻址方式
C)位寻址方式
D)相对寻址方式 6、ANL
C,/30H指令中,源操作数的寻址方式是
A)立即寻址方式
B)直接寻址方式
C)位寻址方式
D)相对寻址方式 7、Jz
rel指令中,操作数rel的寻址方式是
A)立即寻址方式
B)直接寻址方式
C)位寻址方式
D)相对寻址方式 8、Jz
rel指令中,是判断(c)中的内容是否为0。
D)PC 9、MOVX
A,@DPTR指令中源操作数的寻址方式是(b)
A)寄存器寻址 (B)寄存器间接寻址(C)直接寻址 (D)立即寻址 10、下面条指令将MCS-51的工作寄存器置成3区()
PSW,#13H (B)MOV
PSW,#18H 11、MOV
C,00H指令中源操作数的寻址方式是(d)
B)直接寻址
C)立即寻址
D)寄存器寻址 二、填空题 1、8051单片机共有 7
种寻址方式。访问外部数据存储器应采用寄存器间接寻址方式。 2、访问外部数据存储器应采用
寄存器间接
寻址方式;查表应使用
变址 寻址方式。 3、在8051单片机中,堆栈操作的指令有
两个。 4、在8051单片机中,子程序调用的指令有 ACALL
两个。 5、CJNE指令都是
字节指令。 6、指令SJMP
$ 的功能是无条件转移到本指令的首地址执行程序,即将本指令的首地址送给PC
。 7、十进制调整指令DA
A不能单独执行,在执行该指令之前必须先执行
指令或者 ADDC
指令。 8、位转移指令都是采用
寻址方式实现转移的。 9、子程序必须使用 RET 指令返回主程序,而中断服务程序必须使用 RETI
指令返回主程序。 10、PUSH指令是实现把数据压入堆栈的操作,而POP指令是实现把数据从堆栈中弹出的操作。 11、执行了DIV
AB指令后,则商存放在 A 中,余数存放 B
中。 12、执行了MUL
AB指令后,则积的高8位存放在
B 中,而积的低8位存放在
。 13、在MCS-51单片机中,加法指令可以分为 ADD
两种。 14、读程序存储器指令有 MOVC A,@A+DPTR
和 MOVC A,@A+PC 两个,它们的源操作数都属于
寻址方式。 15、减法指令的助记符为 SUBB
,其作用是将累加器A中的内容减去源操作数,再减去进位位C的内容,所得的结果存入累加器A。
16、INC指令的功能是
将操作数加l后存放到原处
,DEC指令的功能是
将操作数减1后存放到原处
。 17、在立即寻址方式中,在数前使用
号来表示立即数。 18、在立即寻址方式中,立即数一定出现在
操作数中。 19、在执行MOVX
A,@R0指令时,源操作数的高8位是由
寄存器提供的。 20、访问外部数据存储器必须使用
指令。 三、判断题
()子程序的调用call
1、在堆栈操作中,当栈内的数据全部弹出后,这时的SP指向栈底单元。(√
) 2、在堆栈操作中,当栈内的数据全部弹出后,这时的SP指向栈顶单元。(
×) 3、数据传送指令将改变源操作数的内容。(× ) 4、调用子程序指令(如:CALL)及返回指令(如:RET)与堆栈有关但与PC无关。(×) 5、堆栈遵循数据先进后出,后进先出的原则。(√
) 6、在MCS-51单片机中,堆栈的地址随着压栈数据从小到大递增。(√
) 7、子程序返回可以使用RET指令,也可以使用RETI(子程序中断返回指令)指令。(× ) 8、ACALL指令是2字节指令,而LCALL指令是3字节指令。(√
) 9、空操作指令不占机器周期。(× )有延时的作用 10、减法指令只有带借位的减法,没有不带借位的减法。(√
) 11、加法指令只有带进位的加法,没有不带进位的加法。(× ) 12、不能使用无条件转移指令直接从子程序中转到主程序中去。(√
) 四、应用题 1、说明下列指令中各个操作数的寻址方式。 (1)ADD
A,30H (2)MOV
30H,20H (3)MOV
A,@R0 (4)MOVX
A,@R1 (5)SJMP
R0,#20H (7)ORL
C,00H (8)MOV
DPTR,#2000H (9)MOVC
A,@A+PC (10)ANL
20H,#30H (11)ANL
C,/30H (12)CPL
20H (15)ADD
A,@R1 (16)MOVC
A,@A+DPTR (17)DJNZ
00H 解答: (1)解答:源操作数为:直接寻址方式:目的操作数为:寄存器寻址方式。 (2)解答:源操作数为:直接寻址方式;目的操作数为:直接寻址方式。 (3)解答:源操作数为:寄存器间接寻址方式;目的操作数为:寄存器方式。 (4)解答:源操作数为:寄存器间接寻址方式;目的操作数为:寄存器寻址方式。 (5)解答:操作数为:相对寻址方式。 (6)解答:源操作数为:立即寻址方式;目的操作数为:寄存器寻址方式。 (7)解答:源操作数为:位寻址方式;目的操作数为:位寻址方式。 (8)解答:源操作数为:立即寻址方式;目的操作数为:寄存器寻址方式。 (9)解答:源操作数为:变址寻址方式;目的操作数为:寄存器寻址方式。 (10)解答:源操作数为:立即寻址方式:目的操作数为:直接寻址方式。 (11)解答:源操作数为:位寻址方式;目的操作数为:位寻址方式。 (12)解答:操作数为:位寻址方式。 (13)解答:操作数为:寄存器寻址方式。 (14)解答:操作数为:位寻址方式。 (15)解答:源操作数为:寄存器间接寻址方式:目的操作数为:寄存器寻址方式。 (16)解答:源操作数为:变址寻址方式;目的操作数为:寄存器寻址方式。 (17)解答:源操作数为:相对寻址方式;目的操作数为:寄存器寻址方式。 (18)解答:操作数为:位寻址方式。 2、写出下列程序的运行结果。 (1)MOV
SP,# 40H MOV
A,#20H MOV
B,#30H PUSH
(B)=? 解答:(SP)=40H,(A)=30H,(B)=20H
SP,#40H MOV
A,#20H MOV
B,#30H PUSH
(B)=? 解答:(SP)=40H , (A)=20H,(B)=30H (3)MOV
R0,#7EH MOV
DPTR.#10FEH MOV
7EH,#0AAH MOV
7FH.#0BBH INC
R0 (7EH)=?
(DPTR)=? 解答:(7EH)=0ABH , (7FH)=0BCH,(R0)=7FH , ((R0))=0BCH,
(DPTR)=10FFH
R0,#00H MOV
A,#20H MOV
B,#0FFH MOV
20H,#0F0H XCH
(R0)=? 解答:(A)=F0H
(R0)=20H 3、在设A=0FH,R0=30H,内部RAM的(30H)=0AH、(31H)=0BH、(32H)=0CH,请指出在执行下列程序段后上述各单元内容的变化。
R0,#31H MOV
A,@R0 解答:R0=31H, A=0BH , (30H)=0CH、(31H)=0BH、(32H)=0AH 4、请用数据传送指令来实现下列要求的数据传送。 (1)
R0的内容输出到R1 解答:MOV
R1,A (2)
内部RAM20H单元的内容传送到A中。 解答:MOV
A,20H (3)
外部RAM30H单元的内容送到R0。 解答:MOV
R0,#30H MOVX
R0,A (4)
外部RAM30H单元的内容送内部RAM20H单元。 解答:MOV
R1,#30H MOVX
20H,A (5)
外部RAM1000H单元的内容送内部RAM20H单元。 解答:MOV
DPTR,#1000H MOVX
A,@DPTR MOV
20H,A (6)
程序存储器ROM2000H单元的内容送R1。 解答:MOV
DPTR,#2000H CLR
A,@A+DPTR MOV
R1,A (7)
ROM2000H单元的内容送到内部RAM20H单元。 解答:MOV
DPTR,#2000H CLR
A,@A+DPTR MOV
20H,A (8)
ROM2000H单元的内容送外部RAM30H单元。 解答:MOV
DPTR,#2000H CLR
A,@A+DPTR MOV
R0,#30H MOVX
@R0,A (9)
ROM2000H单元的内容送外部RAM1000H单元。 解答:MOV
DPTR,#2000H CLR
A,@A+DPTR MOV
DPTR,#1000H MOVX
@DPTR,A 5、设A=5AH,R1=30H,(30H)=E0H,Cy=1。分析下列各指令执行后A的内容以及对标志位的影响(每条指令都以题中规定的原始数据参加操作)。 (1)XCH
;A=30H (2)XCH
;A=E0H (3)XCH
;A=E0H (4)XCHD
;A=50H (5)SWAP
;A=A5H (6)ADD
;A=8AH (7)ADD
;A=30H (8)ADD
;A=8AH (9)ADDC
联系客服:cand57</

我要回帖

更多关于 单片机比较大小指令 的文章

 

随机推荐