版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、清华大学微机原理与接口技术课程设计题 目竞赛抢答器课程设计学生姓名刘闯专业班级 10 计科2班学 号201015056所在系信息工程学院指导教师曾毅完成时间2013 年1 月1 日郑州科技学院微机原理与接口技术课程设计任务书题目竞赛抢答器课程设计专业计算机科学与技术 班级_10计科2班学号 201015056 姓名 刘闯一、基本要求设计一个具有8路抢答的抢答器,利用并行接口和开关键。逻辑开关 k0-k7 代表抢答按钮,当某个逻辑开关闭合时,相当于抢答按钮按下,此时在七段数码管 上将其号码显示出来,并使喇叭响一声(或者以发光二极管代替)。二、设计任务启动计算机,计算机自动为系统各芯片进行初始化,
2、抢答器开始工作。比赛开始,在主持人按下开始键,绿灯亮后,选手才可开始抢答,否则违规。若选手抢答成功,led显示器显示选手号码,扬声器鸣叫。若选手抢答违规(主 持人未按开妈键),led显示器显示违规选手号码,红灯亮,扬声器报警,并根据 比赛规则进行对该选手进行扣分。若系统提示某号选手抢答违规,主持人仍未按开 始键,此时该号选手又按下抢答键,led显示器显示该选手的号码。本系统开机 后,若主持人既未按复位键又未按开始键, 此时有选手按下抢答键,系统提示红灯 亮,并报警。1、抢答成功,置8253通道2计数值为1000,扬声器的鸣叫声音频 率为1mhz/1000=1khz。2、抢答失败,置8253通道
3、2计数值为2000,扬声器的 鸣叫声音频率为1mhz/2000=0.5khz。3、扬声器鸣叫或报警的时间为 12s。三、设计时间2012_12_月 _31_日 至 _2013 年_1_月 _4日指导教师:教研室主任:目录一课程设计的目的和要求2二总体设计2三硬件电路设计4四软件设计9五仿真调试20六源程序22七总结28八参考文献30一、课程设计的目的和要求单片机原理及应用课程设计是学生综合运用所学知识,全面掌握单片微型计算机 及其接口的工作原理、编程和使用方法的重要实践环节。通过独立或协作提出并论证 设计方案,进行软、硬件调试,最后获得正确的运行结果,可以加深和巩固对理论教 学和实验教学内容的
4、掌握,进一步建立计算机应用系统整体概念,初步掌握单片机软、 硬件开发方法。根据单片机原理及应用课程的要求,主要进行两个方面的设计,即单片机最小系 统和存储器扩展设计、接口技术应用设计。其中,单片机最小系统主要要求学生熟悉 单片机的内部结构和引脚功能、引脚的使用、复位电路、时钟电路、4个并行接口和一个串行接口的实际应用,从而可构成最小应用系统,并编程进行简单使用。存储器扩展设计要求学生掌握常用半导体芯片与单片机的接口,如eprow储器用作外部程序存储器时与单片机的连接关系,sramf储器用作外部数据存储器时与单 片机的连接关系,e2pro解储器用作外部程序/数据存储器时与单片机的连接关系。能 合
5、理分配和使用单片机的内部和外部存储器,编程实现正常的读写功能。在进行智力 竞赛时,为了具有一种反应准确显示方便的抢答装置,下面设计了一种带有定时功能 的多路抢答器。1、八路抢答,各用一个抢答按钮;2、设置一个控制开关,该开关由主持人控制;3、具有数据锁存和显示功能,抢答开始后若有选手按动抢答按钮,编号立即锁存, 此外,要封锁输入电路,禁止其他选手抢答。优先抢答选手的编号一直保持到系统清 零为止;4、当主持人按下“开始”按钮,抢答开始。5、当某一路抢答成功时,在数码管上显示成功信息和该路的号数;6、当某一路抢答违规时,能在数码管上显示违规信息和号数;可扩展以下功能:7、具有定时抢答的功能,选手在
6、设定的时间内抢答有效,且一次抢答的时间设定 为30秒,超时扬声器报警;8、定时抢答的时间到,却没有选手抢答时,本次抢答无效,系统短暂报警,并封 锁输入电路,禁止选手超时抢答,时间显示器上显示 00。9、开始开关未动作,在数码管上显示出选手的编号和抢答时刻,同时扬声器给出 音响提示,选手抢答无效,并报警,系统复位,重新开始。二、总体设计该系统采用51系列单片机at89c5k乍为控制核心,该系统可以完成运算控制、信 号识别以及显示功能的实现。由于用了单片机,使其技术比较成熟,应用起来方便、 简单并且单片机周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活 的可编程性,能方便地对系统进行功
7、能的扩张和更改。mcs-51单片机特点如下:可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的 cpu 程序指令和数据都可以写在 rom1,许多信号通道都在同一芯片,因此可靠性高,易 扩充。单片机有一般电脑所必须的器件,如三态双向总线,用并行的输入及输出引脚, 可扩充为各种规模的微电脑系统。控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。其原理框图如下如图所示为电路框图。其工作原理为:接通电源后,主持人将开关拨到“清除” 状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关 置,“开始”状态,宣布“开始”抢答器工作。定时器
8、倒计时,扬声器给出声响提示。 选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提 示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次 抢答必须由主持人再次操作“开始、停止”状态开关。(一)功能介绍1、如果想调节抢答时间或答题时间,按抢答时间调节键或答题时间调节键进 入调节状态,此时会显示现在设定的抢答时间或回答时间值,如想加一秒按一下加1s” 键,如果想减一秒按一下-1s”键,时间led上会显示改变后的时间,调整范围为0s99s, 0s时再减1s会跳到99, 99s时再加1s会变到0s。2、主持人按“抢答开始”键,会有提示音,并立刻进入抢答倒计时
9、(预设 30s抢答 时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时 (预设60s 抢答时间),不进行抢答查询,所以只有第一个按抢答的选手有效。 倒数时间到小于5s 会每秒响一下提示音。3、如倒计时期间,主持人想停止倒计时可以随时按 停止按键,系统会自动进入 准备状态,等待主持人按“抢答开始”进入下次抢答计时。4、如果主持人未按“抢答开始键,而有人按了抢答按键,犯规抢答,led上不断 闪烁ff和犯规号数并响个不停,直到按下停止”键为止。5、p3.0为开始抢答,p3.1为停止,p1.0-p1.7为八路抢答输入 数码管段选p0 口,位选p2 口低3位,蜂鸣器输出为p3.6 口。
10、p3.2抢答时间调整结,p3.3回答时间 调整,p3.4为时间加1调整,p3.5为时间减1调整。(二)抢答器的工作原理抢答器的工作原理是利用单片机的定时器t0、t1中断完成,其余状态循环调用显示子程序,用4个共阴极le躁码管来显示,用p0 口作为数码管的八个段选,用p2 口 中的p2.0、p2.1、p2.2、作为4个数码管其中3个位选,p1 口接8个按键,提供选手 抢答,p3.0-p3.5四个接四个按键,提供开始、结束、答题时间调整、抢答时间调整, 加1、减1调整之用。抢答功能:通过八路按键配合程序来实现抢答功能。当主持人按下抢答键开始抢答后,此时 任一路按下按钮均闭锁其它各路,由程序对键盘译
11、码并显示最先按下抢答键的路数及 其当前时间。抢答限时:主持人按下抢答键后,设置 30秒为抢答时间(此时间可在1-99秒之间修改)。若 30秒内无人抢答,倒计时为5时发出报警,说明该抢答题目作废。此时闭锁所有抢答 按键,只有当主持人再次按下抢答键开始下一次抢答方可抢答。答题限时:当选手按下按钮时,启动倒计时(此倒计时时间可在199秒之间修改),倒计时 为5时发出报警,说明答题时间到。三、硬件电路设计1 .原理图的确定单片机实现抢答的原理图:r1r810kx112mhz18xtal2p0.6/ad63_932rstp0.7/ad7293p2.6/a14p2.7/a15发声喇叭i开始抢答p1.5p1
12、.6p17p0.2/ad2p0.3/ad3p0.4/ad4p0.5/ad5p2.0/a8f2.1/a9p2.2/a10p2.3/a11p2.4/a12p2.5/a13aleea工 omi /停止:-p0.0/ad0p0.1/ad1p1.0p1.1p1.2p1.3p1.4p3.0/rxdr610kr5p3.1/txdp3.2/intp3.3/int1f3.4/t0f3.5/t1p3 6/wr抢答时间调整回答时间调整加1s减1s抢答电路的接口电路2 .抢答器电路参考电路如上图所示。该电路完成两个功能:一是分辨出选手按键的先后,并锁存 优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键
13、操作无效。如有再次抢答需由主持人将 s开关重新置,“清除”然后再进行下一次抢答。3 .时序控制电路设计a.主持人将控制开关拨到“开始”位置时,扬声器发声,抢答电路和定时电路进人正 常抢答工作状态。b.当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停 止工作4 .复位电路的设计外部中断和内部中断并存,单片机硬件复位端,只要持续 4个机器周期的高电平即 可实现复位,硬件复位后的各状态可知寄存器以及存储器的值都恢复到了初始值,因 为本设计中功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能 用软件复位,软件复位实际上就是当程序执行完之后,将程序通过一条跳转指令让它 完成复位。复
14、位电路如图3所示:也iml隼ah 0r 二; 。育“ a 曰ml iff ” * ixir 心 e = -eeh? 叩 l unn 9b 肾 二.“ q 9*在 fa 君 x*-rr ssf)xi .idklmm3.复位电路原理图5 .晶振电路的设计msc-51单片机的定时控制功能是用时钟电路和振荡器完成的,而根据硬件电路的 不同,连接方式分为内部时钟方式和外部时钟方式。本设计中采用内部时钟方式。单片机内部有一个反相放大器,xtal1、xtal2分别为反相放大器的输入端 和输出端,外接定时反馈元件组成振荡器(内部时钟方式),产生时钟送至单片机内部 各元件。时钟频率越高,单片机控制器的控制节拍就
15、越快,运算速度也就越快。一般来说单片机内部有一个带反馈的线性反相放大器,外界晶振(或接陶瓷振 荡器)和电容就可组成振荡器,如图 2-2所示。加电以后延时一段时间(约 10ms)振 荡器产生时钟,不受软件控制,图中y1为晶振,震荡产生的时钟频率主要由y1确定。 电容c1, c2的作用有两个:一是帮助振荡器起振,二是对振荡器的频率起微调作用, 典型值为30pf。晶振电路的设计如图2-2所示:晶振电路原理图6 .报警电路设计报警电路用于报警,当遇到报警信号时,发出警报。一般喇叭是一种电感性图5报警电路图。8951驱动喇叭的信号为各种频率的脉冲。因此,最简单的喇叭驱动方式 就是利用达林顿晶体管,或者以
16、两个常用的小晶体管连接成达林顿架势。在右图中电 阻r为限流电阻,在此利用晶体管的高电流增益,以达到电路快速饱和的目的。不过, 如果要由p0输出到此电路,还需要连接一个10k的上拉电阻。选手在设定的时间内抢答时,实现:优先判断、编号锁存、编号显示、扬声器提 示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次 抢答必须由主持人再次作清除和开始状态开关。7 .选手抢答键(矩阵式键盘)at89c51的p1 口做一个为选手抢答的输入按键引脚, p1.0至p1.7轮流输出低电 位,给每一个选手编号1至8,当选手按下按钮时,p1 口个端口的电平变化从p1 口输 入,经单片机处理后从p
17、0输出由数码管显示抢答者编号。wnip;3mpj。他 同鸿面力 *ietf wjbtttpjltt8 .显示与显示驱动电路此电路包括显示和驱动,显示采用数码管,驱动用 p2 口,违规者编号、抢答30 秒倒计时、正常抢答者编号和回答问题时间 60秒倒计时,数码管采用动态显示。驱动 电路p2 口,查询显示程序利用p0 口做段选码口输出p2低3位做位选码输出,当为低 电平则能驱动数码管使其显示数字。在 +5v电压下接10k的电阻,保证正常压降。 四、软件设计1、系统主程序设计为了能够达到抢答的公平、公正、合理,应该在主持人发布抢答命令之前必须 先设定抢答的时间,因而在编开始抢答前的程序得先编写设定时
18、间的程序,当时间设 好了之后,主持人发布抢答命令按下 p1.7按键,程序开始打开定时中断开始倒计时, 然后调用键盘扫描子程序,编写键盘扫描程序。当在扫描到有人按下了答题键,马上 关闭t0、调用显示程序、封锁键盘。342.系统主程序流程图显示抢答违规流程图3.抢答成功流程图4.程序清单定时器t1时间初值 设50ms时间初值为z开z的计算方法为main: mov r1,#30mov r2,#60mov tmod,#11hmov th0,#0f0hmov tl0,#0ffhmov th1,#3chmov tl1,#0b0hsetb easetb et0setb et1setb ex0setb ex1
19、 clr ok clr ringsetb tr1setb tr0th1/tl1就可以了 ;查询程序start: mov data0,#0ffhppp如果想重新计数,重置(216- z) x 12=12 x 50 x 103,结果 z=15536d=3cb0hok equ 20h;抢答开始标志位ring equ 22h;响铃标志位data0 equ 36h;抢答按键口数据存放地址org 0000hajmp mainorg 0003hajmp int0suborg 000bhajmp t0intorg 0013hajmp int1suborg 001bhajmp t1intorg 0040h;初设
20、抢答时间为30s;初设答题时间为60s;设置未定时器/模式1;越高发声频率越高,越尖;50ms为一次溢出中断;允许四个中断,t0/t1/int0/int1;一开始就运行定时器,以开始显示;初始化mov r5,#0bhmov r4,#0bhmov r3,#0bhacall display;未开始抢答时候显示 pppjnb p3.3 ,int0subjnb p3.4,tz1;倒计时调整jb p3.0,next;dddddddacall delayjb p3.0,next;去抖动,如果开始键”按下就向下执行,否者跳到非法抢答查询setb ex0;开放 int0acall bark;按键发声mov a
21、,r1mov r6,a;送r1-r6,因为r1中保存了抢答时间setb ok;抢答标志位,用于count只程序中判断是否查询抢答(在使用锦囊时用作判断是抢答倒计时还是回答倒计时)mov r3,#0ah ajmp count next:jnb p1.0,false1jnb p1.1,false2jnb p1.2,false3jnb p1.3,false4jnb p1.4,false5jnb p1.5,false6jnb p1.6,tz1jnb p1.7,tz2 ajmp start tz1:jmp false7tz2:jmp false8false1: acall barkmov r3,#01h
22、 ajmp errorfalse2: acall barkmov r3,#02h ajmp errorfalse3: acall barkmov r3,#03h ajmp error;抢答只显示计时,灭号数;进入倒计时程序,查询有效抢答的程序在count里面;非法抢答处理程序;按键发声false4: acall barkmov r3,#04hajmp errorfalse5: acall bark mov r3,#05h ajmp errorfalse6: acall bark mov r3,#06h ajmp errorfalse7: acall barkmov r3,#07hajmp er
23、rorfalse8: acall bark mov r3,#08hajmp errorint0sub: mov a,r1mov b,#0ahdiv ab;int0(抢答时间r1调整程序)mov r5,amov r4,bmov r3,#0ah acall display jnb p3.4,inc0 jnb p3.5,dec0jnb p3.1,back0ajmp int0subinc0:mov a,r1cjne a,#63h,add0mov r1,#00hacall delay1ajmp int0subadd0:inc r1acall delay1ajmp int0subdec0:mov a,r1
24、jz setr1dec r1acall delay1ajmp int0subsetr1: mov r1,#63hacall delay1ajmp int0subback0: retiint1sub: mov a,r2mov b,#0ahdiv abmov r5,amov r4,bmov r3,#0ahacall displayjnb p3.4,inc1jnb p3.5,dec1jnb p3.1,back1ajmp int1subinc1:mov a,r2cjne a,#63h,add1mov r2,#00hacall delay1ajmp int1subadd1:inc r2acall del
25、ay1ajmp int1sub;先在两个时间 led上显示r1;p3.4为+ 1s键,如按下跳到inco;p3.5为-1s键,如按下跳到deco;p3.1为确定键,如按下跳到backo;如果不是99,r2加1,如果加到99,r1就置0,重新加起。;如果r1为0, r1就置99,;int1(回答时间r2调整程序)dec1:mov a,r2jz setr2dec r2acall delay1ajmp int1subsetr2: mov r2,#63hacall delay1ajmp int1subback1: reticount: mov r0,#00hmov th1,#3chmov tl1,#0
26、b0hrecount: mov a,r6给r6;倒计时程序(抢答倒计时和回答倒计时都跳到改程序);重置定时器中断次数;重置定时器;r6保存了倒计时的时间,之前先将抢答时间或回答时间;大于5s跳到larger,小于等于5s会提醒;1s中0.5s向下运行mov b,#0ahdiv abmov 30h,amov 31h,bmov r5,30hmov r4,31hmov a,r6subb a,#07hjnc largermov a,r0cjne a,#0ah,full;除十分出个位/十位;十位存于(30h);个位存于(31h);取十位;取个位clr ringajmp check;下面是1s的情况,响并
27、显示号数并清 r0,重新计full:cjne a,#14h,checksetb ringmov a,r6jz quitmov r0,#00hdec r6ajmp check;计时完毕;一秒标志减1larger: mov a,r0cjne a,#14h,checkdec r6mov r0,#00hcheck: jnb p3.1,quitacall displayjb ok,accoutajmp recount;如果1s向下运行,否者跳到查停/显示;计时一秒r6自动减1;如按下停止键退出;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数accout:mov a,data0jnb p1.0,t
28、rue1jnb p1.1,true2jnb p1.2,true3jnb p1.3,true4jnb p1.4,true5jnb p1.5,true6jnb p1.6,tz3jnb p1.7,tz4ajmp recounttz3:jmptrue7tz4:jmptrue8;如果按下了 停止键”执行的程序;正常抢答处理程序;按键发声;抢答时间r2送r6;因为答题的计时不再查询抢答,所以就锁了抢答quit:clr okclr ringajmp starttrue1: acall barkmov a,r2mov r6,amov r3,#01hclr okajmp counttrue2:acall bar
29、k;mov a,r2mov r6,amov r3,#02hclr okajmp counttrue3:acall bark;mov a,r2mov r6,amov r3,#03hclr okajmp counttrue4:acall bark;mov a,r2mov r6,amov r3,#04hclr okajmp counttrue5: acall bark;mov a,r2mov r6,amov r3,#05hclr okajmp counttrue6: acall bark;犯规抢答程序;犯规号数暂存与(34h)05s向下运行-灭并停响;三灯全灭;下面是1s的情况,响并显示号数并清 r
30、0,重新计;取回号数;显示pp和号数;显示程序;查表显示程序 利用p0 口做段选码口输出/p2低三位做mov a,r2mov r6,amov r3,#06hclr okajmp counttrue7: acall bark;mov a,r2mov r6,amov r3,#07hclr okajmp counttrue8: acall bark;mov a,r2mov r6,amov r3,#08hclr okajmp counterror: mov r0,#00hmov th1,#3chmov tl1,#0b0hmov 34h,r3here:mov a,r0cjne a,#0ah,flashc
31、lr ringmov r3,#0ahmov r4,#0ahmov r5,#0ahajmp check1flash: cjne a,#14h,check1setb ringmov r0,#00hmov r3,34hmov r5,#0bhmov r4,#0bhajmp check1check1: jnb p3.1,quit1acall displayajmp herequit1: clr ringclr okajmp startdisplay:mov dptr,#dat1mov a,r3movc a,a+dptrmov p2,#0fehmov p0,aacall delaymov dptr,#da
32、t2mov a,r5movc a,a+dptrmov p2,#0fdhmov p0,aacall delaymov a,r4movc a,a+dptrmov p2,#0fbhmov p0,aacall delayretdat1:db 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h,73hdat2:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h,73hdelay1: mov 35h,#08hloop0: acall displaydjnz 35h,loop0ret;延时(显示和去抖动用到)delay: mov
33、32h,#12hloop:mov 33h,#0afhloop1: djnz 33h,loop1djnz 32h,loopret;发声程序bark:setb ringacall delay1acall delay1clr ring;按键发声ret;to溢出中断(响铃程序)t0int: mov th0,#0echmov tl0,#0ffhjnb ring,out;cpl p3.6;ring标志位为1时候p3.6 口不断取反使喇叭发出一定频率的声音out:reti;t1溢出中断(计时程序)t1int: mov th1,#3chmov tl1,#0b0hinc r0reti;intt0中断服务程序in
34、tt0:mov data0,p1clr ex0retiend五、仿真调试试验的程序通过keil软件编译,产生he双件如图4-1所示:程序在keil软件上编译结果通过proteus进行仿真,如仿真结果所示,按下开始后,数码管开始倒计时,仿 真结果如图4-2所示。proteus仿真的结果当有选手按下按扭时,数码管显示选手号码并开始倒计时,如图 4-3所示proteus 仿真的结果通过仿真结果证实,该方案可行。该设计方案同过51系列单片机的p0 口作为段选输出,用p2口作为位选输出,动态扫描led显示管,显示时间。并通过接在p3.0-p3.6 口的按键开关控制开始、结束、喇叭提示等功能。p1 口接选
35、手按键,控制抢答。本设计实现简单,成本较低很适合我们大学生动手实践。六.源程序ok equ 20hring equ 22hdata0 equ 36horg 0000h ajmp main org 0003h ajmp int0suborg 000bh ajmp t0intorg 0013h ajmp int1suborg 001bhajmp t1int;抢答开始标志位;响铃标志位;抢答按键口数据存放地址org 0040h;允许四个中断,t0/t1/int0/int1;未开始抢答时候显示 ppp;倒计时调整;ddddddd;去抖动,如果开始键”按下就向下执行,否者跳到非法抢答查询;开放int0;
36、按键发声main: mov r1,#30mov r2,#60mov tmod,#11hmov th0,#0f0hmov tl0,#0ffhmov th1,#3chmov tl1,#0b0hsetb easetb et0setb et1setb ex0setb ex1clr okclr ringsetb tr1setb trstart: mov data0,#0ffhmov r5,#0bhmov r4,#0bhmov r3,#0bhacall displayjnb p3.3 ,int0subjnb p3.4,tz1jb p3.0,next acall delay jb p3.0,nextsetb
37、 ex0 acall bark mov a,r1;初设抢答时间为30s;初设答题时间为60s;设置未定时器/模式1;越高发声频率越高,越尖;50ms为一次溢出中断;查询程序;初始化mov r6,asetb okmov r3,#0ahajmp countnext:jnb p1.0,false1jnb p1.1,false2jnb p1.2,false3jnb p1.3,false4jnb p1.4,false5jnb p1.5,false6jnb p1.6,tz1jnb p1.7,tz2 ajmp start tz1:jmp false7tz2:jmp false8false1: acall b
38、arkmov r3,#01h ajmp errorfalse2: acall barkmov r3,#02h ajmp errorfalse3: acall barkmov r3,#03h ajmp errorfalse4: acall barkmov r3,#04h ajmp errorfalse5: acall barkmov r3,#05h ajmp errorfalse6: acall barkmov r3,#06h ajmp errorfalse7: acall barkmov r3,#07h ajmp errorfalse8: acall barkmov r3,#08h ajmp
39、error int0sub: mov a,r1mov b,#0ahdiv abmov r5,amov r4,br1-r6,因为r1中保存了抢答时间;抢答标志位,用于count只程序中判断是否查询抢答;抢答只显示计时,灭号数;进入倒计时程序,查询有效抢答的程序在count里面;非法抢答处理程序;按键发声;int0(抢答时间r1调整程序)mov r3,#0ah acall display jnb p3.4,inc0 jnb p3.5,dec0 jnb p3.1,back0ajmp int0subinc0:mov a,r1cjne a,#63h,add0mov r1,#00h acall delay
40、1ajmp int0subadd0:inc r1acall delay1 ajmp int0subdec0:mov a,r1jz setr1 dec r1 acall delay1 ajmp int0subsetr1: mov r1,#63h acall delay1 ajmp int0subback0: retiint1sub: mov a,r2mov b,#0ah div abmov r5,a mov r4,b mov r3,#0ah acall displayjnb p3.4,inc1jnb p3.5,dec1jnb p3.1,back1ajmp int1subinc1:mov a,r2
41、cjne a,#63h,add1 mov r2,#00h acall delay1ajmp int1subadd1:inc r2acall delay1 ajmp int1subdec1:mov a,r2jz setr2;先在两个时间 led上显示r1;p3.4为+ 1s键,如按下跳到inco;p3.5为-1s键,如按下跳到deco;p3.1为确定键,如按下跳到backo;如果不是99,r2加1,如果加到99,r1就置0,重新加起。;如果r1为0, r1就置99,;int1(回答时间r2调整程序)dec r2acall delay1ajmp int1subsetr2: mov r2,#63ha
42、call delay1ajmp int1subback1: reticount: mov r0,#00hmov th1,#3chmov tl1,#0b0hrecount: mov a,r6mov b,#0ahdiv abmov 30h,amov 31h,bmov r5,30hmov r4,31hmov a,r6subb a,#07hjnc largermov a,r0cjne a,#0ah,fullclr ringajmp checkfull:cjne a,#14h,checksetb ringr6mov a,r6jz quitmov r0,#00hdec r6ajmp checklarger
43、: mov a,r0cjne a,#14h,checkdec r6mov r0,#00hcheck: jnb p3.1,quitacall displayjb ok,accoutajmp recount;倒计时程序(抢答倒计时和回答倒计时都跳到改程序;重置定时器中断次数;重置定时器;r6保存了倒计时的时间,之前先将抢答时间或回答时间给;除十分出个位/十位;十位存于(30h);个位存于(31h);取十位;取个位;大于5s跳到larger,小于等于5s会提醒;1s中0.5s向下运行;下面是1s的情况,响并显示号数并清 r0,重新计;计时完毕;一秒标志减1;如果1s向下运行,否者跳到查停/显示;计时
44、一秒r6自动减1;如按下停止键退出;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数accout:mov a,data0jnb p1.0,true1jnb p1.1,true2jnb p1.2,true3jnb p1.3,true4jnb p1.4,true5jnb p1.5,true6jnb p1.6,tz3jnb p1.7,tz4ajmp recounttz3:jmptrue7tz4:jmptrue8;如果按下了 停止键”执行的程序正常抢答处理程序;按键发声;抢答时间r2送r6;因为答题的计时不再查询抢答,所以就锁了抢答quit:clr okclr ringajmp start ;t
45、rue1: acall barkmov a,r2mov r6,amov r3,#01hclr okajmp counttrue2:acall bark;mov a,r2mov r6,amov r3,#02hclr okajmp counttrue3:acall bark;mov a,r2mov r6,amov r3,#03hclr okajmp counttrue4:acall bark;mov a,r2mov r6,amov r3,#04hclr okajmp counttrue5: acall bark;mov a,r2mov r6,amov r3,#05hclr okajmp count
46、true6: acall bark;mov a,r2mov r6,amov r3,#06h;犯规抢答程序;犯规号数暂存与(34h)05s向下运行-灭并停响;三灯全灭;下面是1s的情况,响并显示号数并清 r0,重新计;取回号数;显示pp和号数clr okajmp count true7: acall bark;mov a,r2mov r6,amov r3,#07hclr okajmp counttrue8: acall bark;mov a,r2mov r6,amov r3,#08hclr okajmp counterror: mov r0,#00hmov th1,#3chmov tl1,#0b
47、0hmov 34h,r3here:mov a,r0cjne a,#0ah,flashclr ringmov r3,#0ahmov r4,#0ahmov r5,#0ahajmp check1flash: cjne a,#14h,check1setb ringmov r0,#00hmov r3,34hmov r5,#0bhmov r4,#0bhajmp check1check1: jnb p3.1,quit1acall displayajmp herequit1: clr ringclr okajmp start;显示程序display:mov dptr,#dat1;查表显示程序,利用p0 口做段选码口输出/p2低三位做位选码输出mov a,r3movc a,a+dptrmov p2,#0fehmov p0,aacall delaymov dptr,#dat2mov a,r5movc a,a+dptrmov p2,#0fdhmov p0,aacall delaymov a,r4 movc a,a+dptr mov p2,#0fbh mov p0,a acall delayretdat1:db 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h,73hdat2:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年山东省青岛市单招职业倾向性考试题库附参考答案详解(达标题)
- 2025年无锡职业技术学院单招职业适应性考试题库带答案详解(达标题)
- 2026年冀中职业学院单招职业适应性考试题库及答案1套
- 2026年四川希望汽车职业学院单招职业适应性测试题库及答案1套
- 2026年唐山科技职业技术学院单招职业适应性考试题库及答案1套
- 2025四川泸州市招聘新兴领域党建工作专员20人考试笔试模拟试题及答案解析
- 2025年河北沧州银行招聘考试笔试模拟试题及答案解析
- 2026年江苏安全技术职业学院单招职业适应性测试必刷测试卷附答案
- 2025山东滨州渤海综合高中招聘考试笔试参考题库附答案解析
- 2025江西吉水县博物馆招聘讲解员2人考试笔试备考题库及答案解析
- 全面预算管理介绍与流程
- 初中生英语演讲稿9篇
- 高速气浮电主轴校准规范
- 中国文化概论完整笔记张岱年
- DB652882-2023在用压燃式发动机汽车加载减速法和自由加速法及排
- 宽城满族自治县中瑞矿业有限公司大彭杖子铁矿开采项目
- GB 2716-2018食品安全国家标准植物油
- FZ/T 63026-2015涤纶金银丝(线)
- 湖北省 公路工程试验检测设备期间核查规范DB42∕T 1544-2020
- GB 18613-2020 电动机能效限定值及能效等级
- 大屯新区控规04主件001文本--0401
评论
0/150
提交评论