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

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



作者: Sanada    時(shí)間: 2018-2-2 22:52
我這里為什么沒(méi)有超過(guò)但是還是IO口不正確,尤其是外部中斷0,無(wú)論查詢還是中斷都是不行,下載才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