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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于89C51單片機(jī)的時(shí)鐘匯編程序設(shè)計(jì)顯示出現(xiàn)問題

[復(fù)制鏈接]
ID:659040 發(fā)表于 2019-12-14 12:22 | 顯示全部樓層 |閱讀模式
這是根某個(gè)共陽極數(shù)碼管的程序修改來的,替換為了陰極數(shù)碼管,對程序也進(jìn)行了相應(yīng)的改動(dòng),但顯示時(shí)間時(shí)無法按照應(yīng)有的順序進(jìn)行正常的顯示,求助各位大神,希望能指出被我忽略的錯(cuò)誤和有效的思路。

51hei.png

單片機(jī)源程序如下:
  1. ORG 0000H
  2. AJMP MAIN
  3. ORG 000BH
  4. LJMP INTT0

  5. ORG 0030H
  6. MAIN:
  7. MOV SP,#60H ;確立堆棧區(qū)
  8. MOV PSW,#00H
  9. MOV R0,#20H   ;RAM區(qū)首地址
  10. MOV R7,#5FH ;RAM區(qū)單元個(gè)數(shù)

  11. QL:
  12. MOV @R0,#00H ;RAM清零       
  13. INC R0
  14. DJNZ R7,QL

  15. MOV IP,#02H ;IP初始化,優(yōu)先定時(shí)器0
  16. MOV IE,#82H ;IE初始化
  17. MOV TMOD,#01H ;定時(shí)器0方式1工作
  18. LCALL PP ;調(diào)P.子程序

  19. NEXT:
  20. LCALL KEY ;按鍵檢測子程序
  21. JB ACC.0,RUNF ;A鍵按下運(yùn)行
  22. LCALL DISP ;調(diào)用顯示子程序
  23. SJMP NEXT

  24. RUNF:
  25. LCALL OUTT ;調(diào)傳送子程序
  26. LCALL TIME ;開電子鐘
  27. JK:
  28. LCALL DISP
  29. LCALL KEY
  30. JZ JK
  31. LCALL ANKEY        ;調(diào)用鍵功能子程序
  32. LCALL DISP
  33. SJMP JK

  34. ;P點(diǎn)顯示的8LED段碼初始化子程序
  35. PP:
  36. MOV 37H,#12 ;P點(diǎn)編碼送寄存器,對應(yīng)最左LED  (共陽極,0CH )
  37. MOV R0,#30H ;第8個(gè)LED,最右LED,段碼存儲(chǔ)的地址
  38. MOV R7,#07H         ;第8到第2個(gè)LED,共7個(gè),初始化段碼顯示空白
  39. PPP:
  40. MOV @R0,#10  ;顯示空白
  41. INC R0
  42. DJNZ R7,PPP
  43. RET

  44. ;鍵掃描子程序
  45. KEY:
  46. LCALL KEYS ;調(diào)用鍵值處理子程序
  47. JZ EXIT ;沒有鍵按下轉(zhuǎn)到返回
  48. LCALL DISP
  49. LCALL DISP ;調(diào)用顯示去抖動(dòng)
  50. LCALL KEYS
  51. JZ EXIT
  52. MOV B,20H ;保存鍵值
  53. KEYSF:
  54. LCALL KEYS
  55. JZ KEYY ;鍵釋放,轉(zhuǎn)到恢復(fù)鍵值
  56. LCALL DISP ;調(diào)顯示子程序延時(shí)
  57. AJMP KEYSF ;等到鍵釋放

  58. KEYY:
  59. MOV A,B ;鍵值送A
  60. EXIT:RET

  61. KEYS:
  62. MOV P1,#0FFH ;先向P1口寫1
  63. MOV A,P1 ;P1口值送A         (有按鍵按下,對應(yīng)0,取反后1)
  64. CPL A
  65. ANL A,#0FH ;保存P1口的低4位
  66. MOV 20H,A ;A值送20H保存
  67. RET

  68. ;鍵功能子程序
  69. ANKEY:
  70. CLR EA ;關(guān)中斷
  71. CHECK:
  72. JB TR0,YXZ ;判斷是否運(yùn)行
  73. K0:
  74. CJNE A,#01H,K1
  75. AJMP RUN ;A鍵按下,恢復(fù)運(yùn)行,轉(zhuǎn)運(yùn)行
  76. K1:
  77. CJNE A,#02H,K2
  78. AJMP KEY1 ;轉(zhuǎn)時(shí)調(diào)整
  79. K2:
  80. CJNE A,#40H,K3
  81. AJMP KEY2 ;轉(zhuǎn)分調(diào)整
  82. K3:
  83. CJNE A,#08H,OUT          ;轉(zhuǎn)
  84. AJMP KEY3 ;轉(zhuǎn)秒調(diào)整

  85. YXZ:
  86. JB ACC.0,STOP        ;A鍵按下,暫停
  87. AJMP OUT

  88. KEY1:
  89. MOV R0,#45H ;時(shí)調(diào)整
  90. LCALL ADD1 ;調(diào)加一子程序
  91. CLR C
  92. CJNE A,#24H,OUTT ;轉(zhuǎn)傳送顯示數(shù)據(jù)子程序
  93. ACALL CLR0 ;調(diào)時(shí)間清理子程序
  94. AJMP OUTT
  95. KEY2:
  96. MOV R0,#43H ;分調(diào)整
  97. LCALL ADD1
  98. CLR C
  99. CJNE A,#60H,OUTT
  100. ACALL CLR0
  101. AJMP OUTT
  102. KEY3:
  103. MOV R0,#41H ;秒調(diào)整
  104. ACALL ADD1
  105. CLR C
  106. CJNE A,#60H,OUTT
  107. ACALL CLR0

  108. ;傳送顯示數(shù)據(jù)子程序
  109. OUTT:
  110. MOV 30H,40H ;秒顯示單元40H-41H
  111. MOV 31H,41H
  112. MOV 32H,#11 ;"-"
  113. MOV 33H,42H ;分顯示單元42H-43H
  114. MOV 34H,43H
  115. MOV 35H,#11 ;"-"
  116. MOV 36H,44H ;時(shí)顯示單元44H-45H               
  117. MOV 37H,45H
  118. RET
  119. STOP:
  120. CLR TR0
  121. RET
  122. RUN:
  123. LCALL TIME ;調(diào)運(yùn)行電子鐘子程序
  124. OUT:
  125. SETB EA ;無鍵按下或完成功能跳出
  126. RET

  127. ;運(yùn)行電子鐘子程序                                                                       
  128. TIME:
  129. SETB EA
  130. MOV TL0,#0B0H  ;3CB0H
  131. MOV TH0,#3CH
  132. MOV R4,#20  ;50ms,20次循環(huán)
  133. SETB TR0 ;啟動(dòng)定時(shí)器0
  134. RET

  135. ;定時(shí)器0中斷處理子程序
  136. INTT0:
  137. PUSH ACC
  138. PUSH PSW
  139. CLR ET0
  140. CLR TR0                                                                         
  141. MOV TL0,#0B0H  ;重新設(shè)置定時(shí)初值
  142. MOV TH0,#3CH
  143. SETB TR0
  144. DJNZ R4,OUTT0  ;r4-1 != 0 1秒未到,轉(zhuǎn)OUTTO
  145. ADDSS:
  146. MOV R4,#14H  ;20次計(jì)數(shù)
  147. MOV R0,#41H  ;秒十位
  148. ACALL ADD1
  149. CLR C
  150. CJNE A,#60H,ADDMM ;1分到
  151. ADDMM:
  152. JC OUTT0         ;1分,60秒未到
  153. ACALL CLR0         ;1分到,清零
  154. MOV R0,#43H         ;分十位
  155. ACALL ADD1
  156. CLR C
  157. CJNE A,#60H,ADDHH ;1小時(shí)到
  158. ADDHH:
  159. JC OUTT0
  160. ACALL CLR0
  161. MOV R0,#45H          ;時(shí)十位
  162. ACALL ADD1
  163. CLR C
  164. CJNE A,#24H,HOUR ;1天到
  165. HOUR:
  166. JC OUTT0
  167. ACALL CLR0

  168. OUTT0:
  169. MOV 30H,40H ;秒顯示單元40H-41H
  170. MOV 31H,41H
  171. MOV 32H,#11 ;"-"
  172. MOV 33H,42H ;分顯示單元42H-43H
  173. MOV 34H,43H
  174. MOV 35H,#11 ;"-"
  175. MOV 36H,44H ;時(shí)顯示單元44H-45H               
  176. MOV 37H,45H
  177. POP PSW
  178. POP ACC
  179. SETB ET0
  180. RETI

  181. ;時(shí)間清理子程序
  182. CLR0:
  183. CLR A
  184. MOV @R0,A
  185. DEC R0
  186. MOV @R0,A
  187. RET

  188. ;加一子程序
  189. ADD1:
  190. MOV A ,@R0  ;取十位
  191. DEC R0
  192. SWAP A
  193. ORL A,@R0  ;組合十位與個(gè)位          
  194. ADD A,#01H  ;加1
  195. DA A ;十進(jìn)制調(diào)整
  196. MOV R3,A  ;暫存
  197. ANL A,#0FH  ;屏蔽十位
  198. MOV @R0,A  ;放入個(gè)位單元
  199. MOV A,R3  ;取值
  200. INC R0
  201. SWAP A
  202. ANL A,#0FH  ;屏蔽個(gè)位
  203. MOV @R0,A  ;放入十位單元
  204. MOV A,R3  
  205. RET

  206. DISP:
  207. MOV R1,#30H  
  208. MOV R2,#01H
  209. DISP1:
  210. MOV P2,R2
  211. MOV A,@R1
  212. MOV DPTR,#TAB
  213. MOVC A,@A+DPTR
  214. MOV P0,A
  215. CPL P0.0
  216. CPL P0.1
  217. CPL P0.2
  218. CPL P0.3
  219. CPL P0.4
  220. CPL P0.5
  221. CPL P0.6
  222. CPL P0.7
  223. ACALL DL  
  224. MOV A,R2
  225. JB ACC.7,DISP2          
  226. RL A                       
  227. INC R1
  228. MOV R2,A
  229. AJMP DISP1
  230. DISP2:RET
  231. TAB:DB 0c0H,0f9H,0a4H,0b0H,99H,92H,82H,0f8H,80H,90H,0FFH,0BFH,0CH         


  232. DL:
  233. MOV R6,#14H  
  234. DL1:
  235. MOV R7,#19H
  236. DL2:
  237. DJNZ R7,DL2
  238. DJNZ R6,DL1
  239. RET
  240. END
復(fù)制代碼

全部資料51hei下載地址:
shizhong.rar (30.47 KB, 下載次數(shù): 8)

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:235200 發(fā)表于 2019-12-14 16:38 | 顯示全部樓層
MOV P0,A
CPL P0.0
CPL P0.1
CPL P0.2
CPL P0.3
CPL P0.4
CPL P0.5
CPL P0.6
CPL P0.7
顯示程序中這一段完全沒必要這么寫
只需要把數(shù)據(jù)表中的數(shù)據(jù)對應(yīng)取反就變?yōu)榱斯碴帢O
TAB:DB 0c0H,0f9H,0a4H,0b0H,99H,92H,82H,0f8H,80H,90H,0FFH,0BFH,0CH
另外,位碼放在R2中,共陰是MOV R2,#01H,換共陰就是MOV R2,#0FEH
所以,如果共陽是正常顯示的話,只要改數(shù)據(jù)表和R2的值就變?yōu)榱斯碴?/td>
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩精品一区二区天天拍 | 国产精品久久久久久238 | 久久久激情视频 | 欧美激情精品久久久久久 | www.成人免费视频 | av黄色在线观看 | 美女国产| 久久蜜桃av一区二区天堂 | 亚洲综合在线一区二区 | 国产激情在线 | 青娱乐自拍 | 日韩精品一区二区三区中文在线 | 精品三区 | 日韩欧美不卡 | 亚洲成人一区二区 | 草b视频 | 国产成人综合网 | 宅男伊人 | 国产精品久久久久久久白浊 | 亚洲人在线 | 午夜视频精品 | 91久久电影 | 81精品国产乱码久久久久久 | 国产欧美精品一区二区 | 在线观看免费av网 | 国产成人精品一区二区三 | 乳色吐息在线观看 | 午夜精品在线观看 | 国产二区三区 | 日日摸日日碰夜夜爽2015电影 | 亚洲第1页 | 国产乱码精品一区二区三区忘忧草 | 男女羞羞视频在线 | 国产成人啪免费观看软件 | 欧美一区二区三区在线 | 日韩视频中文字幕 | 欧美日韩成人一区二区 | 久久综合av | 天堂一区二区三区 | 成人久久18免费网站图片 | 51ⅴ精品国产91久久久久久 |