欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
DS1302與AVR小系統(tǒng)(Atmega16)一起使用時(shí)遇到的問(wèn)題
[打印本頁(yè)]
作者:
51黑黑黑
時(shí)間:
2016-3-4 14:14
標(biāo)題:
DS1302與AVR小系統(tǒng)(Atmega16)一起使用時(shí)遇到的問(wèn)題
本次需要實(shí)現(xiàn)的是一個(gè)基于Atmega16的時(shí)鐘系統(tǒng)。由于要求設(shè)計(jì)電路(競(jìng)賽用),所以選用了ATmega16小系統(tǒng)、DS1302時(shí)鐘模塊、1602液晶模塊。這三者用排線(杜邦線)連接起來(lái)。后期可以把DS1302和1602焊接到萬(wàn)用板上。 程序調(diào)試過(guò)程中遇到了很多問(wèn)題,最嚴(yán)重的是DS1302不工作。怎么個(gè)不工作法呢?向DS1302的31字節(jié)的RAM寫(xiě)一個(gè)字節(jié)的數(shù)據(jù)(比如0xA5),再讀,發(fā)現(xiàn)與寫(xiě)的不一致(不是0x00就是0xFF)。程序如下:
別說(shuō)這種相對(duì)復(fù)雜的寫(xiě)了,即便我寫(xiě)一個(gè)控制寄存器,再讀,內(nèi)容都不一樣(見(jiàn)下面兩句代碼,向C_WP寫(xiě)入0x80,讀出的exist的值不是00就是FF)
我操縱DS1302的代碼,之前在另一塊ATmega16學(xué)習(xí)版上已經(jīng)調(diào)試通過(guò),只不過(guò)那塊板子上的DS1302是焊接到PCB板的,而不是用杜邦線連接的。所以一開(kāi)始,我懷疑自己的DS1302壞了。于是我又購(gòu)買(mǎi)了不同商家的DS1302若干,結(jié)果都不能工作。
郁悶得很,上網(wǎng)搜索各種資料,都沒(méi)發(fā)現(xiàn)明確的答復(fù)。有說(shuō)DS1302晶振不啟振的,有說(shuō)要加電容或電阻的。還有個(gè)人提問(wèn),他的DS1302怎么在ATmega的某些引腳上不工作。這個(gè)提問(wèn)給了我啟發(fā)。我原來(lái)是把DS1302的三個(gè)口(CLK,DATA,RST)連接到了PB和PC口。現(xiàn)在,我把它們連到了PA0,PA1,PA2。再跑程序,發(fā)現(xiàn)DS1302正常工作了!!!
接下來(lái)就是用1602液晶顯示DS1302存儲(chǔ)的當(dāng)前時(shí)間。我的代碼中,1602使用了PB、PA和PD口。我這樣連接上1602,發(fā)現(xiàn)液晶沒(méi)有顯示。通過(guò)剛才的調(diào)試,我猜可能DS1302也用PA口,影響了液晶,所以我把液晶用PA口的引腳(VL,調(diào)節(jié)背光的)移到了PC口,但也不行。最后我把這個(gè)口遠(yuǎn)遠(yuǎn)地移到了小系統(tǒng)上我不用的SPI下載口的一個(gè)引腳,結(jié)果液晶正常顯示了!!也就是說(shuō),DS1302用了PA口,1602液晶用了PB、PD口,以及SPI口的一個(gè)小引腳。
這樣看來(lái),ATmega小系統(tǒng)的PA、PB、PC、PD口的帶輸出設(shè)備的能力不同?還會(huì)相互干擾?這是我第一次用單片機(jī)搭建電路,不知理解是否正確,但從表面現(xiàn)象來(lái)看就像是這樣。這已經(jīng)超出了我從書(shū)本上學(xué)來(lái)的知識(shí)的范疇,汗!
還有個(gè)小插曲,我的AVR小系統(tǒng)有兩個(gè)VCC和GND。但DS1302要用1個(gè)GND,1602液晶要用2個(gè)GND,這樣加起來(lái)是3,超過(guò)了小系統(tǒng)引出的GND數(shù)目。之前我為了解決這個(gè)問(wèn)題,又買(mǎi)了另一個(gè)商家的小系統(tǒng),但不好用還生銹。這次也是靈光乍現(xiàn),我看SPI口的電路圖,里面有4個(gè)GND,真是太好了。于是我用了其中一個(gè)GND給DS1302模塊。結(jié)果工作正常。雖然占用了SPI口,但我還可以用Jtag口,不影響下載。
發(fā)圖一張做紀(jì)念。也希望這篇文章能幫助有需要的人。
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1