找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2251|回复: 0
收起左侧

单片机八位竞赛抢答器 仿真 源码 原理图 文档下载

[复制链接]
ID:303207 发表于 2020-6-24 11:48 | 显示全部楼层 |阅读模式
以单片机为核心,设计一个8位竞赛抢答器:同时供8名选手或8个代表队比赛,分别用8个按钮S0~S7表示。
                                       
    1.设置一个系统清除和抢答控制开关S,开关由主持人控制。    2.抢答器具有锁存与显示功能。即选手按按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。
    3.抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间为0.5s左右。    4.参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。
    5.如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.png 51hei.png

单片机源程序如下:
  1. #include<reg51.h>
  2. OKEQU20H
  3. RINGEQU22H
  4. ORG0000H
  5. AJMPMAIN
  6. ORG0003H
  7. AJMPINT0SUB
  8. ORG000BH
  9. AJMPT0INT
  10. ORG0013H
  11. AJMPINT1SUB
  12. ORG001BH
  13. AJMPT1INT
  14. ORG0040H
  15. MAIN:MOVR1,#30
  16. MOVR2,#60
  17. MOVTMOD,#11H
  18. MOVTH0,#0F0H
  19. MOVTL0,#0FFH
  20. MOVTH1,#3CH
  21. MOVTL1,#0B0H
  22. SETBEA
  23. SETBET0
  24. SETBET1
  25. SETBEX0
  26. SETBEX1
  27. CLROK
  28. CLRRING
  29. SETBTR1
  30. SETBTR0
  31. 2查询程序
  32. START:MOVR5,#0BH
  33. MOVR4,#0BH
  34. MOVR3,#0BH
  35. ACALLDISPLAY
  36. JBP3.0,NEXT
  37. ACALLDELAY
  38. JBP3.0,NEXT
  39. ACALLBARK
  40. MOVA,R1
  41. MOVR6,A
  42. SETBOK
  43. MOVR7,#01H
  44. MOVR3,#0AH
  45. AJMPCOUNT
  46. NEXT:JNBP1.0,FALSE1
  47. JNBP1.1,FALSE2
  48. JNBP1.2,FALSE3
  49. JNBP1.3,FALSE4
  50. JNBP1.4,FALSE5
  51. JNBP1.5,FALSE6
  52. JNBP1.6,FALSE7
  53. JNBP1.7,FALSE8
  54. AJMPSTART
  55. 3非法抢答处理程序
  56. FALSE1:MOVR3,#01H
  57. AJMPERROR
  58. FALSE2:MOVR3,#02H
  59. AJMPERROR
  60. FALSE3:MOVR3,#03H
  61. AJMPERROR
  62. FALSE4:MOVR3,#04H
  63. AJMPERROR
  64. FALSE5:MOVR3,#05H
  65. AJMPERROR
  66. FALSE6:MOVR3,#06H
  67. AJMPERROR
  68. FALSE7:MOVR3,#07H
  69. AJMPERROR
  70. FALSE8:MOVR3,#08H
  71. 4抢答、回答时间调整程序
  72. =====INT0(抢答时间R1调整程序)=====
  73. INT0SUB:MOVA,R1
  74. MOVB,#0AH
  75. DIVAB
  76. MOVR5,A
  77. MOVR4,B
  78. MOVR3,#0AH
  79. ACALLDISPLAY
  80. JNBP3.4,INC0
  81. JNBP3.5,DEC0
  82. JNBP3.1,BACK0
  83. AJMPINT0SUB
  84. INC0:MOVA,R1
  85. CJNEA,#63H,ADD0
  86. MOVR1,#00H
  87. ACALLDELAY1
  88. AJMPINT0SUB
  89. ADD0:INCR1
  90. ACALLDELAY1
  91. AJMPINT0SUB
  92. DEC0:MOVA,R1
  93. JZSETR1
  94. DECR1
  95. ACALLDELAY1
  96. AJMPINT0SUB
  97. SETR1:MOVR1,#63H
  98. ACALLDELAY1
  99. AJMPINT0SUB
  100. BACK0:RETI
  101. ;=====INT1(回答时间R2调整程序)=====
  102. INT1SUB:MOVA,R2
  103. MOVB,#0AH
  104. DIVAB
  105. MOVR5,A
  106. MOVR4,B
  107. MOVR3,#0AH
  108. ACALLDISPLAY
  109. JNBP3.4,INC1
  110. JNBP3.5,DEC1
  111. JNBP3.1,BACK1
  112. AJMPINT1SUB
  113. INC1:MOVA,R2
  114. CJNEA,#63H,ADD1
  115. MOVR2,#00H
  116. ACALLDELAY1
  117. AJMPINT1SUB
  118. ADD1:INCR2
  119. ACALLDELAY1
  120. AJMPINT1SUB
  121. DEC1:MOVA,R2
  122. JZSETR2
  123. DECR2
  124. ACALLDELAY1
  125. AJMPINT1SUB
  126. SETR2:MOVR2,#63H
  127. ACALLDELAY1
  128. AJMPINT1SUB
  129. BACK1:RETI
  130. 5倒计时程序
  131. REPEAT:MOVA,R2
  132. MOVR6,A
  133. CLRRING
  134. COUNT:MOVR0,#00H
  135. MOVTH1,#3CH
  136. MOVTL1,#0B0H
  137. RECOUNT:MOVA,R6
  138. MOVB,#0AH
  139. DIVAB
  140. MOV30H,A
  141. MOV31H,B
  142. MOVR5,30H
  143. MOVR4,31H
  144. MOVA,R6
  145. SUBBA,#07H
  146. JNCLARGER
  147. MOVA,R0
  148. CJNEA,#0AH,FULL
  149. CLRRING
  150. AJMPCHECK
  151. FULL:CJNEA,#14H,CHECK
  152. SETBRING
  153. MOVA,R6
  154. JZQUIT
  155. MOVR0,#00H
  156. DECR6
  157. AJMPCHECK
  158. LARGER:MOVA,R0
  159. CJNEA,#14H,CHECK
  160. DECR6
  161. MOVR0,#00H
  162. CHECK:JNBP3.1,QUIT
  163. JNBOK,CHECKK
  164. AJMPNEXTT
  165. CHECKK:JNBP3.0,REPEAT
  166. NEXTT:ACALLDISPLAY
  167. JBOK,ACCOUT
  168. AJMPRECOUNT
  169. ACCOUT:
  170. MOVA,36H
  171. JNBACC.0,TRUE1
  172. JNBACC.1,TRUE2
  173. JNBACC.2,TRUE3
  174. JNBACC.3,TRUE4
  175. JNBACC.4,TRUE5
  176. JNBACC.5,TRUE6
  177. JNBACC.6,TZ1
  178. JNBACC.7,TZ2
  179. AJMPRECOUNT
  180. TZ1:JMPTRUE7
  181. TZ2:JMPTRUE8
  182. QUIT:CLROK
  183. CLRRING
  184. AJMPSTART
  185. 6正常抢答处理程序
  186. TRUE1:ACALLBARK
  187. MOVA,R2
  188. MOVR6,A
  189. MOVR3,#01H
  190. CLROK
  191. AJMPCOUNT
  192. TRUE2:ACALLBARK
  193. MOVA,R2
  194. MOVR6,A
  195. MOVR3,#02H
  196. CLROK
  197. AJMPCOUNT
  198. TRUE3:ACALLBARK
  199. MOVA,R2
  200. MOVR6,A
  201. MOVR3,#03H
  202. CLROK
  203. AJMPCOUNT
  204. TRUE4:ACALLBARK
  205. MOVA,R2
  206. MOVR6,A
  207. MOVR3,#04H
  208. CLROK
  209. AJMPCOUNT
  210. TRUE5:ACALLBARK
  211. MOVA,R2
  212. MOVR6,A
  213. MOVR3,#05H
  214. CLROK
  215. AJMPCOUNT
  216. TRUE6:ACALLBARK
  217. MOVA,R2
  218. MOVR6,A
  219. MOVR3,#06H
  220. CLROK
  221. AJMPCOUNT
  222. TRUE7:ACALLBARK
  223. MOVA,R2
  224. MOVR6,A
  225. MOVR3,#07H
  226. CLROK
  227. AJMPCOUNT
  228. TRUE8:ACALLBARK
  229. MOVA,R2
  230. MOVR6,A
  231. MOVR3,#08H
  232. CLROK
  233. AJMPCOUNT
  234. 7犯规抢答程序
  235. ERROR:MOVR0,#00H
  236. MOVTH1,#3CH
  237. MOVTL1,#0B0H
  238. MOV34H,R3
  239. HERE:MOVA,R0
  240. CJNEA,#06H,FLASH;0.3s
  241. CLRRING
  242. MOVR3,#0AH
  243. MOVR4,#0AH
  244. MOVR5,#0AH
  245. AJMPCHECK1
  246. FLASH:CJNEA,#0CH,CHECK1
  247. SETBRING
  248. MOVR0,#00H
  249. MOVR3,34H
  250. MOVR5,#0BH
  251. MOVR4,#0BH
  252. AJMPCHECK1
  253. CHECK1:JNBP3.1,QUIT1
  254. ACALLDISPLAY
  255. AJMPHERE
  256. QUIT1:CLRRING
  257. CLROK
  258. AJMPSTART
  259. 8其他功能程序
  260. =====显示程序=====
  261. DISPLAY:MOVDPTR,#DAT1
  262. MOVA,R3
  263. MOVCA,@A+DPTR
  264. MOVP2,#0feH
  265. MOVP0,A
  266. ACALLDELAY2
  267. MOVDPTR,#DAT2
  268. MOVA,R5
  269. MOVCA,@A+DPTR
  270. MOVP2,#0fdH
  271. MOVP0,A
  272. ACALLDELAY2
  273. MOVA,R4
  274. MOVCA,@A+DPTR
  275. MOVP2,#0fbH
  276. MOVP0,A
  277. ACALLDELAY2
  278. RET
  279. DAT1:DB00h,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh,00H,71H
  280. DAT2:DB3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh,00H,71H
  281. =====发声程序=====
  282. BARK:SETBRING
  283. ACALLDELAY1
  284. ACALLDELAY1
  285. CLRRING
  286. RET
  287. =====TO溢出中断(响铃程序)=====
  288. T0INT:MOVTH0,#0ECH
  289. MOVTL0,#0FFH
  290. JNBRING,OUT;
  291. CPLP3.6
  292. OUT:RETI
  293. ;=====T1溢出中断(计时程序)=====
  294. T1INT:MOVTH1,#3CH
  295. MOVTL1,#0B0H
  296. END
复制代码

程序还有点问题,求大神帮忙修改,压缩包里面是仿真图:
项目一八位竞赛抢答器.zip (805.17 KB, 下载次数: 22)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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