AT89C51中指令movc a,@a+pc是什么意思?

我是单片机初学者,很多东西自己都弄不懂,我想请问一下:在单片机AT89C51中同程序存储器打交道的指令仅有两条,
movc a,@a+dptr
movc a,@a+pc 分别是什么意思啊?

  movc a,@a+dptr
从DPTR开始偏移A个地址的数读取到A中.
DPTR一般为数据段的首地址.
movc a,@a+pc
从PC指令地址开始偏移A个地址的数读取到A中.
PC为当前指令地址。
这两个指令都是从程序空间中读取数据。
  AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。为本科单片机教学主要芯片TMS320F2812,DSP原理与应用技术。
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-08-30
movc a,@a+dptr
从DPTR开始偏移A个地址的数读取到A中.
DPTR一般为数据段的首地址.
movc a,@a+pc
从PC指令地址开始偏移A个地址的数读取到A中.
PC为当前指令地址.

这两个指令都是从程序空间中读取数据.本回答被提问者采纳

AT89C51中指令movc a,@a+pc是什么意思?
movc a,@a+pc 从PC指令地址开始偏移A个地址的数读取到A中.PC为当前指令地址。这两个指令都是从程序空间中读取数据。AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。为本科单片机教学主要芯片TMS320F2812...

at89c51什么意思
AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制...

编一个AT89C51单片机00 —99 秒的汇编程序,要求有循环和暂停,用两个...
MOVC A,@A+DPTR MOV P0,A SETB LATCH1 CLR LATCH1 MOV P0,#11111101B ;0代表选通该位数码管 SETB LATCH2 CLR LATCH2 CALL DELAY1 RET DELAY:MOV R5,#50 ;典型延时程序 D1: MOV R6,#40 D2: MOV R7,#248 CALL SCAN DJNZ R7,DJNZ R6,D2 DJNZ R5,D1 RET DELAY1:MOV ...

求用单片机设计一个秒表AT89C51
MOVC A, @A+DPTR ;查出段码 MOV P2, A MOV A, R1 SWAP A ANL A, #0FH MOVC A, @A+DPTR ;查出段码 MOV P0, A ;显示十位数.T0_END:RETI ;--- TAB:DB 0c0H,0f9H,0a4H,0b0H,99H,92H,82H,0f8H,80H, 90H END ;===...

单片机60秒计时器的程序,用AT89C51实现
uchar a,fen,miao,shu;void delay(uint z);void init();void main(){ init();while(1){ display(fen,miao);} } void timer0() interrupt 1 { TH0=(65536-50000)\/256;TL0=(65536-50000)%256;a++;if(a==20){ a=0;shu++;fen=shu\/10;miao=shu%10;if(shu==60)shu=0;} } voi...

AT89C51中断程序设计两位数码管0到99,工作方式1,定时计数,1s,不用C语 ...
MOV A,SECOND ;将 SECOND 送入a INC SECOND ; 加一 CJNE A,#99,NEX ;判断是否等于99 等于99顺序执行 不等跳转到nex 继续计数 MOV SECOND,#00H ;清零 NEX:MOV B,#10 ;10送入b DIV AB ; a除以b 商送入a 余数送入b MOV DPTR,#TABLE ;取表 MOVC A,@A+DPTR ;取表中的值...

AT89C51单片机怎么用汇编语言让4个数码管同时显示1234?
2、接着,我们要定义好库函数,void main(){while(1)\/\/不断循环显示{dispaly();}}void dispaly(){P0=smg[1];\/\/选择显示数字几,P1=0x7f;\/\/控制是否点亮数码管。3、接着,我们加上一条循环语句。delay(5);\/\/显示5毫秒P0=0XFF;\/\/消影P0=smg[2];P1=0xbf;delay(5);P0=0XFF;P0=smg[...

谁能告诉我用单片机AT89C51怎么制作一个3个共阴极的数码管,让十位...
下面是显示1~8的动态显示,以前应付考试写的。段选和位选都是直接接到单片机上的,要是用硬件焊接的话,最好还是用三极管做驱动 loop:mov p2,#0feh mov r0,#0 clr a acall key loop1:mov r1,#8 out:mov a,r0 movc a,@a+dptr mov p3,a inc r0 acall delay mov a,p2 rl a mov ...

利用单片机AT89C51与ADC0808设计一个数字电压表,能够测量0~5V的直流电...
MOVC A,@A+DPTR; CLR P2.2; MOV P0,A; LCALL DELAY; SETB P2.2; MOV A,LED_2; MOVC A,@A+DPTR; CLR P2.1; MOV P0,A; LCALL DELAY; SETB P2.1; MOV A,LED_3; MOVC A,@A+DPTR; ORL A,#80H; CLR P2.0; MOV P0,A; LCALL DELAY; SETB P2.0; RET;DELAY: MOV R6,#10;D1: MOV ...

急~!!用数码管显示60秒的秒表设计(单片机AT89C51)
MOVC A, @A + DPTR MOV P1, A MOV A, B MOVC A, @A + DPTR MOV P2, A POP B POP ACC RET TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;--- START:MOV TMOD, #01H MOV TH0, #4CH SETB TR0 SETB ET0 SETB EA M_LOOP:MOV ...

相似回答