|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
我的程序仿真運(yùn)行正常,燒到片子里運(yùn)行不正常,不知何故! |
| 作者:beyond314 欄目:單片機(jī) |
mcu:AT89C51 仿真器:周立功TKS-58B 燒錄器:LABTOOL-48 目標(biāo)板:自己焊的 功能描述:斷電檢測(cè)RF板上相鄰焊點(diǎn)是否焊接短路,共有11個(gè)焊點(diǎn)待測(cè),我用P0.0~P0.7和P2.5~P2.7直接連這11個(gè)焊點(diǎn),檢測(cè)思路是分別將每個(gè)腳置0,其他置1,若能將其他腳拉低,有些特殊情況(由于對(duì)地阻值小的原因會(huì)將某些腳拉低)可忽略掉(通過檢測(cè)),程序如下: #define uCHAR unsigned CHAR #define uint unsigned int #include <reg51.h> #include <intrins.h> sbit non_green = P1^1; /*檢測(cè)通過亮綠燈*/ sbit non_red = P1^3; /*檢測(cè)不通過亮紅燈*/ void Delay(uint delay_times) { uint j; for(;delay_times>0;delay_times--) for(j=0;j<=114;j++) { ; } } void ShowError(void) { non_red = 0; while(1); } void ShowFine(void) { non_green = 0; while(1); } main() { uCHAR BYTE0 = 0x7F; uCHAR BYTE2 = 0xFF; register uCHAR i; for(i=8;i>0;i--) { P0 = 0xFF; P0 = BYTE0; Delay(5); SWITCH(i) /*特殊情況*/ { case 7 : if(P0 != 0xAE||P2 != BYTE2) ShowError(); break; case 6 : if(P0 != 0x8E||P2 != BYTE2) ShowError(); break; case 5 : if(P0 != 0xAE||P2 != BYTE2) ShowError(); break; case 4 : if(P0 != 0xA6||P2 != BYTE2) ShowError(); break; case 3 : if(P0 != 0xAA||P2 != BYTE2) ShowError(); break; case 1 : if(P0 != 0xAE||P2 != BYTE2) ShowError(); break; default : /*一般情況*/ if(P0 != BYTE0||P2 != BYTE2) ShowError(); break; } BYTE0 = _cror_(BYTE0,1); *循環(huán)右移一位*/ } BYTE2 = 0x7F; BYTE0 = 0xFF; for(i=3;i>0;i--) { P2 = 0xFF; P0 = BYTE0; P2 = BYTE2; Delay(5); if(P0 != BYTE0||P2 != BYTE2) ShowError(); BYTE2 = _cror_(BYTE2,1); } ShowFine(); } 程序很簡單,調(diào)試時(shí)能夠達(dá)到檢測(cè)目的,程序運(yùn)行10ms就有正確的反應(yīng),但是燒到片子里執(zhí)行時(shí),等大概2s鐘后就亮了紅燈,重?zé)撕芏啻危际沁@個(gè)結(jié)果,不知到是哪里的問題,請(qǐng)教老蝦們幫忙,給出解決思路也很感謝,在線等。。。 |
| 2樓: | >>參與討論 |
| 作者: conanfans 于 2005/7/27 15:57:00 發(fā)布:
VPP上拉沒? |
|
| 3樓: | >>參與討論 |
| 作者: wolfsnow 于 2005/7/27 16:00:00 發(fā)布:
呵呵 你要先考慮上仿真和燒片子的區(qū)別: 1。仿真時(shí)用的是內(nèi)部晶振和外部晶振(燒片子時(shí)晶振起振了沒有) 2。復(fù)位腳的復(fù)位電位正常不?(用示波器盯) 3。程序清看門狗沒有? |
|
|
|
| 免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |