找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3118|回复: 4
收起左侧

基于单片机的数字电压表设计,总线如何和LED数码管相连?

[复制链接]
ID:465200 发表于 2019-1-9 16:30 | 显示全部楼层 |阅读模式
proteus仿真电路图附在结尾
QQ图片20190109162739.png


程序
  1. ORG 0000H
  2. SJMP MAIN
  3. ORG 0003H
  4. LJMP PINT0
  5. MAIN:MOV 50H,#19H
  6. MOV 54H,#78H
  7. MOV DPTR,#7FF8H
  8. MOV 51H,DPH
  9. MOV 52H,DPL
  10. MOV R0,#04H
  11. MOV 53H,#00H
  12. MOV R7,#00H
  13. SETB EA
  14. SETB IT0
  15. SETB EX0
  16. L4: MOV R1,#00H        ;R1 存放十六进制转换成十进制后的低两位
  17. MOV R2,#00H        ;R2 存放十六进制转换成十进制后的高两位
  18. MOV R3,#0FFH        ;循环显示十进制数
  19. MOV R4,#00H        ;存放 A/D 转换后的十六进制数
  20. MOV R5,#00H        ;存放 0.5 相加后的数
  21. MOVX @DPTR,A        ;开始 A/D 转换
  22. LCALL DELAY        ;调用延时大于  A/D 转换的时间
  23. MOVX A,@DPTR        ;取 A/D 转换后的十六进制数
  24. INC DPTR        ;A/D 转换芯片的地址加一
  25. PUSH DPL        ;压入堆栈
  26. PUSH DPH
  27. DEC R0        ;4 路转换的次数减一
  28. JZ SB2        ;判断是否是 0V
  29. MOV R4,A
  30. L1:MOV A,R1        ;进行十六进制到十进制的调整
  31. ADD A,50H        ;每次加 19
  32. DA A
  33. MOV R1,A
  34. JC L2        ;如果溢出则跳转到        L2
  35. MOV A,R5        ;进行 0.5V 相加
  36. ADD A,54H
  37. DA A
  38. MOV R5,A
  39. JC        L3        ;如果溢出则跳转到        L3
  40. SB1:DJNZ R4,L1        ;判断十六进制数是否转换完成,如果没有则循环
  41. MOV A,R5
  42. SWAP A
  43. ANL A,#0FH
  44. MOV B,R1
  45. ADD A,B
  46. DA A
  47. MOV R1,A
  48. SB2:LCALL DISP
  49. LCALL DJW
  50. DJNZ R3,SB2
  51. POP DPH
  52. POP DPL
  53. MOV A,53H
  54. INC A
  55. MOV 53H,A
  56. CJNE R0,#00H,L4
  57. LJMP MAIN
  58. L2: CLR C
  59. MOV A,R2
  60. ADD A,#01H
  61. DA A
  62. MOV R2,A
  63. LJMP SB1

  64. L3: CLR C        ;0.5V 相加溢出后进位
  65. MOV A,R1
  66. ADD A,#01H
  67. DA A
  68. MOV R1,A
  69. LJMP SB1
  70. DISP:MOV A,R1        ;显示电压子程序
  71. SWAP A
  72. ANL A,#0FH
  73. MOV DPTR,#TAB1
  74. MOVC A,@A+DPTR
  75. CLR P3.0
  76. MOV P1,A
  77. LCALL DELAY
  78. SETB P3.0
  79. MOV A,R2
  80. ANL A,#0FH
  81. MOV DPTR,#TAB1
  82. MOVC A,@A+DPTR
  83. CLR        P3.1
  84. MOV P1,A
  85. LCALL DELAY
  86. SETB P3.1
  87. MOV A,R2
  88. SWAP A
  89. ANL A,#0FH
  90. MOV DPTR,#TAB2
  91. MOVC A,@A+DPTR
  92. CLR P3.4
  93. MOV P1,A
  94. LCALL DELAY
  95. SETB P3.4
  96. RET
  97. DJW:MOV A,53H        ;显示第几路转换电压子程序
  98. MOV DPTR,#TAB1
  99. MOVC A,@A+DPTR
  100. CLR P3.5
  101. MOV P1,A
  102. LCALL DELAY
  103. SETB P3.5
  104. RET
  105. INTV: PUSH ACC        ;只显示其中一路中断
  106. PUSH 53H
  107. MOV 53H,#00H
  108. CX2: MOV R1,#00H
  109. MOV R2,#00H
  110. MOV R3,#0FFH
  111. MOV R4,#00H
  112. MOV DPH,51H
  113. MOV DPL,52H
  114. MOVX @DPTR,A
  115. LCALL DELAY
  116. MOVX A,@DPTR
  117. MOV R4,A
  118. JZ SB22
  119. L11:        MOV A,R1
  120. ADD A,50H
  121. DA A
  122. MOV R1,A
  123. JC L22
  124. MOV A,R5        ;进行 0.5V 相加
  125. ADD A,54H
  126. DA A
  127. MOV R5,A
  128. JC        L33
  129. SB11:DJNZ R4,L11
  130. MOV A,R5
  131. SWAP A
  132. ANL A,#0FH
  133. MOV B,R1
  134. ADD A,B
  135. DA A
  136. MOV R1,A
  137. SB22:LCALL DISP
  138. LCALL DJW
  139. JNB P3.3,EXIT
  140. DJNZ R3,SB22
  141. JNB P3.2,CX1
  142. LJMP CX2
  143. L22:CLR C
  144. MOV A,R2
  145. ADD A,#01H
  146. DA A
  147. MOV R2,A
  148. LJMP SB11
  149. L33:CLR C
  150. MOV A,R1
  151. ADD A,#01H
  152. DA A
  153. MOV R1,A
  154. LJMP SB11
  155. CX1:INC R7
  156. MOV A,53H
  157. INC A
  158. MOV 53H,A
  159. MOV DPH,51H
  160. MOV DPL,52H
  161. INC DPTR
  162. MOV 51H,DPH
  163. MOV 52H,DPL
  164. CJNE R7,#04H,CX2
  165. MOV R7,#00H
  166. MOV 53H,#01H
  167. MOV DPTR,#7FF8H

  168. MOV 51H,DPH
  169. MOV 52H,DPL
  170. LJMP CX2
  171. EXIT:POP 53H
  172. POP ACC
  173. RETI
  174. DELAY:MOV R6,#1H        ; 延时子程序
  175. D1:MOV R5,#50H
  176. D2:NOP
  177. NOP
  178. DJNZ R5,D2
  179. DJNZ R6,D1
  180. RET
  181. TAB1:DB 3FH,06H,5BH,4FH,66H        ;码表
  182. DB 6DH,7DH,07H,7FH,6FH
  183. TAB2:DB 0BFH,86H,0DBH,0CFH,0E6H        ;小数点的段码表
  184. DB 0EDH,0FDH,87H,0FFH,0EFH
  185. END
复制代码
全部资料51hei下载地址:
基于单片机的数字电压表.zip (29.46 KB, 下载次数: 32)



评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:465200 发表于 2019-1-9 17:03 | 显示全部楼层
总线如何和led数码管相连
回复

使用道具 举报

ID:213173 发表于 2019-1-10 07:23 | 显示全部楼层
2693309697 发表于 2019-1-9 17:03
总线如何和led数码管相连

总线只有图形意义没有电气意义,使用连线标号模式可使相同标号的接点有电气连接意义。
无标题.jpg

回复

使用道具 举报

ID:149389 发表于 2019-1-10 12:43 | 显示全部楼层
完全可以不用画总线,标网络号就可以,标号相同代表物理连接,使用通配符“#”可以实现快速标注。如图所示,自动生成递增标号,P00,P01,,,,等等。
label.png
回复

使用道具 举报

ID:538656 发表于 2019-5-15 11:17 | 显示全部楼层
这是AT89C51的吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表