找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索

單片機(jī)秒表計(jì)數(shù),為什么10位能變化,個(gè)位不動(dòng)呢,在線等,求助

查看數(shù): 4973 | 評(píng)論數(shù): 9 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁(yè)<-左 右->
    組圖打開中,請(qǐng)稍候......
發(fā)布時(shí)間: 2018-6-17 01:02

正文摘要:

自己按照書上的程序編了一個(gè),也自己花了個(gè)圖,秒表計(jì)數(shù),為什么10位能變化,個(gè)位不動(dòng)呢,可是每10秒10位還發(fā)生變化,在線等哥哥們幫助,哪有問題自己按照書上的程序編了一個(gè),也自己花了個(gè)圖,秒表計(jì)數(shù),為什么10位 ...

回復(fù)

ID:353085 發(fā)表于 2018-6-18 15:32
zl2168 發(fā)表于 2018-6-18 11:05
給你介紹一個(gè)正確有效看得懂的案例,自己對(duì)照查錯(cuò)吧!
實(shí)例93  99.9秒秒表
先Proteus仿真一下,確認(rèn)有效 ...

謝謝兄弟,我會(huì)認(rèn)真看的,十分感謝
ID:111634 發(fā)表于 2018-6-18 11:05
本帖最后由 zl2168 于 2018-6-18 11:07 編輯

給你介紹一個(gè)正確有效看得懂的案例,自己對(duì)照查錯(cuò)吧!
實(shí)例93  99.9秒秒表
實(shí)例95 99.9秒秒表.rar (38.86 KB, 下載次數(shù): 9)

Proteus仿真一下,確認(rèn)有效。以上摘自張志良編著《80C51單片機(jī)仿真設(shè)計(jì)實(shí)例教程——基于Keil CProteus》清華大學(xué)出版社ISBN 978-7-302-41682-1,內(nèi)有常用的單片機(jī)應(yīng)用100案例,用于仿真實(shí)驗(yàn)操作,書中電路和程序設(shè)計(jì)有詳細(xì)說明,電路與程序真實(shí)可靠可信可行,程序語(yǔ)句條條有注解。
ID:341045 發(fā)表于 2018-6-17 23:39
figo88130 發(fā)表于 2018-6-17 20:39
,改成這樣了?墒沁是不行。這個(gè)2都顯示不正確。怎么辦。。。

2顯示不正常, 0A4, 高電平不顯示, 數(shù)據(jù)有3個(gè)"1", 連小數(shù)點(diǎn)共3個(gè)段不顯, 程序看不出問題, 實(shí)際只有2個(gè)段不顯.估計(jì)還是硬件部分, 給P0口全加3K3的上拉電阻試下.
ID:341045 發(fā)表于 2018-6-17 23:29
figo88130 發(fā)表于 2018-6-17 20:39
,改成這樣了?墒沁是不行。這個(gè)2都顯示不正確。怎么辦。。。

                        Ledbuff[0] = Ledchar[0];//sec%10];
                        Ledbuff[1] = Ledchar[1];//sec/10%10];
                        Ledbuff[2] = Ledchar[2];//sec/100%10];
                        Ledbuff[3] = Ledchar[3];//sec/1000%10];
                        Ledbuff[4] = Ledchar[4];//sec/10000%10];
                        Ledbuff[5] = Ledchar[5];//sec/100000%10];
沒注意, 這樣才樣顯示012345
ID:341045 發(fā)表于 2018-6-17 23:22
figo88130 發(fā)表于 2018-6-17 20:39
,改成這樣了?墒沁是不行。這個(gè)2都顯示不正確。怎么辦。。。

                        Ledbuff[0] = 0: //Ledchar[sec%10];
                        Ledbuff[1] = 1; //Ledchar[sec/10%10];
                        Ledbuff[2] = 2; //Ledchar[sec/100%10];
                        Ledbuff[3] = 3; //Ledchar[sec/1000%10];
                        Ledbuff[4] = 4; //Ledchar[sec/10000%10];
                        Ledbuff[5] = 5; //Ledchar[sec/100000%10];
改這樣呀, 你程序有查表, 會(huì)顯示012345的, 我估計(jì)你是串位了. 就是138譯碼不正確. 你幾位顯一樣的看不出
ID:234075 發(fā)表于 2018-6-17 16:43
我的不對(duì)

評(píng)分

參與人數(shù) 1黑幣 +5 收起 理由
figo88130 + 5 很給力!

查看全部評(píng)分

ID:234075 發(fā)表于 2018-6-17 16:34
60行“ case 0:ADDR0=0;ADDR1=0;ADDR2=0;i++;P0=Ledbuff[0];break;”你這樣寫沒有數(shù)碼管顯示的,中間應(yīng)該是“ADDR0=1;ADDR1=0;ADDR2=0;”,后面的以此類推
ID:341045 發(fā)表于 2018-6-17 13:10
程序沒看出問題呀, 估計(jì)是硬件部分問題, 但這句改下會(huì)好點(diǎn)
default: break;  改為 default:  i = 0; break;  // i 異常時(shí)下次會(huì)正常

可改這幾句調(diào)試:
                        Ledbuff[0] = 0: //Ledchar[sec%10];
                        Ledbuff[1] = 1; //Ledchar[sec/10%10];
                        Ledbuff[2] = 2; //Ledchar[sec/100%10];
                        Ledbuff[3] = 3; //Ledchar[sec/1000%10];
                        Ledbuff[4] = 4; //Ledchar[sec/10000%10];
                        Ledbuff[5] = 5; //Ledchar[sec/100000%10];
程序正常, 應(yīng)該顯示543210, 顯示正常再看程序, 我估算你電路會(huì)串位, 也就是138譯碼不正常, 如是, 試著P1.0 P1.1 P1.2拉個(gè)3K3的上拉電阻, 還有, 138輸出到三極管要接個(gè)幾百到1K歐的電阻. 再不行就換138.

評(píng)分

參與人數(shù) 1黑幣 +5 收起 理由
figo88130 + 5 謝謝老哥了,指點(diǎn)的非常詳細(xì),也非常到位。.

查看全部評(píng)分

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表