找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1926|回复: 0
打印 上一主题 下一主题
收起左侧

基于单片机ADC0808的数字电压表,汇编语言程序

[复制链接]
跳转到指定楼层
楼主
八路循环显示数字电压表

  1. TEMP EQU 60H
  2. ORG 0000H
  3. LJMP START
  4. ORG 0003H
  5. RETI
  6. ORG 000BH
  7. LJMP INT
  8. ORG 0013H
  9. RETI
  10. ORG 001BH
  11. RETI
  12. ORG 0023H
  13. RETI
  14. ORG 002BH
  15. RETI
  16. CLEARMENIO:
  17. CLR 00H
  18. MOV  P2,A
  19. MOV  R0,#30H
  20. MOV  R2,#0DH
  21. LOOPMEM:MOV  @R0,A
  22. INC R0
  23. DJNZ  R2,LOOPMEM ;地址30H到3DH清零
  24. MOV  20H,#00H   ;20H清零
  25. MOV  A,#0FFH
  26. MOV  P0,A
  27. MOV  P1,A      ;P0,P1,P3置位
  28. MOV  P3,A
  29. RET

  30. START:
  31. LCALL CLEARMENIO  ;初始化
  32. MOV TMOD,#02H
  33. MOV TH0,#255
  34. MOV TL0,#255
  35. MOV IE,#82H
  36. SETB TR0
  37. LCALL CLEARMENIO  ;初始化
  38. DISPLAY:
  39. MOV R3,#08H   ;八路循环显示
  40. MOV R0,#30H    ;数据地址在70H-77H
  41. MOV R1,#30H
  42. MOV 3BH,#00H   ;显示路初值
  43. ANL P2,#11111000B
  44. DISLOOP1:
  45. LCALL TEST  
  46. LCALL TUNBCD    ;显示数据转化为3位BCD码存7AH,79H,78H
  47. MOV R2,#071H     ;每路显示时间为4ms*255,约为1s
  48. DISLOOP2:
  49. CLR A
  50. CLR 00H
  51. MOV DPTR,#TABLE
  52. LCALL DISP    ;调用四位显示程序
  53. LCALL KEYWORK1
  54. JMP Q1
  55. TZ3:
  56. LJMP DISP11
  57. Q1:
  58. JB 00H,TZ3
  59. DJNZ R2,DISLOOP2   
  60. INC R1     ;显示下一路
  61. INC 3BH   ;通道显示数加1
  62. CJNE R3,#08H,M1
  63. JMP N1
  64. M1:
  65. CJNE R3,#07H,M2
  66. JMP N2
  67. M2:
  68. CJNE R3,#06H,M3
  69. JMP N3
  70. M3:
  71. CJNE R3,#05H,M4
  72. JMP N4
  73. M4:
  74. CJNE R3,#04H,M5
  75. JMP N5
  76. M5:
  77. CJNE R3,#03H,M6
  78. JMP N6
  79. M6:
  80. CJNE R3,#02H,M7
  81. JMP N7
  82. M7:
  83. CJNE R3,#01H,M8
  84. JMP N8
  85. M8:LJMP DISPLAY
  86. N1:
  87. ANL P2,#11111000B
  88. ORL P2,#00000001B
  89. JMP TZ
  90. N2:
  91. ANL P2,#11111000B
  92. ORL P2,#00000010B
  93. JMP TZ
  94. N3:
  95. ANL P2,#11111000B
  96. ORL P2,#00000011B
  97. JMP TZ
  98. N4:
  99. ANL P2,#11111000B
  100. ORL P2,#00000100B
  101. JMP TZ
  102. N5:
  103. ANL P2,#11111000B
  104. ORL P2,#00000101B
  105. JMP TZ
  106. N6:
  107. ANL P2,#11111000B
  108. ORL P2,#00000110B
  109. JMP TZ
  110. N7:
  111. ANL P2,#11111000B
  112. ORL P2,#00000111B
  113. JMP TZ
  114. N8:
  115. ANL P2,#11111000B
  116. ORL P2,#00000111B
  117. JMP TZ
  118. TZ1:
  119. LJMP DISLOOP1
  120. TZ:
  121. DJNZ R3,TZ1   ;显示八路
  122. LJMP START
  123. DISP11:
  124. MOV R2,#0FH
  125. DISLOOP11:
  126. LCALL TEST
  127. LCALL TUNBCD
  128. DISLOOP22:
  129. LCALL DISP
  130. LCALL KEYWORK2
  131. MOV R3,3BH
  132. Z0:
  133. CJNE R3,#00H,D0
  134. JMP O0
  135. D0:
  136. CJNE R3,#01H,D1
  137. JMP O1
  138. D1:
  139. CJNE R3,#02H,D2
  140. JMP O2
  141. D2:
  142. CJNE R3,#03H,D3
  143. JMP O3
  144. D3:
  145. CJNE R3,#04H,D4
  146. JMP O4
  147. D4:
  148. CJNE R3,#05H,D5
  149. JMP O5
  150. D5:
  151. CJNE R3,#06H,D6
  152. JMP O6
  153. D6:
  154. CJNE R3,#07H,D7
  155. JMP O7
  156. D7:LJMP DISLOOP11
  157. O0:
  158. ANL P2,#11111000B
  159. ORL P2,#00000001B
  160. JMP TZ5
  161. O1:
  162. ANL P2,#11111000B
  163. ORL P2,#00000001B
  164. JMP TZ5
  165. O2:
  166. ANL P2,#11111000B
  167. ORL P2,#00000010B
  168. JMP TZ5
  169. O3:
  170. ANL P2,#11111000B
  171. ORL P2,#00000011B
  172. JMP TZ5
  173. O4:
  174. ANL P2,#11111000B
  175. ORL P2,#00000100B
  176. JMP TZ5
  177. O5:
  178. ANL P2,#11111000B
  179. ORL P2,#00000101B
  180. JMP TZ5
  181. O6:
  182. ANL P2,#11111000B
  183. ORL P2,#00000110B
  184. JMP TZ5
  185. O7:
  186. ANL P2,#11111000B
  187. ORL P2,#00000111B
  188. JMP TZ5
  189. TZ5:
  190. JNB 00H,TZ2
  191. DJNZ R2,TZ4
  192. LJMP DISLOOP11

  193. INT:
  194. CPL P3.7
  195. RETI

  196. TZ2:
  197. MOV 3BH,#00H
  198. LJMP DISLOOP1
  199. TZ4:
  200. LJMP DISLOOP11

  201. TUNBCD:
  202. MOV A,@R1
  203. MOV B,#51
  204. DIV AB
  205. MOV 3AH,A
  206. MOV A,B
  207. CLR F0
  208. SUBB A,#1AH
  209. MOV F0,C
  210. MOV A,#10
  211. MUL AB
  212. MOV B,#51
  213. DIV AB
  214. JB F0,LOOP2
  215. ADD A,#5
  216. LOOP2:   
  217. MOV 39H,A
  218. MOV A,B
  219. CLR F0
  220. SUBB A,#1AH
  221. MOV F0,C
  222. MOV A,#10
  223. MUL AB
  224. MOV B,#51
  225. DIV AB
  226. JB F0,LOOP3
  227. ADD A,#5
  228. LOOP3:      
  229. MOV 38H,A
  230. RET


  231. TEST:
  232. MOV R0,#30H
  233. SETB P2.6
  234. CLR P2.6
  235. JNB P2.7,$
  236. SETB P3.4    ;30H
  237. MOV @R0,P0
  238. CLR P3.4
  239. INC R0
  240. SETB P2.6
  241. CLR P2.6
  242. JNB P2.7,$
  243. SETB P3.4    ;31H
  244. MOV @R0,P0
  245. CLR P3.4
  246. INC R0
  247. SETB P2.6
  248. CLR P2.6
  249. JNB P2.7,$
  250. SETB P3.4   ;32H
  251. MOV @R0,P0
  252. CLR P3.4
  253. INC R0
  254. SETB P2.6
  255. CLR P2.6
  256. JNB P2.7,$
  257. SETB P3.4    ;33H
  258. MOV @R0,P0
  259. CLR P3.4
  260. INC R0
  261. SETB P2.6
  262. CLR P2.6
  263. JNB P2.7,$
  264. SETB P3.4     ;34H
  265. MOV @R0,P0
  266. CLR P3.4
  267. INC R0
  268. SETB P2.6
  269. CLR P2.6
  270. JNB P2.7,$
  271. SETB P3.4    ;35H
  272. MOV @R0,P0
  273. CLR P3.4
  274. INC R0
  275. SETB P2.6
  276. CLR P2.6
  277. JNB P2.7,$
  278. SETB P3.4      ;36H
  279. MOV @R0,P0
  280. CLR P3.4
  281. INC R0
  282. SETB P2.6
  283. CLR P2.6
  284. JNB P2.7,$
  285. SETB P3.4      ;37H
  286. MOV @R0,P0
  287. CLR P3.4
  288. RET



  289. DISP:
  290. MOV 70H,R1
  291. PUSH 70H
  292. MOV P3,#01100001B
  293. MOV R1,#38H
  294. MOV A,@R1
  295. MOVC A,@A+DPTR
  296. MOV P1,A
  297. CALL DL10MS
  298. MOV P3,#01100010B
  299. MOV R1,#39H
  300. MOV A,@R1
  301. MOVC A,@A+DPTR
  302. MOV P1,A
  303. CALL DL10MS
  304. MOV P3,#01100100B
  305. MOV R1,#3AH
  306. MOV A,@R1
  307. MOVC A,@A+DPTR
  308. ADD A,#10000000B
  309. MOV P1,A
  310. CALL DL10MS
  311. MOV P3,#01101000B
  312. MOV R1,#3BH
  313. MOV A,@R1
  314. MOVC A,@A+DPTR
  315. MOV P1,A
  316. POP 70H
  317. MOV R1,70H
  318. CALL DL10MS
  319. RET
  320. DL10MS:MOV R6,#0FH     
  321. DL1:
  322. MOV R7,#0FH
  323. DL2:     
  324. DJNZ R7,DL2
  325. DJNZ R6,DL1
  326. RET
  327. DL1MS:MOV R4,#0FFH
  328. LOOP11:DJNZ R4,LOOP11               
  329.        MOV R4,#0FFH
  330. LOOP22:DJNZ R4,LOOP22         
  331. RET
  332. TABLE:
  333. DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH

  334. KEYWORK1:         
  335. JNB P3.5,KEY1
  336. KEYOUT:
  337. RET
  338. KEY1:      
  339. LCALL DISP    ;延时消抖
  340. JB         P3.5,KEYOUT
  341. WAIT11:
  342. JNB P3.5,WAIT12
  343. CPL 00H
  344. RET
  345. WAIT12:
  346. LCALL DISP
  347. AJMP WAIT11


  348. KEYWORK2:        
  349. JNB P3.5,KEY1
  350. JNB P3.6, KEY2
  351. RET
  352. KEY2:                  
  353. LCALL DISP     ;延时消抖
  354. JB P3.6,KEYOUT
  355. WAIT22:                  
  356. JNB P3.6,WAIT21
  357. INC 3BH
  358. MOV A,3BH
  359. CJNE A,#08H,KEYOUT11
  360. KEYOUT11:        
  361. JC KEYOUT1
  362. MOV 3BH,#00H
  363. KEYOUT1: RET
  364. WAIT21:
  365. LCALL DISP        ;键释放时等待
  366. AJMP WAIT22
  367. END
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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