找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求教:用數(shù)碼管動態(tài)顯示法,編匯編程序,使6位數(shù)碼管顯示從000000到FFFFFF,時間間隔1s

[復(fù)制鏈接]
ID:876573 發(fā)表于 2021-4-23 13:37 | 顯示全部樓層 |閱讀模式
求教:用數(shù)碼管動態(tài)顯示法,編匯編程序,使6位數(shù)碼管顯示從000000到FFFFFF,時間間隔1s,請大佬指點(diǎn)一下,或者幫忙修改一下下面的程序(次程序是顯示:000000-999999,辛苦修改成000000-FFFFFF)






這3張圖片是實(shí)驗(yàn)書上的,第4張是我畫的Proteus原理圖(附件的程序是000000-999999顯示的參考程序),但是編譯好了之后用我的原理圖仿真后只顯示000000,有問題不知道什么原因,請指點(diǎn)謝謝!是不是我畫的原理圖哪里不對?原理圖如果對的話,把上面的000000-999999的程序hex寫進(jìn)51單片機(jī)應(yīng)該顯示000000-999999才對啊,請高手指點(diǎn)一下我的原理圖或者程序應(yīng)該怎么改?(老師的要求是按照實(shí)驗(yàn)書上的接法)謝謝!


下面是000000-999999的參考匯編程序

        ORG        0000H
        LJMP        MAIN
        ORG        0030H                ;MAINN主程序
MAIN:        MOV        SP,        #70H        ;設(shè)置堆棧SP
        MOV        30H,        #00H        ;設(shè)置計(jì)算區(qū)(30H-32H)的初值
        MOV        31H,        #00H       
        MOV        32H,        #00H
SEND:        LCALL        GIVE                ;計(jì)算區(qū)的值送至顯示緩沖區(qū)
        MOV        R7,        #159        ;顯示時間初值
SHOW:        LCALL        DISP                ;調(diào)用顯示子程序
        DJNZ        R7,        SHOW        ;顯示時間到?
        LCALL        ADD1                ;計(jì)算區(qū)的值加1
        LJMP        SEND
;GIVE        送數(shù)子程序
GIVE:        MOV        R0,        #45H        ;顯示緩沖區(qū)末址
        MOV        R1,        #32H        ;計(jì)算區(qū)末址
        MOV        R2,        #03H       
GETBIT:        MOV        A,        @R1        ;計(jì)算區(qū)的值送顯示緩沖區(qū)
        ANL        A,        #0FH
        MOV        @R0,        A
        DEC        R0
        MOV        A,        @R1
        ANL        A,        #0F0H
        SWAP        A
        MOV        @R0,        A
        DEC        R0
        DEC        R1
        DJNZ        R2,        GETBIT        ;送數(shù)送完了嗎?
        RET
;ADD1:        加1子程序
ADD1:        MOV        R1,        #32H        ;計(jì)算區(qū)末址
        MOV        R2,        #03H
        SETB        C
BCD1:        CLR        A
        ADDC        A,        @R1
        DA        A                ;調(diào)整相加結(jié)果為十進(jìn)制
        MOV        @R1,        A        ;保存結(jié)果
        DEC        R1                ;地址指針減1
        DJNZ        R2,        BCD1
        RET
;DISP顯示子程序
DISP:        MOV        R0,        #40H        ;顯示緩沖區(qū)首址
        MOV        R2,        #20H        ;初始位碼
        MOV        R3,        #06H       
CLOSE:        CLR        A                ;關(guān)顯示
        MOV        DPTR,        #8002H
        MOVX        @DPTR,        A
        MOV        A,        @R0        ;查表得段碼
        MOV        DPTR,        #TABLE       
        MOVC        A,        @A+DPTR
        MOV        DPTR,        #8004H        ;送段碼
        MOVX        @DPTR,        A
        MOV        DPTR,        #8002H        ;送位碼
        MOV        A,        R2       
        MOVX        @DPTR,        A
        LCALL        DELAY                ;延時1毫秒
        INC        R0                ;顯示緩沖區(qū)地址指針加1
        RR        A                ;位碼右移
        MOV        R2,        A
        DJNZ        R3,        CLOSE        ;6位數(shù)碼管顯示完了嗎?
        RET
;DELAY        延時子程序 晶體震蕩頻率為12MHz時,延時約1毫秒
DELAY:        MOV        R4,        #5
DELAY1:        MOV        R5,        #100
        DJNZ        R5,        $
        DJNZ        R4,        DELAY1
        RET
;TABLE 段碼表對應(yīng)0-F的段碼
TABLE:        DB        3FH,06H,5BH,4FH,66H,6DH,7DH,07H
        DB        7FH,6FH,77H,7CH,39H,5EH,79H,71H
        END       

題目5_3.jpg
題目5_2.jpg
題目5_1.jpg
51hei圖片20210423112050.png
回復(fù)

使用道具 舉報(bào)

ID:876573 發(fā)表于 2021-4-24 08:24 | 顯示全部樓層
沒人回復(fù)嗎,急等大神指點(diǎn),謝謝!
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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