这个程序以前是8031+外部存储器的机器,老机器,外国人的,我们学习中。
里边有8155,8255等等,程序有5000行汇编,汇编是反汇编来的,15k程序,RAM基本都用完,没有解释,
请问读懂这个程序是否困难,去交给电子市场的话我要求能提供详细解释(详细到我能修改里边的参数),大概的报价是多少?
如果我们自己读这个程序(我们没有很丰富的汇编经验,有丰富的C,外设控制,多种MCU经验),是否可行,大概多久能看出门道?
请大家评估下给个参考意见。谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
硬件作法请看下面59楼介绍
##########################################
速度快的可以模拟速度慢的,容量大的可以模拟容量小的,如果速度真有问题,把转成的AVR汇编后面加几个NOP就成了
工控产品一般都是事件(如中断,外设,输入)驱动的,也都会留一定的余量,除非是用来模拟类似USB这类严格的时序,一般都可以
这个方法和硬件仿真器一样可以马上在原来板子上电验证,软件仿真就作不到
但也可以马上重新画板,把已经读懂的硬件用AVR内的存储外设取代(如ROM,RAM,ADC,8255..),作成产品上市销售,这就是硬件仿真器作不到的
除非楼主的老板只要楼主读懂程序,不想生产出产品来盈利,不过那是不可能的
当然,用C8051这类增强型51也行,只是开发环境和仿真工具不像AVR/STM32选择那么多又便宜
老板最在乎的芯片成本也无法和AVR/STM32同级的相比
还有,千万不要认为在中国的每个工程师都有一万的月薪
你还是纸上谈兵,根本没有实际经验.
你不知道8051要干什么,你模拟个屁,你说的是在知道8051个工作流程的情况下的工作,现在是要知道8051在干什么
还以延时为例,你不知道51延时了多长时间,你怎么确定AVR的延时时间?
你的方法,勉强可以模拟一下逻辑,但是时序你没有办法确定.
这个不是仿一个单片机的问题,你外设怎么仿?
PROTEUS做的不错了吧?计算机的CPU比AVR强大的多了吧?他仿真的还不能达到真正的实时运行的性能,
单片机不光有指令,它还有一套特定的寄存器结构,一套特定的寻址方式,一套特定的外设操作方法,
不是你认为的替换一下指令就行的,比如说51的ALE信号,51每执行一次取指令操作,ALE就会产生一个脉冲,这个脉冲可以做总线的锁存信号,在LZ的电路上,它就应该接在74LS373的11脚上,也可以做为一些AD的时钟信号,它是和51的总线操作相关联的,并不是一个单纯的频率信号,你不能用一个频率信号来代替,同时他还是一个高速信号,12M的51,这个信号的频率是1M,此外,还有PSEN信号,指示单片机在读出ROM还是RAM的,还有RD,RW,这些信号8155,8255都要用到,这些,你这怎么模仿?
另外,能完成LZ功能要求的仿真器并不贵,Monitor-51就行,软件就是Keil C51,成品几十块,自制的话,也就一片Mega8的价
你以为MONITOR-51接到KEIL的HALT命令时,ALE和PSEN就不再输出了吗?
楼主的电路上有没有把ALE接到AD的时钟信号,这看一下电路就可以知道了,我在5楼也说过了,"如果对速度和容量没有要求"的前提下
我说的速度也包括外设(如ADC)的速度和时序,也没有说百分之百可以用AVR模拟,就像
003B: 90 80 02 MOV DPTR,#8002H
003E: E0 MOVX A,@DPTR
003F: 30 E7 69 JNB ACC.7,00ABH
这里8002H就是外设的地址,先不管是8255,8155,ADC芯片,M128一样有ALE和RD/WR,照接就对了,译码器自然会使能对应的片选
LDI XH,80H
LDI XL,02H
LD R16,X
SBRS R16,7
RJMP LOC00AB
以上为随手写写的(毕竟只是演示),如果对时序有要求,请自行在需要的地方加上NOP
至于PSEN,由于MEGA128内部的FLASH够大,可以把15K程序全放入片内,除非原设计者除了EEPROM外,PSEN另有接到别的地方,
否则就不用输出,这等看到原理图就知道了
“还有PSEN信号,指示单片机在读出ROM还是RAM的”这句就可以看出你对51还不是很熟
RAM和外设的读出和PSEN完全无关,它们是由RD/RW来使能的,当然也包括AD15-AD0
PSEN输出时,RD和WR是不会输出的
一周热门 更多>