亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標題:
DS1302與AVR小系統(Atmega16)一起使用時遇到的問題
[打印本頁]
作者:
51黑黑黑
時間:
2016-3-4 14:14
標題:
DS1302與AVR小系統(Atmega16)一起使用時遇到的問題
本次需要實現的是一個基于Atmega16的時鐘系統。由于要求設計電路(競賽用),所以選用了ATmega16小系統、DS1302時鐘模塊、1602液晶模塊。這三者用排線(杜邦線)連接起來。后期可以把DS1302和1602焊接到萬用板上。 程序調試過程中遇到了很多問題,最嚴重的是DS1302不工作。怎么個不工作法呢?向DS1302的31字節的RAM寫一個字節的數據(比如0xA5),再讀,發現與寫的不一致(不是0x00就是0xFF)。程序如下:
別說這種相對復雜的寫了,即便我寫一個控制寄存器,再讀,內容都不一樣(見下面兩句代碼,向C_WP寫入0x80,讀出的exist的值不是00就是FF)
我操縱DS1302的代碼,之前在另一塊ATmega16學習版上已經調試通過,只不過那塊板子上的DS1302是焊接到PCB板的,而不是用杜邦線連接的。所以一開始,我懷疑自己的DS1302壞了。于是我又購買了不同商家的DS1302若干,結果都不能工作。
郁悶得很,上網搜索各種資料,都沒發現明確的答復。有說DS1302晶振不啟振的,有說要加電容或電阻的。還有個人提問,他的DS1302怎么在ATmega的某些引腳上不工作。這個提問給了我啟發。我原來是把DS1302的三個口(CLK,DATA,RST)連接到了PB和PC口。現在,我把它們連到了PA0,PA1,PA2。再跑程序,發現DS1302正常工作了!!!
接下來就是用1602液晶顯示DS1302存儲的當前時間。我的代碼中,1602使用了PB、PA和PD口。我這樣連接上1602,發現液晶沒有顯示。通過剛才的調試,我猜可能DS1302也用PA口,影響了液晶,所以我把液晶用PA口的引腳(VL,調節背光的)移到了PC口,但也不行。最后我把這個口遠遠地移到了小系統上我不用的SPI下載口的一個引腳,結果液晶正常顯示了!!也就是說,DS1302用了PA口,1602液晶用了PB、PD口,以及SPI口的一個小引腳。
這樣看來,ATmega小系統的PA、PB、PC、PD口的帶輸出設備的能力不同?還會相互干擾?這是我第一次用單片機搭建電路,不知理解是否正確,但從表面現象來看就像是這樣。這已經超出了我從書本上學來的知識的范疇,汗!
還有個小插曲,我的AVR小系統有兩個VCC和GND。但DS1302要用1個GND,1602液晶要用2個GND,這樣加起來是3,超過了小系統引出的GND數目。之前我為了解決這個問題,又買了另一個商家的小系統,但不好用還生銹。這次也是靈光乍現,我看SPI口的電路圖,里面有4個GND,真是太好了。于是我用了其中一個GND給DS1302模塊。結果工作正常。雖然占用了SPI口,但我還可以用Jtag口,不影響下載。
發圖一張做紀念。也希望這篇文章能幫助有需要的人。
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1