標(biāo)題: 搞定程序在AT89c52芯片上使用正常,移植到AT89C2051就有問題 [打印本頁]

作者: liuyy    時(shí)間: 2015-1-12 01:16
標(biāo)題: 搞定程序在AT89c52芯片上使用正常,移植到AT89C2051就有問題
                                                                                                    下午在做測(cè)試軟件(關(guān)于數(shù)據(jù)采集串口輸出的)時(shí)發(fā)現(xiàn)AT89C2051仿真,使用芯片時(shí)卻一直不正常工作,有串口輸出,但是輸出一個(gè)固定的數(shù)據(jù)。首先,確認(rèn)是否硬件問題,后仔細(xì)查找后確實(shí)有問題,AT89C2051的P1. 0和P1.1在做輸入口時(shí)要加外部上拉,硬件電路沒有加然后加上,問題依舊存在。接著,確認(rèn)是否是軟件問題,經(jīng)過測(cè)試AD的中斷時(shí)有時(shí)無,人為的加中斷信號(hào),中斷確實(shí)能進(jìn)入,排出中斷處理程序的問題,是對(duì)AD芯片的操作問題(中斷信號(hào)時(shí)有時(shí)無),但是此AD芯片的子程序在AT89c52芯片上使用正常,移植到AT89C2051就有問題(疑惑?),在AT89C2051中的程序移植到AT89c52芯片的板子上居然是好用的(更加疑惑)。。。。。。
    快下班時(shí)發(fā)現(xiàn)燒寫程序的代碼長度到7FF就沒有了,我的代碼長度要到8B0啊?眼前一閃!問題找到,代碼長度溢出。重新刪減程序,將代碼長度減到7F0,再次燒程序,測(cè)試OK通過!
    一直使用大容量的單片機(jī),一不小心就將代碼敲過了,教訓(xùn)。



作者: Sanada    時(shí)間: 2018-2-2 22:52
我這里為什么沒有超過但是還是IO口不正確,尤其是外部中斷0,無論查詢還是中斷都是不行,下載才36個(gè)字節(jié)
作者: Sanada    時(shí)間: 2018-2-2 22:53
#include <at892051.h>  sbit P32 = P3^2; sbit P37 = P3^7;  void init_INT0() {     IT0 = 1;     EA = 1;     EX0 = 1; }  void int0() interrupt 0 {     P37 = ~P37;     }  void main() {     P3 = 1;     init_INT0();     while(1); }




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1