一些关于单片机的问题,求高手解答

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-04
求高手解答单片机问题!!!

21 程序,数据
22先写1,接上拉电阻
23 数据总线 地址总线 控制总线 数据总线
24reti
25 XOR P1 0X0F; AND P1 0x0F;
26 数据和地址复用 地址总线高8位 外接地址锁存器
27 外中断0 定时器0 外中断1 定时器1 串口中断

1、答案:00H,LCALL调用把地址0221H放到堆栈中,先低后高,所以08H是00H,PC也会变化,这里就不说了
2、十进制变成二进制不能一位对应四位,那个是十六进制变成2进制的方法。。。。

5.......数组指定了外部ram地址后,把定义数组和赋初值语句分成两个语句写就可以了:
exp:
unsigned char xdata Data0[48]_at_ 0x0000;
Data0[0]=x;Data0[1]=x;Data0[2]=x;Data0[3]=x;
个人觉得完全没有必要赋初值,需要写入数据的时候直接写入就可以了,如果是作为常量使用那就不用这种声明了。
6.....存储器一般都有WR,RD,CS线以及地址端口、数据端口,有些数据地址端口复用,有些分开。看这些存储器的datasheet就会明白如何访问他们内部的数据。例如读出外部ram地址为0x0001里的数据(假设有这个地址),那么就WR置高,CS置低,地址线上输出0x0001,那么CPU的数据线就可以等到需要的数据了,这种情况下CPU的I/O只是做普通的I/O口。但是一般单片机和ARM都能够把I/O选择作为外部存储器的访问口,这时只要根据datasheet里的说明,把相应的线连上,CPU就能够根据你的指令自动在时序上配合,使得访问外部设备就像访问内部ram一样,这样做的好处就是节省CPU时间。
7...................................
unsigned char 后面加 idata 就可以了

5、访问外部 RAM 单元可以采用哪些寻址方式?
寄存器间接寻址。
寄存器可用:DPTR、R0、R1。
指令格式:
MOVX A, @DPTR
MOVX @DPTR, A
MOVX A, @Ri
MOVX @Ri, A

----------------------
6、访问外部程序存储器可以采用哪些寻址方式?
变址寻址。
指令格式有两种:
MOVC A, @A + PC
MOVC A, @A + DPTR
----------------------
7、对于 80C52 单片机内部 RAM 还存在高 128 字节,应采用何种 方式访问?
对于单片机内部 RAM 的高 128 字节,应采用寄存器间接寻址方式。

指令格式:

MOV A, @Ri
MOV @Ri, A

5.访问片外RAM只有寄存器间接寻址MOVX A,@DPTR,MOV A,@RI,MOV @DPTR.A,MOV @RI,A,只有这四个指令
6.
1. MOV AX, ES:[1000H]源操作数的寻址方式是? 直接寻址
2. MOV AX, BAH[DI]源操作数的寻址方式是? 寄存器相对寻址
3. MOV AX, COUNT[BX]源操作数的寻址方式是? 寄存器相对寻址
4. MOV AX, COUNT[AX]源操作数的寻址方式是?
MOV AX, COUNT[BX]寄存器相对寻址,MOV AX, COUNT[AX]是错的

5. MOV [AX], COUNT[BX][DI]源操作数的寻址方式是? 相对基址变址寻址
6. MOV [BX], COUNT[BX][DI]源操作数的寻址方式是? 相对基址变址寻址
7. MOV AX, COUNT[BX][BP]源操作数的寻址方式是? 错的
8. MOV AX, COUNT[BX][SI]源操作数的寻址方式是?相对基址变址寻址

7.必须采用寄存器间接寻址

5. 访问外部 RAM 单元可以采用以下几种寻址方式
MOVX A,@R0
MOVX A,@R1
MOVX A,@DPTR
MOVX @R0,A
MOVX @R1,A
MOVX @DPTR,A

6. 访问外部程序存储器可以采用以下几种寻址方式
MOVC A, @A+DPTR
MOVC A, @A+PC

7. 对于 80C52 单片机内部 RAM 还存在高 128 字节,应采用以下几种方法
MOV A,@R0
MOV A,@R1
MOV @R0,A
MOV @R1,A
MOV @R0,#data 立即数到R0
MOV @R1,#data
MOV @R0,direct 直接地址单元中的数据到R0
MOV @R1,direct

  • 单片机问题,求高手解答……
    答:假设是 51 单片机。5.MOV A, XMOV B, YMUL ABMOV B, ZDIV ABMOV 7FH, AEND;---(1)什么是时间常数? 是初始值吗?在 6MHz 条件下,定时 500ms 是做不到的。按照定时 100ms 计算,中断 5 次就是 500ms。初始值=65536 - 100000 / 2 =15536=3CB0H(2) ORG 0...
  • 使用pic单片机时,遇到问题,求高手
    答:从字面上说,是调试器找不到相应的芯片。可能的问题是,你在MPLAB IDE上选的芯片型号与板上不对;你的调试器接线不对;或者你的烧写线的硬件中相应的引脚(VPP,PGD,PGC)并有电容,要把这些电容去了!
  • 新手学习单片机的疑问,求高手解答,关于dptr和keil的memory C:0x0000与...
    答:MOV DPTR,#ASCIIAB 作用是是获取 ASCIIAB: DB '0123456789ABCDEF' 这个表格在程序中的首地址,也就是‘0’的地址;DPTR 是51单片机里面的数据指针;MOVC A,@A+DPTR 这句指令就实现了查表,表格的首地址在DPTR里面,偏移地址在A里面,A+DPTR就是数据地址了,这就是查表;C:0x0000 指的是...
  • 求单片机高手解答!
    答:你先定义一个变量a,但是没给变量a赋值啊,所以默认是0,然后单片机直接运行主程序main函数,所以直接执行第一行代码,即把a的值给P1,那么P1=a=0;所以全亮了,然后再把0x55的赋给了a,但是这时候程序早就输出了啊,而且你没有写while循环,所以程序只做了一遍,你的赋值没软用,应该写在第一行...
  • 2000分 请教几个单片机串行通信的问题 (高手进)
    答:问题1:在设置串行启动(初始化)时,SMOD=1,此时恰好PCON=80H,用汇编就是 MOV PCON,#80H,原因:SMOD是波特率选择位,当串行口工作方式位1、2和3时,波特率和2的SMOD次方成正比,而SMOD=1,既2的SMOD次方等于2,所以波特率倍增。问题2:当上位机给单片机发指令时,数据到了SBUF中,产生RI=1,...
  • 求单片机高手解答!!!后天之前解答呀!!~!
    答:1、 MOV R0,#01H (R0)=01H CLR A 取反 MOV R2,#09H (R2)=09H LOOP: ADD A,R0 A跟R0相加 INC RO R0加1 DJNZ R2,LOOP 如果R2=0往下执行否则循环 MOV R3,A 把A的值送给R3 HERE:SJMP HERE 2、 ORG 0000H 起始地址 MOV DPTR,#0100H DPTR=01...
  • 单片机程序问题。求高手解答下,急急急,没分分了,求好心人解答下
    答://时钟程序,上电后显示8点,然后,开始计时。经过protues仿真的。include<reg51.h> unsigned char code table1[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};sbit d4=P1^4;sbit d5=P1^5;sbit d6=P1^6;sbit d7=P1^7;unsigned char num0,num1,num2,num3,num4,...
  • 关于单片机的时钟模块MCG工作模式的疑问,求高手帮忙解答,谢谢。
    答:要这么多工作模式完全是为了应对客户不同的需求。FEI, 内部时钟,倍频,是默认的模式,可以省一个晶振(省钱),还可以省下两个晶振管脚当IO用。同时能达到高主频,保证运行速度。但是内部时钟不如用外部晶振精确,不适合需要精确定时的场合。FEE,外部晶振。可以用比较低频率的外部振荡器通过FLL倍频获得...
  • 单片机高手帮忙解答哈,初学者来请教,帮我解答一下问题
    答:1、T1作为波特率发生器只能工作在方式2(即自动重装载模式),你所说的两个模式是不一个概念,一个是定时器工作模式,一个是串口工作模式。2、SMOD当然也可以设为1,为1时波特率加倍。
  • 求,高手解答:下列的单片机问题,谢谢你们的支持了!
    答:PUSH DPH5.下列程序中注释的数字为执行该指令所需的机器周期数,若单片机的晶振频率为6MHz,问执行下列程序需要多少时间?MOV R3,#100;1 LOOP:NOP ;1 NOP NOP DJNZ R3,LOOP ;2 RET ; 2((3+2)*100+2)*2us=1004us 问答题从书上找吧,别人的答案不一定符合你的要求。