欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8729|回復(fù): 7
收起左側(cè)

基于51單片機(jī)的99-00倒計(jì)時秒表

[復(fù)制鏈接]
ID:372070 發(fā)表于 2018-7-15 20:52 | 顯示全部樓層 |閱讀模式
;有位網(wǎng)友寫了一個倒計(jì)時秒表的程序,程序中的變量,采用了逐次加一的方法。;變量加一,怎么能夠倒計(jì)時呢?;原來,程序中段碼的排列次序,反過來了。;于是:;當(dāng)變量是0的時候,查找出來9的段碼,送去顯示;;當(dāng)變量是1的時候,查找出來8的段碼,送去顯示;;……;當(dāng)變量是9的時候,查找出來1的段碼,送去顯示。

;更改一下七段碼表的次序,竟然可以使程序由正計(jì)時,變成倒計(jì)時!;構(gòu)思極為巧妙。;PROTEUS 仿真截圖如下:
11.png

;程序使用匯編語言編寫,原程序的結(jié)構(gòu)有些凌亂,沒有達(dá)到預(yù)期的效果。;做而論道稍加整理,可以正常工作了,全部程序如下。;硬件中,設(shè)置了一個按鍵,用以控制計(jì)時器的啟動、暫停和復(fù)位。

SECOND  EQU    30H
TCOUNT  EQU    31H
KCOUNT  EQU    32H
KEY     BIT    P3.7
    ORG   00H
    SJMP  START
    ORG   0BH
    LJMP  T0_INT
;----------------------------------------
START:
    MOV  P0, #6FH     ;開始, 數(shù)碼管顯示"99"
    MOV  P2, #6FH

    MOV  TMOD, #01H   ;T0定時方式1
    MOV  TH0, #(65536 - 50000) / 256
    MOV  TL0, #(65536 - 50000) MOD 256
    MOV  IE, #82H

    MOV  SECOND, #0
    MOV  TCOUNT, #0
    MOV  KCOUNT, #0
;----------------------------------------
K0:
    JB   KEY, $       ;等待按鍵按下
    CALL DELAY        ;延時
    JB   KEY, K0      ;沒有按下,就是抖動
    JNB  KEY, $       ;等待按鍵松開
    INC  KCOUNT       ;按鍵次數(shù)值加1
;----------------------
    MOV  A, KCOUNT    ;判斷按鍵次數(shù)
K1:
    CJNE A, #1, K2
    SETB TR0          ;第1次按鍵, 啟動定時器
    JMP  K0
;----------------------
K2:
    CJNE A, #2, START
    CLR  TR0          ;第2次按鍵, 關(guān)閉定時器
    JMP  K0
;----------------------------------------
T0_INT:
    MOV  TL0, #(65536 - 50000) MOD 256
    MOV  TH0, #(65536 - 50000) / 256
    INC  TCOUNT
    MOV  A, TCOUNT
;    CJNE A, #2, T0_END ;是否計(jì)0.1秒?
    CJNE A, #10, T0_END ;2, 速度太快,不便觀察,暫用10
    MOV  TCOUNT, #0
    INC  SECOND
    MOV  A, SECOND
    CJNE A, #100,  DISP ;是否夠10秒?
    MOV  SECOND, #0
DISP:
    MOV  DPTR, #TABLE
    MOV  A, SECOND
    MOV  B, #10
    DIV  AB
    MOVC A, @A+DPTR     ;顯示時間
    MOV  P0, A
    MOV  A, B
    MOVC A, @A+DPTR
    MOV  P2, A
T0_END:
    RETI        
;----------------------------------------
TABLE:
;9~0的段碼, 反序排序。使用反序,可顯示倒計(jì)時
    DB   6FH, 7FH, 07H, 7DH, 6DH
    DB   66H, 4FH, 5BH, 06H, 3FH
;0~9的段碼, 正序
;    DB   3FH, 06H, 5BH, 4FH, 66H
;    DB   6DH, 7DH, 07H, 7FH, 6FH
;----------------------------------------
DELAY:
    MOV  R6, #20
D1: MOV  R7, #250
    DJNZ R7, $
    DJNZ R6, D1
    RET
;----------------------------------------
    END



回復(fù)

使用道具 舉報(bào)

ID:308903 發(fā)表于 2018-7-16 16:59 | 顯示全部樓層
用以控制計(jì)時器的啟動、暫停和復(fù)位:::::::::::: 從上面程序分析,K0 是用來計(jì)數(shù),K1 是用來啟動定時器,K2是用來關(guān)掉定時器,那前面二次還好理解,第一次按下,計(jì)數(shù)一,且打開定時,也就是倒計(jì)時開始。那么第二次按下,計(jì)數(shù)二,并且關(guān)掉定時,那倒計(jì)時定住不走。 要是,到了第三次按下,計(jì)數(shù)清零,倒計(jì)時復(fù)位99...., 也就是說,暫停之后,不是繼續(xù)倒計(jì)時,而是復(fù)位了了。

嗯準(zhǔn)確點(diǎn)就是  啟動,停止,復(fù)位。  三個功能

不知道分析的對不對,盯了一下午,眼花頭暈了

評分

參與人數(shù) 1黑幣 +60 收起 理由
admin + 60 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:741432 發(fā)表于 2020-5-13 11:39 | 顯示全部樓層
tcount是代表什么?
回復(fù)

使用道具 舉報(bào)

ID:308903 發(fā)表于 2018-7-19 09:54 | 顯示全部樓層
但是,就個位在變,十位一直不動
回復(fù)

使用道具 舉報(bào)

ID:308903 發(fā)表于 2018-7-19 09:33 | 顯示全部樓層
今天又重新仿真了下,發(fā)現(xiàn),昨天說錯了...., CJNE A, #2, T0_END  是記 0.1秒  CJNE A, #10, T0_END  記1秒....額,為啥呢,難道晶振選錯了? 初值付錯了?
回復(fù)

使用道具 舉報(bào)

ID:308903 發(fā)表于 2018-7-18 16:56 | 顯示全部樓層
PS: 程序一個個打出來仿真了下,有個注意點(diǎn)提醒下在看的同學(xué)們:=======
TO_INT:
。。。。。。。。。

;    CJNE A, #2, T0_END ;是否計(jì)0.1秒?
    CJNE A, #10, T0_END ;2, 速度太快,不便觀察,暫用10
。。。。。。。。。
========
這里面,選  CJNE A, #2, T0_END    才是按秒倒數(shù),所以,用的時候,把前面的冒號去掉
下面那句, CJNE A, #10, T0_END    應(yīng)該是放慢5倍來倒減,即5秒減一個數(shù)

另外,不知道為啥,個人遇到的問題,望知道的同學(xué)解惑下

MOV        TH0,#(65536 - 50000) / 256
MOV        TL0,#(65536 - 50000) MOD 256


賦初值 的語句,竟然在proteus 13 的自帶軟件中編譯不了,而在KEIL 中可以編譯





說超出范圍...

說超出范圍...

評分

參與人數(shù) 1黑幣 +80 收起 理由
admin + 80 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:372341 發(fā)表于 2018-7-16 10:19 | 顯示全部樓層
謝謝樓主
回復(fù)

使用道具 舉報(bào)

ID:308903 發(fā)表于 2018-7-16 08:37 | 顯示全部樓層
我喜歡匯編....謝謝樓主
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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