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

QQ登錄

只需一步,快速開始

搜索
查看: 7621|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

80c51單片機(jī)四位秒表顯示程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:20464 發(fā)表于 2009-12-25 14:32 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

以下是一個(gè)我寫的一個(gè)51單片機(jī)的秒表顯示程序,要求計(jì)時(shí)范圍是0.000--999.9,精度為0.1秒。有兩個(gè)開關(guān)控制,一個(gè)控制計(jì)時(shí)開始,一個(gè)控制計(jì)時(shí)結(jié)束。但是在實(shí)驗(yàn)室編譯沒有問題,卻調(diào)不出要的效果來(lái),LED數(shù)碼管那四位一開始應(yīng)該顯示000.0的,但是上來(lái)確實(shí)000.0.,右邊多了一個(gè)小數(shù)點(diǎn),我改成左循環(huán)的話就是00.0.0,左邊就會(huì)多出一個(gè)小數(shù)點(diǎn),很是郁悶。希望與高手能幫忙指點(diǎn)一下哪里有問題···

ORG 0000H

MIAN:

 MOV 30H,#0H
 MOV 31H,#0H
 MOV 32H,#0AH
 MOV 33H,#0H;緩沖單元初始化
 MOV R3,#0AH
 MOV R4,#0AH
 MOV R5,#0AH
 MOV R6,#0AH;循環(huán)次數(shù)初始化
 
X0: 

MOV C,P1.0
 JC  X2;判斷是否開始計(jì)時(shí)
 MOV C,P1.1
 JC  X6;判斷是否停止計(jì)時(shí)
 MOV A,#20H;位地址
 MOV R0,#30H;指向緩沖單元

 

X1:

 MOV R1,#21H; 位選碼
 PUSH ACC
 MOVX @R1,A
 MOV A,@R0
 MOV DPTR,#TAB
 MOVC A,@A+DPTR
 MOV R1,#22H;段選碼
 MOVX @R1,A
 POP ACC
 JB ACC.2,X0;是否到末尾,是則跳
 RR A
 INC R0
 LJMP X1  

 

X2: 

LCALL DELAY
 MOV R0,#33H
 INC @R0
 DJNZ R3,X0
 

X3: 

MOV R0,#32H
 INC @R0
 DJNZ R4,X0

X4: 

MOV R0,#31H
 INC @R0
 DJNZ R5,X0
 

X5: 

MOV R0,#30H
 INC @R0
 DJNZ R6,X0

X6: SJMP $

 

DELAY:

MOV R2,#02H
LP: MOV TMOD,#01H
 MOV TH0,#30H
 MOV TL0,#0B0H
 SETB TR0
LOOP: JBC TF0,NEXT
 SJMP LOOP
NEXT: DJNZ R2,LP
 RET       ;0.1秒延時(shí)


TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,40H,79H,24H,30H,19H,12H,02H,78H,0H,10H;后十個(gè)為帶小數(shù)點(diǎn)的十個(gè)數(shù)字

 END

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:63588 發(fā)表于 2014-7-7 13:03 | 只看該作者

不錯(cuò)的例程,,感謝!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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