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

QQ登錄

只需一步,快速開始

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

單片機(jī)串行控制七段數(shù)碼管代碼錯(cuò)誤?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:998050 發(fā)表于 2021-12-29 00:02 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本帖最后由 mentooo 于 2021-12-29 12:23 編輯

《實(shí)例解讀51單片機(jī)完全學(xué)習(xí)與應(yīng)用》程序8-15
目標(biāo):數(shù)碼管顯示1和5
原代碼如下:Keil調(diào)試不正確!新手求解
  1. ORG                00H                           
  2. START:
  3.         MOV                30H,#1                        ; 低位七段數(shù)碼管DS0顯示數(shù)據(jù)
  4.         MOV                31H,#5                        ; 高位七段數(shù)碼管DS1顯示數(shù)據(jù)
  5. MOV             R0,#30H                        ; R0=30H
  6.         MOV             R1,#40H                        ; R1=40H
  7. MOV             R2,#2                        ; R2=2
  8. DP10:   
  9. MOV      DPTR,#TABLE           ; 裝表
  10. MOV             A,@R0                        ; 將R0所指的數(shù)據(jù)載入A
  11.         MOVC            A,@A+DPTR              ; 取表
  12.         MOV             @R1,A                        ; 把數(shù)據(jù)暫時(shí)保存在R1所指的地址中
  13. INC                R1                                ; R1自增1
  14. INC                R0                                ; R0自增1
  15.         DJNZ        R2,DP10                        ; 如果R2不等于0,說明沒有取完兩個(gè)段碼,跳回DP10循環(huán)
  16.         MOV             R0,#40H               ; R0=40H,指向剛才保存段碼的空間
  17.         MOV             R1,#2                  ; R1=2,段碼共有2個(gè)字節(jié)數(shù)
  18. DP11:   
  19. MOV             R2,#8                  ; R2=8,每位顯示數(shù)據(jù)共有8個(gè)段碼,R2作計(jì)數(shù)器 
  20.         MOV             A,@R0                 ; 把R0指向的段碼數(shù)據(jù)載入A
  21. DP12:   
  22. RLC                A                      ; 段碼數(shù)據(jù)向左移動(dòng)一位
  23.         MOV                P2.0,C                  ; 串行輸出一位段碼數(shù)據(jù)
  24.         CLR                P2.1                    ; 發(fā)送位移脈沖
  25.         SETB        P2.1                        ; 形成上升沿
  26.         DJNZ        R2,DP12                        ; 判斷是否輸出8位段碼
  27.         INC                R0                                ; R0自增1
  28.         DJNZ        R1,DP11                        ; 判斷是否輸出兩個(gè)顯示數(shù)據(jù)
  29.         JMP                $

  30. TABLE:                                                ;七段數(shù)碼管顯示數(shù)據(jù)表(段碼)
  31. DB                40H,79H,24H,30H,19H ;0,1,2,3,4
  32.         DB                12H,02H,78H,00H,10H ;5,6,7,8,9
  33.         END
復(fù)制代碼




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

使用道具 舉報(bào)

沙發(fā)
ID:155507 發(fā)表于 2021-12-29 17:52 | 只看該作者
Keil沒有問題呀



你的Keil有什么錯(cuò)誤?


回復(fù)

使用道具 舉報(bào)

板凳
ID:998050 發(fā)表于 2021-12-29 22:00 | 只看該作者

這個(gè)程序 p2.0口 會(huì)一直輸出0  ,因?yàn)镽LC  A的值就是0
《實(shí)例解讀51單片機(jī)完全學(xué)習(xí)與應(yīng)用》第210頁。
我再研究下。
回復(fù)

使用道具 舉報(bào)

地板
ID:624769 發(fā)表于 2021-12-30 09:55 | 只看該作者

        SETB        P2.1                        ; 形成上升沿
        CLR          P2.1                    ; 發(fā)送位移脈沖
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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