久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1568|回復: 2
打印 上一主題 下一主題
收起左側

求助,幫忙看下哪里錯了,程序運行不對 數碼管亂碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:940228 發表于 2021-6-19 01:19 來自觸屏版 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式


COM8255        EQU        8003HOUTA        EQU        8000HOUTB        EQU        8001HOUTC        EQU        8002HBUFFER        EQU        20H                ;顯示緩沖區占用3個字節,20H-22HHOUR        EQU        23H                ;小時計數單元MIN        EQU        24H                ;分鐘計數單元SEC        EQU        25H                ;秒計數單元S_27        BIT        P1.0                ;工作方式選擇開關,“1”為正常計時方式S_28        BIT        P1.1                ;調整小時/分鐘選擇開關,“1”為調整小時S_29        BIT        P3.2                ;小時/分鐘數加1按鍵        ORG        0        LJMP        START        ORG        03H        SETB        TR1                ;啟動T1計數,用于20ms消抖動                RETI        ORG        0BH        LJMP        T0S                ;轉計時處理        ORG        1BH        LJMP        T1S                ;轉S29按鍵處理        ORG        30HSTART:        MOV        SP,#60H        MOV        DPTR,#COM8255        ;(8003>DPTR);指向8255命令口        MOV        A,#80H                ;(8000>A)         8255芯片PA、PB、PC設為基本輸出模式        MOVX        @DPTR,A                ;(A>(DPTR))        MOV        TMOD,#11H        ;                 設T0、T1為定時器        MOV        TH0,#4CH        ;T0定時50ms,晶振頻率11.0592MHz        MOV        TL0,#0        MOV        TH1,#0B8H        ;T1定時20ms,晶振頻率11.0592MHz        MOV        TL1,#00H        SETB        PT0                ;T0為高級中斷        SETB         ET0                ;允許T0中斷        SETB        ET1                ;允許T1中斷        SETB         IT0                ;設定INT0為邊沿中斷        SETB        EA                ;開中斷        MOV        BUFFER,#0H        ;顯緩區清零        MOV        BUFFER+1,#0H        MOV        BUFFER+2,#0H        MOV        HOUR,#0H        ;時分秒單元清零        MOV        MIN,#0H        MOV        SEC,#0H        MOV        0AH,#14H                ;1區R2,1秒中斷計次MAIN:        SETB        S_27        JB        S_27,MM1        ;正常計時模式則轉        SETB        EX0                ;允許INT0中斷        CLR        TR0                ;停止T0計數        MOV        SEC,#0H                ;秒單元清零        SJMP        MM2MM1:        CLR        EX0                ;禁止INT0中斷        SETB        TR0                ;啟動T0計數MM2:        MOV        BUFFER,HOUR        ;將時分秒送顯        MOV        BUFFER+1,MIN                MOV        BUFFER+2,SEC        LCALL        DISP                ;顯示時分秒        SJMP        MAIN;-------主程序結束------------------------------------;;====================================================;T0中斷服務程序;---------------------------------------------------T0S:        PUSH        PSW        PUSH        ACC        SETB        RS0                ;選擇1區工作寄存器        CLR        RS1        MOV        TH0,#4CH        ;T0時50ms,晶振頻率11.0592MHz        MOV        TL0,#0H        DJNZ        R2,T0S1        MOV        R2,#14H                ;50ms中斷20次為1秒        MOV        A,SEC        ADD        A,#1        DA        A        MOV        SEC,A        CJNE        A,#60H,T0S1        ;不到60秒則轉移        MOV        SEC,#0        MOV        A,MIN        ADD        A,#1        DA        A        MOV        MIN,A        CJNE        A,#60H,T0S1        ;不到60分則轉移        MOV        MIN,#0        MOV        A,HOUR        ADD        A,#1        DA        A        MOV        HOUR,A        CJNE        A,#24H,T0S1        ;不到24小時則轉移        MOV         HOUR,#0T0S1:        POP        ACC        POP        PSW        RETI;====================================================;T1中斷服務程序;---------------------------------------------------T1S:        PUSH        PSW        PUSH        ACC        SETB        S_29        JB        S_29,T1S2        ;S29沒有按下則轉移        SETB        S_28        JB        S_28,T1S1        ;S28為高電平,調整小時則轉        MOV        A,MIN        ADD        A,#1        DA        A        MOV        MIN,A        CJNE        A,#60H,T1S2        MOV        MIN,#0        SJMP        T1S2T1S1:        MOV        A,HOUR        ADD        A,#1        DA        A        MOV        HOUR,A        CJNE        A,#24H,T1S2        MOV        HOUR,#0T1S2:        MOV        TH1,#0B8H        ;T1定時20ms,晶振頻率11.0592MHz        MOV        TL1,#00H        CLR        TR1        CLR        IE0        POP        ACC        POP        PSW        RETI;=====================================================;動態顯示子程序;使用寄存器:R0,R2,R3,A,DPTR;-----------------------------------------------------DISP:        MOV        DPTR,#OUTB        ;消隱數碼管,實際實驗箱上不需要        MOV        A,#0FFH                ;消隱數碼管,實際實驗箱上不需要        MOVX        @DPTR,A                ;消隱數碼管,實際實驗箱上不需要        MOV        R0,#BUFFER+2        ;指向顯緩區最后一個字節        MOV        R3,#3                ;顯示字節數為3字節        MOV        R2,#0FEH        ;位碼初值,點亮最右邊的數碼管LOOP:        MOV        A,@R0        ANL        A,#0FH                ;取出低4位        MOV        DPTR,#TAB        MOVC        A,@A+DPTR        CLR        ACC.7                ;點亮小數點        MOV        DPTR,#OUTA        MOVX        @DPTR,A                ;段碼送8255的A口        MOV        A,R2        INC        DPTR                ;指向8255的B口        MOVX        @DPTR,A                ;位碼送8255的B口        RL        A                ;位碼左移        MOV        R2,A                ;存位碼        LCALL        DELAY2MS        ;延時2ms        MOV        DPTR,#OUTB        ;消隱數碼管,實際實驗箱上不需要        MOV        A,#0FFH                ;消隱數碼管,實際實驗箱上不需要        MOVX        @DPTR,A                ;消隱數碼管,實際實驗箱上不需要        MOV        A,@R0        ANL        A,#0F0H                ;取出高4位        SWAP        A        MOV        DPTR,#TAB        MOVC        A,@A+DPTR        MOV        DPTR,#OUTA        MOVX        @DPTR,A                ;段碼送8255的A口        MOV        A,R2        INC        DPTR                ;指向8255的B口        MOVX        @DPTR,A                ;位碼送8255的B口        RL        A                ;位碼左移        MOV        R2,A                ;存位碼        LCALL        DELAY2MS        ;延時2ms                MOV        DPTR,#OUTB        ;消隱數碼管,實際實驗箱上不需要        MOV        A,#0FFH                ;消隱數碼管,實際實驗箱上不需要        MOVX        @DPTR,A                ;消隱數碼管,實際實驗箱上不需要                DEC        R0        DJNZ        R3,LOOP        MOV        A,#0FFH        MOVX        @DPTR,A                ;熄滅所有數碼管        RETTAB:        DB        0C0H,0F9H,0A4H,0B0H,99H         DB        92H, 82H, 0F8H,80H, 90H;==============================================;2ms延時子程序;使用寄存器:R7;對于11.0592MHz晶振,實際延時2174微秒=2.174ms;----------------------------------------------DELAY2MS:        MOV        R7,#250DD1:        NOP        NOP        NOP        NOP        NOP        NOP        DJNZ        R7,DD1        RET        END
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:96682 發表于 2021-6-19 15:20 來自觸屏版 | 只看該作者
顯然是仿真用錯數碼管了
回復

使用道具 舉報

板凳
ID:939710 發表于 2021-6-20 11:50 | 只看該作者
這個仿真不用這么麻煩,段選和單片機間加個鎖存器就行,位選可以加或者不加
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 四虎永久免费地址 | 羞羞网站免费观看 | 在线激情视频 | 日本在线观看网址 | www.夜夜骑| 免费三级黄 | 午夜电影网 | 欧美午夜一区 | 玖玖玖在线观看 | 亚洲精品区| 久久骚| 国产乱码精品一区二区三区五月婷 | 中文字幕在线精品 | 人人人人人爽 | 精品久久久久久一区二区 | 亚洲视频在线播放 | www国产亚洲精品久久网站 | 成人av一区 | 欧美日韩国产一区二区 | 亚洲一区欧美一区 | 日韩精品一区二区三区在线观看 | 成人综合视频在线 | 亚洲va中文字幕 | 99久久久久| 亚洲精品免费在线观看 | 国产精品久久久av | 一级视频黄色 | 免费观看一级特黄欧美大片 | 欧美日韩精品在线一区 | 久久久夜夜夜 | 黄网站免费在线看 | 久久av网| 精品国产黄a∨片高清在线 www.一级片 国产欧美日韩综合精品一区二区 | 久久一区精品 | 久久精品这里精品 | 91最新视频 | 日韩二区 | 99精品久久久 | 免费精品久久久久久中文字幕 | 亚洲国产欧美在线 | 成人福利网|