我用了,为什么改不了数据呀,还一直都是0x00,急切求答案!我用的是51单片汇编编程!
追答不可能改不了呀,你程序怎么写的?贴上来看看。
追问ORG 0000H
AJMP MAIN ;跳转到主程序
MAIN: MOV DPTR,#TABLE
MOV R1,#TABLE
MOV A,55H
MOV @R1,A
MOV A,#0H
MOVC A,@A+DPTR
MOV P1,A
JMP MAIN
TABLE:db 0,0,0
END
你可以写个程序叫我参考下,这个是简单的就是为了测试能不能改数据
请帮我写个程序,最简单的就可以,然后数据用P1存储就可以,我可以用LED等看
现在的主要问题是对R1与R2 中数据进行对比!
变址寻址方式只能对程序存储器进行寻址,因此只能用于读取数据,而不能用于存放数据,它主要用于查表性质的访问。
可以将数据定义在数据存储器ram中而不是程序存储器rom中 rom是只读的 当然是不能修改数据的。
MOV A,55H
而且这句应该是MOV A,#55H吧?
请帮我给段小程序,就是那种有个数据空间可以对进行改变数值,不使用Rn寄存器,我做遥控小车很急的就差这个问题了!
对了,也可以直接开辟一段数据空间,你知道怎么弄吗?帮忙给个程序看看!
不知道你有没有接外部ram?外部ram可以寻址64kb的空间,有的话,你只要把MOVC改成MOVX就好了 因为MOVC取的数据是在rom里 而MOVX取的数据是在外部ram里
如果没有外部ram 那内部30H到7FH是用户ram区 你可以把数据放在这里
比如
MOV DPTR,#0000H;外部ram
MOVX A,@DPTR;此时A的值等于数组第一个元素的值
MOV A,#55H
MOVX @DPTR,A;此时数组第一个元素的值等于55h
具体如何实施,请给出程序说明,谢谢!
具体怎么做,我知道可以定义数组,但是不能赋值呀,我做程序用的,帮忙说清楚,现在就在做,需要可以赋值的数组!
追答51都快忘记了,
追问就是定义个空数组,指令表没用呀!帮忙想想,现在就在做,很急的!
追答空数组做什么用?
追问做依次循环赋值使用!