|
下午在做測(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)燒寫程序的代碼長(zhǎng)度到7FF就沒(méi)有了,我的代碼長(zhǎng)度要到8B0?眼前一閃!問(wèn)題找到,代碼長(zhǎng)度溢出。重新刪減程序,將代碼長(zhǎng)度減到7F0,再次燒程序,測(cè)試OK通過(guò)!
一直使用大容量的單片機(jī),一不小心就將代碼敲過(guò)了,教訓(xùn)!
|
|