-
因為您生成了錯誤::Hardware?
程式?
-
你用什麼來顯示它? 如果是1602,則需要轉換為ASCII碼才能顯示。
-
DS1302以十六進製儲存資料,在顯示資料之前應轉換為十進位。
-
如何解決,分享。
-
檢查晶體振盪器、I2C 驅動器**、晶元手冊以檢視讀寫順序、注意十進位和 24 次轉換以及顯示部分。 如果沒問題,還是有問題,要麼是晶元壞了,要麼是很基本的問題,找懂得幫你調整的人。
-
不能斷章取義,你應該完整地看一下,並閱讀你自己完成的**:
for(i=0; i<8; i++)
coutdata >>1;
if(sda_1302 ==1)
coutdata |=0x80;
clk_1302 = 1;
nop_()
clk_1302 = 0;
nop_()
晶元開始輸出低位,在讀取了8次正射和延遲後,右何奇移位了8次,必須是輸出位元組。
-
因為1302的資料是序列的。
-
這是由晶元的特性決定的,只需參考資料手冊即可。
-
有很好的程式可以去中國電子發展網(去曬太陽,我一直在那裡潛水。
我最近一直在研究這個程式,所以我剛剛看了一下你的程式,你正在從ds1302讀出資料,並將其直接傳送到顯示器,就像這樣。
write_datae(shu[read_ds(0x89)/10]);
write_datae(shu[read_ds(0x89)%10]);
我習慣於編寫這樣的程式,這很好,但它有點複雜,但它效果很好。
-
我能告訴你以前是怎麼做的,現在是怎麼做的,讓顯示速度快了近十倍嗎?
-
我以前做溫度採集系統的時候,顯示有時候會搞砸,還沒找到原因,你改了很多程式,但是可能有一些模組沒有改,注意這些模組,或者只是注意變數,尤其是中斷和主程式中可用的變數。
-
你首先試著看直連數碼管的顯示程式是否正常,即直接給數碼管賦值進行測試。
然後用測試的數碼管看看資料讀出了什麼,DS1302直接讀出的資料是這樣的。 例如,如果它顯示為 22,則應為 16 秒。
為什麼會這樣? 十進位22到十六進製的轉換是0x16,這就是DS1302的表達方式。
例如,0x59是 59 所以讀出資料後,需要將十六進製0x59轉換為十進位的 59 才能正確顯示。 至於如何轉換,請自己考慮。
-
DS1302和微控制器的連線必須短,不能高於5厘公尺,如果拿杜邦線,很可能會有問題,我以前也進過這個坑。
美國 51 區是海拔約 155 平方公里,海拔 1,350 公尺的區域,它是廣闊的美國空軍訓練設施(面積 12,139 平方公里)的一部分,也是 Emitin 山谷的一部分,51 區北以馬夫山脈為界,南以帕普斯山脈為界, 東邊的雜亂無章的山丘和幹馬夫(坐標北緯37度16分05秒,西經115度47分58秒; 昵稱湖,是長約6公里,寬約5公里的乾燥沙地,湖的西南角(坐標北緯37度14分,西經115度49分),有兩條混凝土空軍跑道,其中一條橫跨沙湖, 另乙個遠離沙湖,兩條未準備好的跑道直接建在沙湖上。
可以使用cpuz之類的軟體進行識別,看看記憶體選項識別了多少記憶體,如果只識別了乙個記憶體,則表示記憶體可能沒有與插槽接觸,系統無法識別此記憶體。 >>>More
魚和人類一樣,必須呼吸氧氣才能生存,空氣和水中都有氧氣,人類的肺可以分離空氣中的氧氣,但不能吸收水中的氧氣,所以人們只能在陸地上生活。 >>>More