关于AD转换显示问题。纠结。

[复制链接]
 楼主| kobesff 发表于 2011-3-23 17:32 | 显示全部楼层 |阅读模式
本帖最后由 kobesff 于 2011-3-23 17:33 编辑

调试了很久 一直不知道为错在哪里。显示只有3个零。
希望有人帮下
  1. Dark Equ 10
  2. ;================================ Hardware =================================
  3. DisMode Equ 0000H ;Display Char Port
  4. DisCS Equ 2000H ;Display CS Port
  5. AD0809 Equ 4000H ;AD0809
  6. ;=============================== Bit Segment ===============================
  7. SysBits0 Data 20h
  8. GetAD0809 Bit 03H ;1o First Calc

  9. ;=============================== Byte Segment ==============================
  10. ;*byte define start*
  11. ;00H..07H : Reg Group 0
  12. ;08H..1FH : System Stack
  13. ;20H..20H : System Bit Units
  14. ;---------------------------------------------------------------------------
  15. ;21H..6EH
  16. DisBuf Equ 70h ;..75h ;显示缓冲区
  17. DeciP Data 76H ;Bit=1isplay Decimal Point
  18. ADValue Data 77H ;Calc Result, Origen Code
  19. ;===========================================================================
  20. Org 0000h
  21. AJmp Main
  22. ;============================= Subroutines =================================
  23. Display: Mov R0,#DisBuf ;R0->DisBuf
  24. Mov R1,#00000001B ;R1=Dis CS
  25. DisplayLp: Mov a,R1 ;Send CS first, Proteus ask to do so
  26. Mov dptr,#DisCS ;Send CS to DisCS Port
  27. Movx @Dptr,a

  28. Mov B,#11111111b
  29. Anl A,DeciP
  30. Jz DisplayNxt
  31. Mov B,#01111111B
  32. DisplayNxt:Mov a,R1 ;Send CS first, Proteus ask to do so
  33. Rl A ;Next CS
  34. Mov R1,A

  35. Mov A,@r0 ;Get Dis Char
  36. Inc R0 ;Next Buf
  37. Mov Dptr,#DisTab ;Change to Dis Mode
  38. Movc A,@A+Dptr
  39. Anl A,B
  40. Mov Dptr,#DisMode ;Send DisMode to DisMode Port
  41. Movx @Dptr,a

  42. ACall Delay
  43. Cjne R0,#DisBuf+6,DisPlayLp

  44. ; Mov a,#0 ;Send CS first, Proteus ask to do so
  45. ; Mov dptr,#DisCS ;Send CS to DisCS Port
  46. ; Movx @Dptr,a

  47. Ret
  48. ;---------------------------------------------------------------------------

  49. DisTab: DB 0c0H ; 0
  50. DB 0F9H ; 1
  51. DB 0A4H ; 2
  52. DB 0B0H ; 3
  53. DB 099H ; 4
  54. DB 092H ; 5
  55. DB 082H ; 6
  56. DB 0F8H ; 7
  57. DB 080H ; 8
  58. DB 090H ; 9
  59. DB 0FFH ; A

  60. ;--------------------------------------------------------------------------
  61. ClrDis: Mov A,#Dark
  62. AToDis: Mov r0,#DisBuf
  63. AToR06: Mov R1,#6
  64. AToRoLp: Mov @r0,A ;A->@R0,Num=R1
  65. Inc r0
  66. Djnz R1,AToRoLp
  67. Ret
  68. ;--------------------------------------------------------------------------
  69. InitDis: ACall ClrDis
  70. Mov DisBuf+0,#0
  71. Mov DeciP,#00000000b
  72. Ret

  73. ;--------------------------------------------------------------------------
  74. Delay: Mov r6,#4 ;8*256*2*T(1us)=8*512=4000us=2ms
  75. Delay1: Mov r7,#0
  76. Djnz r7,$ ;2
  77. Djnz r6,Delay1
  78. Ret
  79. ;--------------------------------------------------------------------------
  80. ;Change A into Decimal BCD Code
  81. AHexToBCD: Mov B,#10
  82. Div AB
  83. Mov @R0,B
  84. Inc r0
  85. Mov B,#10
  86. Div AB
  87. Mov @r0,B
  88. Inc r0
  89. Mov @r0,A
  90. Inc r0
  91. Ret
  92. ;--------------------------------------------------------------------------
  93. InitAD0809:Clr GetAD0809
  94. Ret
  95. ;--------------------------------------------------------------------------
  96. GetAD: Mov Dptr,#AD0809+0
  97. Movx @Dptr,A ;Start AD, Chennel=0
  98. ; ACall Display ;Delay
  99. ACall Delay
  100. ACall Delay
  101. Mov Dptr,#AD0809+0
  102. Movx A,@Dptr
  103. Mov ADValue,A
  104. Setb GetAD0809
  105. Ret
  106. ;================================= Main ====================================
  107. Main: Mov Sp,#07h ;init Stack
  108. ACall InitDis
  109. ACall InitAD0809

  110. MainLoop: ACall Display
  111. ACall GetAD
  112. JBC GetAD0809,ShowAD
  113. AJmp MainLoop
  114. ;--------------------------------------------------------------------------
  115. ShowAD: Mov A,ADValue
  116. Mov R0,#DisBuf
  117. ACall AHexToBCD
  118. AJmp MainLoop

  119. ;==========================================================================
  120. end

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| kobesff 发表于 2011-3-23 18:25 | 显示全部楼层
咦。。没人耶。
 楼主| kobesff 发表于 2011-3-24 22:19 | 显示全部楼层
真冷。好歹来个人。。随便给点意见。结个贴。算了
stirwl 发表于 2011-3-24 22:25 | 显示全部楼层
啊,汇编,好头疼啊,看的一点胃口都没有了
abin0415 发表于 2011-3-25 12:16 | 显示全部楼层
搞不了汇编。偶学的是C
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

72

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部