之前我写了一段程序,用仿真器仿真都已经没有问题了,然后我把程序烧入AT89S51的片子内,结果没有与其的效果,莫非是我硬件的原因,我一个一个的排查均是正常的。然道是我程序的原因,我觉得很奇怪啊,在仿真器的环境下一切正常,然后我就加进去测试程序,一点一点的走,还是没发现什么问题,就发现在定时器中断的地方程序就不走了,折腾了我一个星期,最后没办法,找了一块AT89C51的片子,把程序写进去一切正常。 后来我急上网寻找S51和C51的区别,都说是完全可以兼容的。 最后我终于发现了,原来有很多人和我一样遇见这个问题了,就是S51的芯片对采用定时器中断根本就不反应,原因为 两种不同架构的MCU 89C51属于复杂指令系统架构(CISC),而89S51为简单指令系统(RISC)的AVR系列MCU。 一、实际的端口驱动能力 有不同的地方。 一、实际的端口驱动能力不足的要加上拉4.7K 二、端口在变化时的edge的斜率不同。 我现在知道原因了,但是我不知道如何解决定时器中断的这个办法,很急,有没有高手能够帮我出点主意,帮我解决一下这个燃眉之急。小女子在此拜谢各位!
|