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

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

QQ登錄

只需一步,快速開(kāi)始

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

51單片機(jī)匯編數(shù)碼管倒計(jì)時(shí)顯示程序問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:669989 發(fā)表于 2019-12-21 18:36 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
剛學(xué)單片機(jī)三個(gè)星期的萌新,有問(wèn)題實(shí)在解決不了,求大佬幫個(gè)忙。單片機(jī)型號(hào)STC95C52,數(shù)碼管為共陰極數(shù)碼管,LED連接數(shù)碼管運(yùn)行,晶振為11.0592MHz,我設(shè)的定時(shí)中斷口為P3.3。其他接口和題目我都寫(xiě)在紙上,現(xiàn)在的問(wèn)題就是:?jiǎn)纹瑱C(jī)能夠正常運(yùn)行,能夠正常倒計(jì)時(shí),LED能夠正常運(yùn)行,但是數(shù)碼管顯示的十位上(左邊)的數(shù)字一直在閃,我怎么調(diào)都調(diào)不好,要么閃要么一秒只跳一下,就是不能穩(wěn)定顯示,實(shí)在沒(méi)辦法了,求大佬幫忙看看程序,從MAIN開(kāi)始就行了,前面應(yīng)該都沒(méi)問(wèn)題,不會(huì)匯編的大佬就不用進(jìn)來(lái)了,謝謝各位大佬!!!

SECOND EQU 30H
TCOUNT EQU 31H
      
    ORG 0000H
    LJMP START
    ORG 001BH
    LJMP T_0
  
START:SETB IT1
      SETB EX1
   SETB EA
   MOV R6,#0
      MOV R0,#00H
   MOV R1,#01H
   MOV R2,#00H
   MOV R3,#00H
   MOV DPTR,#TABLE
   LCALL DISP1
DISP1:MOV R7,#200
DISP2:MOV A,R0
      ORL P2,#00001110B
   ANL P2,#11111110B
   MOVC A,@A+DPTR
   MOV P0,A
   LCALL DELAY
   MOV A,R1
   ORL P2,#00001101B
   ANL P2,#11111101B
   MOVC A,@A+DPTR
   MOV P0,A
   LCALL DELAY
   MOV A,R2
   ORL P2,#00001011B
   ANL P2,#11111011B
   MOVC A,@A+DPTR
   MOV P0,A
   LCALL DELAY
   MOV A,R3
   ORL P2,#00000111B
   ANL P2,#11110111B
   MOVC A,@A+DPTR
   MOV P0,A
   LCALL DELAY
   RET
DONE:SJMP DONE
  T_0:PUSH PSW
      PUSH ACC
   LJMP MAIN
   POP ACC
   POP PSW
   RETI


MAIN: MOV SECOND,#90
    MOV TCOUNT,#00H
       MOV TMOD,#01H
    MOV TH0,#3CH
    MOV TL0,#0B0H
    SETB TR0
DISP:  MOV A,SECOND
       MOV B,#10
    DIV AB
    MOV DPTR,#TABLE
    ORL P2,#00000101B
    ANL P2,#11111101B
    MOVC A,@A+DPTR
    MOV P0,A
    LCALL DELAY2
    MOV A,B
    ORL P2,#00001011B
    ANL P2,#11111011B
    MOVC A,@A+DPTR
    MOV P0,A
    LCALL DELAY2
   
WAIT:  JNB TF0,WAIT
       CLR TF0
    MOV TH0,#3CH
    MOV TL0,#0B0H
    INC TCOUNT
    MOV A,TCOUNT
    CJNE A,#20,NEX  
    MOV TCOUNT,#00H
    DEC SECOND
    MOV A,SECOND
    CJNE A,#00H,NEXT
    MOV SECOND,#90
    CLR P2.6
    CLR P2.5
    CLR P2.4
    CLR P2.3
    CLR P2.2
    CLR P2.1
    CLR P2.0   
    JNB P2.0,DONE1
NEX:   LJMP DISP
NEXT:  LJMP WAIT
DELAY:MOV R5,#25
   D1:MOV R4,#25
   D2:DJNZ R4,D2
      DJNZ R5,D1
   RET
DONE1:LJMP START1
START1:SETB P1.5
       LCALL DELAY
    CLR P1.5
    LCALL DELAY
    LJMP START1
DELAY1:MOV R0,#50
    D3:MOV R1,#30
    D4:DJNZ R1,D4
       DJNZ R0,D3
    RET
DELAY2:MOV R0,#5
    D5:MOV R1,#5
    D6:DJNZ R1,D4
       DJNZ R0,D3
    RET
TABLE: DB 03FH,006H,05BH,04FH,066H
       DB 06DH,07DH,007H,07FH,06FH
       END


IMG_20191221_182202.jpg (5.26 MB, 下載次數(shù): 40)

IMG_20191221_182202.jpg

IMG_20191221_182138.jpg (3.79 MB, 下載次數(shù): 47)

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

使用道具 舉報(bào)

沙發(fā)
ID:401564 發(fā)表于 2019-12-22 15:53 | 只看該作者
代碼在整齊
主要的指令后面要加注釋,你整個(gè)程序下來(lái),一條注釋都沒(méi)有,不說(shuō)別人,就是你自己過(guò)幾天再來(lái)看都不一定知道你寫(xiě)了什么呀參考一下我的,自己改動(dòng)一下吧,自己是可以慢慢找到問(wèn)題的
回復(fù)

使用道具 舉報(bào)

板凳
ID:669989 發(fā)表于 2019-12-23 20:45 | 只看該作者
這里是正確的代碼,給后面來(lái)的人留條可能存在的活路,等我過(guò)兩天實(shí)驗(yàn)報(bào)告寫(xiě)完會(huì)連圖一起發(fā)上來(lái)

SECOND EQU 30H
TCOUNT EQU 31H
      
           ORG 0000H
           LJMP START
           ORG 0013H
           LJMP T_0
           ORG 0040H
START:MOV SP,#60H
      SETB EX1
          SETB IT1
          SETB EA
      MOV R0,#00H
          MOV R1,#00H
          MOV R2,#00H
          MOV R3,#00H
          MOV DPTR,#TABLE
          LCALL DISP1
DISP1:MOV A,R0
      ORL P2,#00001110B
          ANL P2,#11111110B
          MOVC A,@A+DPTR
          MOV P0,A
          LCALL DELAY
          MOV A,R1
          ORL P2,#00001101B
          ANL P2,#11111101B
          MOVC A,@A+DPTR
          MOV P0,A
          LCALL DELAY
          MOV A,R2
          ORL P2,#00001011B
          ANL P2,#11111011B
          MOVC A,@A+DPTR
          MOV P0,A
          LCALL DELAY
          MOV A,R3
          ORL P2,#00000111B
          ANL P2,#11110111B
          MOVC A,@A+DPTR
          MOV P0,A
          LCALL DELAY
          RET
DONE:  SJMP DONE
MAIN:  MOV SECOND,#10
           MOV TCOUNT,#00
       MOV TMOD,#01H
           MOV TH0,#3CH
           MOV TL0,#0B0H
           SETB TR0
DISP:  MOV A,SECOND
       MOV B,#10
           DIV AB
           MOV R0,A
           MOV R1,B
           MOV DPTR,#TABLE
           MOV R4,#1
DISP2: MOV R3,#100
DISP3: MOV A,R0
       ORL P2,#11110101B
           ANL P2,#11111101B
           MOVC A,@A+DPTR
           MOV P0,A
           LCALL DELAY2
           MOV A,R1
           ORL P2,#11111011B
           ANL P2,#11111011B
           MOVC A,@A+DPTR
           MOV P0,A
           LCALL DELAY2
           DJNZ R3,DISP3
           LJMP WAIT
WAIT: JNB TF0,WAIT
       CLR TF0
           MOV TH0,#3CH
           MOV TL0,#0B0H          
           DEC SECOND
           MOV A,SECOND
           CJNE A,#00,DISP
           MOV SECOND,#10
           CLR p2.7
           CLR P2.6
           CLR P2.5
           CLR P2.4
           CLR P2.3
           CLR P2.2
           CLR P2.1
           CLR P2.0
           LJMP START1
START1:SETB P1.5
       LCALL DELAY1
           CLR P1.5
           LCALL DELAY1
           LJMP START1                 
          
  T_0:PUSH PSW
      PUSH ACC
          LCALL MAIN
          POP ACC
          POP PSW
          RETI

DELAY:MOV R5,#25
   D1:MOV R4,#25
   D2:DJNZ R4,D2
      DJNZ R5,D1
          RET

DELAY1:MOV R6,#15
    D3:MOV R7,#15
    D4:DJNZ R7,D4
       DJNZ R6,D3
           RET

DELAY2:MOV R5,#75
   D5:MOV R4,#200
   D6:DJNZ R4,D2
      DJNZ R5,D1
          RET

TABLE: DB 03FH,006H,05BH,04FH,066H
       DB 06DH,07DH,007H,07FH,06FH
       END
回復(fù)

使用道具 舉報(bào)

地板
ID:401564 發(fā)表于 2019-12-23 22:26 | 只看該作者
注釋,注釋呀,人家寫(xiě)C語(yǔ)言都要有注釋的,更不用說(shuō)匯編了,沒(méi)有注釋,沒(méi)有分清標(biāo)號(hào)的,哪怕是只有幾十行代碼,別人看起來(lái)也是很難理解的
如果你是復(fù)制了別人的代碼,最好也是自己給加上注釋,關(guān)鍵部分加完注釋,你基本上就知道這程序是怎么跑的了
           CLR p2.7
           CLR P2.6
           CLR P2.5
           CLR P2.4
           CLR P2.3
           CLR P2.2
           CLR P2.1
           CLR P2.0
           LJMP START1
START1:SETB P1.5

你看一下這一段,這用不著那么多的CLR指令的,  MOV P2,#000H就可以了
LJMP START1
LJMP START1這個(gè)標(biāo)號(hào)就在下一條指令了,那LJMP指令就沒(méi)有存在的意義了
LJMP WAIT
WAIT: JNB TF0,WAIT這個(gè)地方也是一樣的
這程序?qū)戇@太隨意了,一旦有什么問(wèn)題,想找原因要找半天,如果是剛剛?cè)腴T(mén)就更難了
回復(fù)

使用道具 舉報(bào)

5#
ID:669989 發(fā)表于 2020-1-3 15:32 | 只看該作者
Y_G_G 發(fā)表于 2019-12-23 22:26
注釋,注釋呀,人家寫(xiě)C語(yǔ)言都要有注釋的,更不用說(shuō)匯編了,沒(méi)有注釋,沒(méi)有分清標(biāo)號(hào)的,哪怕是只有幾十行代碼,別人 ...

好吧好吧,以后寫(xiě)程序會(huì)記得加的
回復(fù)

使用道具 舉報(bào)

6#
ID:669989 發(fā)表于 2020-1-3 15:43 | 只看該作者
不會(huì)上傳圖片。。。我自己來(lái)闡述一下什么問(wèn)題吧,在倒計(jì)時(shí)那段程序顯示的時(shí)候剛開(kāi)始因?yàn)槲抑蛔隽藗(gè)位數(shù)的循環(huán),沒(méi)有把十位和更高位一起放進(jìn)去循環(huán),所以就會(huì)出現(xiàn)只有一個(gè)數(shù)字穩(wěn)定顯示的問(wèn)題,其他的要么一秒閃一次,要么閃的頻率眼睛看得到,所以我給兩個(gè)數(shù)字放在一起套了一層循環(huán),這樣就都能穩(wěn)定顯示了。我?guī)煾狄埠蜕厦娴拇罄姓f(shuō)了一樣的話,說(shuō)我程序?qū)懙奶珌y了。。。原諒我沒(méi)學(xué)過(guò)匯編語(yǔ)言就直接上單片機(jī)。。。
回復(fù)

使用道具 舉報(bào)

7#
ID:401564 發(fā)表于 2020-1-3 17:29 | 只看該作者
匯編和硬件關(guān)系很大的,跟C不一樣的
T_0:PUSH PSW
      PUSH ACC
   LJMP MAIN
   POP ACC
   POP PSW
   RETI
像你這個(gè)中斷程序,進(jìn)入中斷之后, LJMP MAIN就跳到別的地方去了,都不知道跑哪里去了

你這個(gè)程序一般人改不了,跳來(lái)跳去的,跟不上你的思路
這并不是一個(gè)很大程序,你最好是重新寫(xiě)一個(gè),把每個(gè)子程序的功能寫(xiě)上,子程序之間加上分割線分好
這樣也好找問(wèn)題
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久天天 | 激情久久久久 | 国产日韩欧美一区二区在线播放 | 电影午夜精品一区二区三区 | 成在线人视频免费视频 | 成人福利电影 | 亚洲综合婷婷 | 国产成人啪免费观看软件 | 高清不卡毛片 | 黑人中文字幕一区二区三区 | www.9191.com | 狠狠狠干 | 日韩在线免费视频 | 久久综合狠狠综合久久综合88 | 国产精品久久久久免费 | 亚洲男人的天堂网站 | 久久91精品国产 | 久久一区视频 | 亚洲欧美日韩在线一区二区 | 在线观看av网站永久 | 欧美欧美欧美 | 成人午夜高清 | 美女露尿口视频 | 激情六月丁香婷婷 | av在线电影网 | 国产精品电影网 | 免费av一区二区三区 | 综合精品在线 | 欧美日韩在线一区二区 | 精品一区二区三区视频在线观看 | 亚洲一区二区精品视频 | 在线观看黄色大片 | 精品国产黄a∨片高清在线 成人区精品一区二区婷婷 日本一区二区视频 | 久久伊人在 | 免费看a | 日韩欧美综合 | 国产高清一二三区 | 天天干天天谢 | 欧美精品欧美精品系列 | 成人精品鲁一区一区二区 | 欧美日韩手机在线观看 |