|
前天有一個(gè)小項(xiàng)目用到矩陣鍵盤,公司倉庫里只有PIC單片機(jī)合適,于是拿來一用,動(dòng)手就做吧。
以前用51系列的做過逐行掃描法的矩陣鍵盤 ,心想這次用個(gè)別的算法做吧,于是選擇了線反接法,很快電路搭好了,程序也寫好了,直接燒錄,調(diào)試,測(cè)試LED怎么沒反應(yīng)?因?yàn)闉榱朔奖阋呀?jīng)將程序和電路在protues上進(jìn)行了仿真,結(jié)果很是滿意,燒進(jìn)單片機(jī)居然沒有用��!第一反應(yīng)就是電路有問題,于是將電路還原成最小系統(tǒng)測(cè)試,用示波器測(cè)量,還是沒有反應(yīng)。怎么回事?已經(jīng)是最小系統(tǒng)了,難道單片機(jī)問題?換了三個(gè)出現(xiàn)了蛋疼的三種結(jié)果,自信心大跌�。�!將按鍵改裝成獨(dú)立按鍵,設(shè)置方向?yàn)檩斎�,用按鍵拉低,PORT寄存器有反應(yīng),單片機(jī)沒壞啊,這是個(gè)什么情況?將調(diào)試重心轉(zhuǎn)移到軟件上,不管怎么按鍵,端口寄存器值始終是0XF7(我輸入的明明是 0xF0�。�,什么個(gè)情況?將端口方向由高輸入,低輸出改成全輸出。又測(cè)試一遍,按鍵終于由反應(yīng)了。抓狂了!什么邏輯啊?“讀-修改-寫”順序沒錯(cuò)啊。兩個(gè)輸出通過按鍵反而能識(shí)別,一個(gè)輸出一個(gè)輸入反而不能。。。這不是關(guān)鍵,關(guān)鍵是在PROTUES上仿真前者出現(xiàn)黃色不穩(wěn)態(tài)(也就是不正確),后者仿真完全 OK。
總結(jié):1,以后要多搭電路實(shí)際仿真,PROTUES只能參考,不能依賴,不然實(shí)際電路出現(xiàn)的“意想不到”的結(jié)果會(huì)令你格外抓狂!
2,每一款單片機(jī)都有自身的特性,用單片機(jī)不一定能將所有功能用個(gè)遍,只有好好看datasheet才能體會(huì),尤其是用到某個(gè)新功能。一定要好好看。之前我用PIC做過UART和SPI串口,可是現(xiàn)在基本IO方向把我難倒了。
呵呵,學(xué)無止境~~
發(fā)泄完了,洗澡,睡覺。 |
|