麻花豆传媒剧国,亚洲国产精品无码,欧州黄片视频免费观看,外国性生活一区二区

問答

怎么讀時(shí)鐘芯片DS1302的時(shí)間

提問者:s55353942013-08-03 00:00

現(xiàn)在主要是想把時(shí)鐘芯片的秒讀出來用LED顯示,沒運(yùn)行之前秒的值是00H,自己弄的程序運(yùn)行之后,一直是0FFH,不知道是不是時(shí)鐘芯片還沒啟動(dòng),啟動(dòng)程序應(yīng)該怎么寫的? 我剛開始學(xué)單片機(jī),好多都不懂,請高手幫幫忙。(最好給個(gè)具體的讀芯片的程序。)

最佳答案

說明p1.2是用了非門按制RST腳,所以SETBP1.2;令=0 DS_READ?SETBP1.2;令=0。 CLRP1.1;令SCLK=0。 CLRP1.2;令=1,啟動(dòng)芯片。 LCALLDS_WSUB;寫8位地址。 LCALLDS_RSUB;讀出8位數(shù)據(jù)。 RET DS_WSUB?MOVR7,#08H WL00P?RRCA;A為地址字節(jié)。 MOVP1.0,C SETBP1.1;在時(shí)鐘上升沿 NOP;輸入地址字節(jié)。 CLRP1.1 DJNZR7?WL00P RET DS_RSUB?SETBP1.0;為讀數(shù)據(jù)作準(zhǔn)備。 MOVR7?#08H RL00P:SETBP1.1 NOP CLRP1.1;在第9個(gè)正脈沖的下 MOVC,P1.0;降沿開始輸出數(shù)據(jù)。 RRCA;A中為讀出的數(shù)據(jù)。 DJNZR7,RL00P RET 若使用如下程序?qū)Sl302的RAM1?其內(nèi)容為5AH?進(jìn)行讀操作 READ:MOVA?#11000101B;RAM1單元的讀地址。 LCAllDS_READ;調(diào)用讀子程序。 則程序執(zhí)行后A中的數(shù)據(jù)為2DH,顯然讀出的數(shù)據(jù)不正確。若再使用一條RLA指令調(diào)整后,則A中為5AH,結(jié)果才正確。由此說明:使用上述程序讀出的RAM1單元中的第0位數(shù)據(jù)實(shí)為第1位數(shù)據(jù),讀出的第7位數(shù)據(jù)實(shí)為第0位數(shù)據(jù)。 經(jīng)筆者仔細(xì)研究時(shí)序圖和多次試驗(yàn)得知,問題的原因在于:對于讀操作時(shí)序,在SCLK出現(xiàn)第8個(gè)正脈沖時(shí),上升沿輸入地址字節(jié)的最后一位數(shù)據(jù),而在此正脈沖的下降沿就要輸出數(shù)據(jù)字節(jié)的第0位數(shù)據(jù)。然而筆者的程序中是在第9個(gè)正脈沖的下降沿才誤認(rèn)為輸出了數(shù)據(jù)字節(jié)的第0位數(shù)據(jù),此位數(shù)據(jù)事實(shí)上是第二個(gè)下降沿輸出的,故實(shí)為數(shù)據(jù)字節(jié)的第1位數(shù)據(jù)。經(jīng)筆者實(shí)驗(yàn):只要RST保持為高電平,如果超過8個(gè)下降沿,它們將重新從第0位輸出數(shù)據(jù)位,因程序中輸出的最后一位數(shù)據(jù)位,是9個(gè)下降沿輸出的數(shù)據(jù)位,故實(shí)為數(shù)據(jù)字節(jié)的第0位數(shù)據(jù)位。 由此可見,單字節(jié)讀操作的時(shí)序圖如改為圖2所示時(shí)序圖,則讀者較容易理解可避免發(fā)生上述編程錯(cuò)誤。 只要將上述的DS_RSUB子程序改為如下的子程序即可解決上述問題: DS_RSUBl:SETBP1.0;為讀數(shù)據(jù)作準(zhǔn)備 MOVR7,#08H RL00P:CLRP1.1;SCLK第8個(gè)正脈沖的 MOVC,P1.0;下降沿開始輸出數(shù)據(jù)。 RAC SETBP1.1 DJNZR7,RL00P RET

回答者:nightcici2016-08-03 00:00

DS 5相關(guān)問題

相關(guān)閱讀

DS 5頻道

報(bào)價(jià):21.99-34.59
級別:中型車
排量:1.6T 1.8T 
變速箱:-

車友關(guān)注

最新標(biāo)簽

按字母分類:
ABCDEFGHIJKLMNOPQRSTWXYZ0-9