8位竞赛抢答器程序与仿真图_第1页
8位竞赛抢答器程序与仿真图_第2页
8位竞赛抢答器程序与仿真图_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、8位竞赛抢答器程序与仿真图 8位竞赛抢答器的设计 设计要求 以单片机为核心,设计一个8位竞赛抢答器:同时供8名选手或8个代表队比赛,分别用8个按钮s0s7表示。 设置一个系统清除和抢答控制开关s,开关由主持人控制。 抢答器具有锁存与显示功能。即选手按按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。 抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。 当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间为0.5s左右。 参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到

2、主持人将系统清除为止。 如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。 通过键盘改变抢答的时间,原理与闹钟时间的设定相同,将定时时间的变量置为全局变量后,通过键盘扫描程序使每按下一次按键,时间加1(超过30时置0)。同时单片机不断进行按键扫描,当参赛选手的按键按下时,用于产生时钟信号的定时计数器停止计数,同时将选手编号(按键号)和抢答时间分别显示在led上。 程序: org 0000h ljmp main org 0003h ljmp shesh org 000bh ljmp it0p org 0100h main: mov tmod,#01h mov t

3、h0,#3ch mov tl0,#0b0h setb ea setb et0 跳沿触发。 setb ex0 setb it0 mov r4,#30 mov r3,#0ah /定时器 t0工作于方式1 /1秒的初值 /开总中断,t0中断,外部中断0开启,外部中断 / r4存放30,用于存放倒计时初值 mov r7,#0ah / 个十百初始显示,r3存放选手编号,r7存放倒计时的十位,r6存放倒计时的个位 mov r6,#0ah mov r0,#30 /r0存放倒计时的显示值,初值设为30 lcall xiansh2 star: setb p3.6 /关喇叭 mov r1,#00h 从等待中断中返

4、回到初始 /=复位部分程序= fw: jnb p3.1,fw1 jmp fw fw1: lcall delay jnb p3.1,fw2 jmp fw fw2: mov r3,#0bh 的代码 mov a,r4 mov r0,a lcall xiansh1 /=开始部分程序= sam: jnb p3.0,pk jmp sam pk: jnb p3.0,pk1 jmp sam pk1: mov r3,#0bh setb tr0 mov r2,#0ah here: cjne r1,#01h,yy 入star jmp star yy: jmp here /=中断程序= it0p: clr tr0 d

5、ec r2 cjne r2,#05h,jx0 clr p3.6 jx0: cjne r2,#00h,jx1 setb p3.6 dec r0 lcall xiansh1 mov r2,#0ah jx1: lcall samo cjne r1,#01h,jx2 返回 jmp return jx2: jnb p3.1,pk2 jmp cz pk2: lcall delay /选手按键,复位按键,无人抢答的标志位,用于 /预判 复位键按下否 /去抖动,判断是否真按下 /复位按下,则存放选手编号的r3,放入灭/倒计时初值r4放入显示倒计时寄存器r0中 /扫描开始键是否按下 /按下则r3存灭代码, /启

6、动定时器 /中断次数设为10次,刚好1秒 /若r1中存放的选手按键标志位为1,则转 /否则继续循环 等待中断 / 中断5次后,开启扬声器 /中断10次后,关闭扬声器,这样喇叭响0.5秒 /r2中再存入中断次数 /扫描选手按键标志位r1,未按下则转jx2 ,按下则 /检测复位键按下否 jnb p3.1,qfw jmp cz qfw: mov r1,#01h jmp return /按下则返回 cz: cjne r0,#00h,cz1 /倒计时是否计时完毕 clr p3.6 /及时完毕 无人抢答则扬声器开启 lcall delay5 mov r1,#01h jmp return cz1: mov

7、th0,#3ch mov tl0,#0b0h setb tr0 return: reti /=选手键盘扫描程序= samo: jnb p1.0,xs1 jnb p1.1,xs2 jnb p1.2,xs3 jnb p1.3,xs4 jnb p1.4,xs5 jnb p1.5,xs6 jnb p1.6,xs7 jnb p1.7,xs80 return2:ret xs80: ljmp xs8 xs1: lcall delay jnb p1.0,xs11 jmp return2 xs11: mov r1,#01h setb p3.6 mov r3,#01h lcall xiansh1 jmp retu

8、rn2 xs2: lcall delay jnb p1.1,xs22 jmp return2 xs22: mov r1,#01h setb p3.6 mov r3,#02h lcall xiansh1 jmp return2 xs3: lcall delay jnb p1.2,xs33 jmp return2 xs33: mov r1,#01h setb p3.6 mov r3,#03h lcall xiansh1 jmp return2 xs4: lcall delay /延时1秒 /r1设1 /中断返回 /计时器初值重装 /预扫描 选手按键是否按下 /未按下则返回 /去抖动再判是否按下 /

9、按下则 显示1号 扬声器关闭 /按下则 显示2号 扬声器关闭 /按下则 显示3号 扬声器关闭 jnb p1.3,xs44 jmp return2 xs44: mov r1,#01h setb p3.6 mov r3,#04h lcall xiansh1 jmp return2 xs5: lcall delay jnb p1.4,xs55 jmp return2 xs55: mov r1,#01h setb p3.6 mov r3,#05h lcall xiansh1 jmp return2 xs6: lcall delay jnb p1.5,xs66 jmp return2 xs66: mov

10、 r1,#01h setb p3.6 mov r3,#06h lcall xiansh1 jmp return2 xs7: lcall delay jnb p1.6,xs77 jmp return2 xs77: mov r1,#01h setb p3.6 mov r3,#07h lcall xiansh1 jmp return2 xs8: lcall delay jnb p1.7,xs88 jmp return2 xs88: mov r1,#01h setb p3.6 mov r3,#08h lcall xiansh1 jmp return2 /=显示程序= xiansh1:mov a,r0

11、mov b,#0ah 位 div ab mov r7,a mov r6,b l /选择选手编号的数码管 mov a,r3 mov dptr,#segtab /调入代码 movc a,a+dptr mov p2,a /显示选手编号 clr p0.4 setb p0.5 /选择显示十位的数码管 clr p0.6 mov a,r7 mov dptr,#segtab /调入代码 movc a,a+dptr mov p2,a /显示十位 clr p0.4 clr p0.5 /选择显示个位的数码管 setb p0.6 mov a,r6 mov dptr,#segtab /调入代码 movc a,a+dpt

12、r mov p2,a /显示个位 ret /=抢答时间设置程序= shesh:inc r0 /倒计时初值加1 cjne r0,#31,bql /倒计时初值设置超过30 自动清零 mov r0,#00h bql: mov r3,#0bh mov a,r0 /倒计时初值存入其专用寄存器r4中,这样可以全局不变,r0会倒计时中递减而改变 mov r4,a lcall xiansh1 reti /=10ms延时程序(去抖动)= delay: mov r7,#20 d1: mov r6,#248 d2: djnz r6,d2 djnz r7,d1 ret /1s延时程序(无人抢答报警)= delay5:mov r7,#40 dl1: mov r6,#50 dl2: mov r5,#248 dl3: djnz r5,dl3 djnz r6,dl2 djnz r7,dl1 ret /=数码管显示调用代码= segtab:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论