版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、湖南工程学院课 程 设 计课程名称 单片机原理与应用 课题名称 多路抢答器设计 专 业 电气工程及其自动化 班 级 学 号 姓 名 指导教师 2011年 5月 20日湖南工程学院课程设计任务书课程名称:单片机原理与应用题 目:多路抢答器设计 专业班级: 电气 班学生姓名: 学号: 指导老师: 审 批: 任务书下达日期 2011年 5月 9日设计完成日期 2011年 5月 11日设计内容与设计要求设计内容:设计一款基于单片机的多路抢答器。设计要求:1. 设计一款6路或以上的抢答器。2. 设计一个抢答控制开关(开始抢答后才允许答题者抢答)。3. 设定抢答时间限制,超过时间后,该题作废。4. 设定答
2、题时间。5. 数字led显示当前答题者号。6. 其他功能(创意部分)。例:有犯规(未按开始键就抢答的)时显示其号码。说 明 书 格 式封面课程设计任务书目录第1章 设计的要求及目的第2章 系统总体方案选择与说明第3章 系统方框图与工作原理,第4章 各单元硬件设计及说明第5章 器件说明第6章 软件设计与说明(包括流程图)第7章 调试步骤、结果、使用说明第8章 设计总结第9章 参考文献附录:系统电路原理图(用protues制作)、系统程序清单。电气信息学院课程设计评分表进 度 安 排设计时间为两周 第一周 星期一、上午:布置课题任务,讲课及课题介绍 下午:借阅有关资料,总体方案讨论 星期二、确定总
3、体设计方案 星期三、硬件模块方案设计 星期四、软件模块方案设计 星期五、设计及调试 第二周 星期一、设计及调试 星期二、设计及调试 星期三、总调 星期四、写说明书 星期五、上午:写说明书,整理资料 下午:交设计资料,答辩参 考 文 献参考文献一、 单片机应用系统设计 何立民 编 北航出版社二、 单片机原理及应用 王迎旭 主编 机械工业出版社三、 51系列单片机设计实例 楼然苗 等编 北航出版社四、 51单片机应用系统开发典型实例戴家 等编 中国电力出版社五、 单片微型计算机原理及接口技术陈光东 等编 华中科技大学出版社六、 单片机实用系统设计技术房小翠 编 国防工业出版社目 录第1章 设计内容
4、及要求71.1 设计内容71.2 设计要求71.3 系统主要功能8第2章 系统主要硬件电路设计92.2 单片机主机系统电路112.2.1 时钟频率电路的设计112.2.2复位电路的设计122.2.3 显示电路的设计132.2.4 键盘扫描电路的设计132.3 发声142.4 系统复位14第3章 系统软件设计163.1 主程序系统结构图163.2 程序流程图173.3 系统程序18第4章 调试及性能分析31第5章 设计总结32第6章 参考文献33第1章 设计内容及要求1.1 设计内容设计一款基于单片机的多路抢答器。1.2 设计要求设计一款6路或以上的抢答器。设计一个抢答控制开关(开始抢答后才允许
5、答题者抢答)。设定抢答时间限制,超过时间后,该题作废。设定答题时间。数字led显示当前答题者号。其他功能(创意部分)。例:有犯规(未按开始键就抢答的)时显示其号码。1.3 系统主要功能抢答器原理:该抢答器供不多于六个的抢答比赛使用。每个选手的座位前安装一只抢答按钮开关和一只信号灯。主持人的座位前安装一只复原按钮开关、一只蜂鸣器和一只抢答器工作状态指示灯。每当主持人口头发出允许抢答的号令之后,哪个队先按下座位上的按钮开关,该座位的信号灯就先被点亮,同时封锁其他按钮开关的活动。并且熄灭主持人座位上的状态指示灯和发出 3 声类似于电话振铃的提示声,以“声明”此次抢答动作已经完成。在主持人确认后,按下
6、复原按钮,状态指示灯重新点亮,并且同时发出“笛笛”声,为下一次的抢答作好准备。电路中的蜂鸣器 fm 是一只带有助音腔的压电陶瓷蜂鸣器,用于模拟发出报警声的功率放大器和喇叭。在 fm 发声的同时,灯 d6 也在发光。fm 可以看作是一个电容性负载,本身不能流过直流电流。发声的原理是,作用在两个电极极板的电位在发生变化时,陶瓷材料就发生弯曲,从而振动空气发出声音。fm和 4 只按钮开关 swaswd 以及 4 只电阻 rard 都是在演示板的基础上额外添加的。由于rb端口内部具有上拉电阻,只要用软件设置其有效,即可省略在4 只端口引脚上外接上拉电阻。按钮开关和指示灯与座位的对应关系如表1.1所示:
7、座位主持人席座位1座位2座位3座位4座位5座位6按钮开关sw1swaswbswcswdsweswf指示灯d7d0d1d2d3d4d5蜂鸣器有无无无无无无表1.1 按钮开关和指示灯与座位的对应关系第2章 系统主要硬件电路设计为使硬件电路设计尽可能合理,应注意以下几方面:(1) 尽可能采用功能强的芯片,以简化电路,功能强的芯片可以代替若干普通芯片,随着生产工艺的提高,新型芯片的的价格不断下降,并不一定比若干普通芯片价格的总和高。(2) 留有设计余地。在设计硬件电路时,要考虑到将来修改扩展的方便。因为很少有一锤定音的电路设计,如果现在不留余地,将来可能要为一点小小的修改或扩展而被迫进行全面返工。(3
8、) 程序空间,选用片内程序空间足够大的单片机,本设计采用at89c51单片机。(4) i/o端口,在样机研制出来后进行现场试用时,往往会发现一些被忽视的问题,而这些问题不是靠单纯的软件措施来解决的。如有些新的信号需要采集,就必须增加输入检测端;有些物理量需要控制,就必须增加输出端。如果在硬件电路设计就预留出一些i/o端口,虽然当时空着没用,那么用的时候就派上用场了。2.1 单片机控制系统原理图如图2-1,p1.0为开始抢答,p1.7为停止,p1.1-p1.6为六路抢答输入,数码管段选p0口,位选p2口低3位,蜂鸣器输出为p3.6口。p3.2为时间加1调整,p3.3为时间减1调整。图2-1 系统
9、原理图2.2 单片机主机系统电路该六路抢答器的设计细分为时钟频率电路的设计,复位电路的设计,显示电路的设计和键盘扫描电路的设计等。2.2.1 时钟频率电路的设计单片机必须在时钟的驱动下才能工作.在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。图2-2 外部振荡源电路一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在xtal2引脚产生幅度为3v左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容 c1,c2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。c1,c2的典型值
10、为30pf。单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数,常用fosc表示。如时钟频率为12mhz,即fosc=12mhz,则时钟周期为1/12s。2.2.2复位电路的设计单片机的第9脚rst为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图2-3所示: 图2-3 复位电路值得注意的是,在设计当中使用到了硬件复位和软件复位两种功能,由上面的硬件复位后的各状态可知寄存器及存储器的值都恢复到了初始值,而前面的功能介绍中提到了倒计时时间的记忆功能,该功能的实
11、现的前提条件就是不能对单片机进行硬件复位,所以设定了软复位功能。软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址。2.2.3 显示电路的设计显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解的前提下提供尽可能丰富的信息,全靠软件来解决。2.2.4 键盘扫描电路的设计键盘是人与微机系统打交道的主要设备。关于键盘硬件电路的设计方法也可以在文献和书籍中找到,配合各种不同的硬件电路,这些书籍中一般也提供了相应的键盘扫描程序。站在系统监控软件设计的立场上来看,仅仅完成键盘扫描,读取当前时刻的键盘状态是不够的,还有不少问题需要妥善解决,否则,人们在操作键
12、盘就容易引起误操作和操作失控现象。在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘。图2-4 独立键盘它们各有自己的特点,其中独立键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高的简单电路中;矩阵键盘与独立键盘有很大区别,首先在硬件电路上它要比独立键盘复杂得多,而且在程序算法上比它要烦琐,但它在节省端口资源上有优势得多,因此它更适合于多按键电路。其次就是消除在按键过程中产生的“毛刺”现象。这里采用最常用的方法,即延时重复扫描法,延时法的原理为:因为“毛刺”脉冲一般持续时间短,约为几ms,而我们按键的时间一般远远大于这个时间,所以当单片机检测到有按键动静后再延时一段时间
13、(这里我们取10ms)后再判断此电平是否保持原状态,如果是则为有效按键,否则无效。2.3 发声我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单片机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使喇叭发出不同的声音。2.4 系统复位使cpu进入初始状态,从0000h地址开始执行程序的过程叫系统复位。从实现系统复位的方法来看,系统复位可分为硬件复位和软件复位。硬件复位必须通过cpu外部的硬件电路给cpu的reset端加上足够时间的高电位才能实现。上电
14、复位,人工按钮复位和硬件看门狗复位均为硬件复位。硬件复位后,各专用寄存器的状态均被初始化,且对片内通用寄存器的内容没有影响。但是,硬件复位还能自动清除中断激活标志,使中断系统能够正常工作,这样一个事实却容易为不少编码人员所忽视。软件复位就是用一系列指令来模拟硬件复位功能,最后通过转移指令使程序从0000h地址开始执行。对各专用寄存器的复位操作是容易的,也没有必要完全模拟,可根据实际需要去主程序初始化过程中完成。而对中断激活标志的清除工作常被遗忘,因为它没有明确的位地址可供编程。有的编程人员用020000(ljmp 0000h)作为软件陷阱,认为直接转向0000h地址就完成了软件复位,就是这类错
15、误的典型代表。软件复位是使用软件陷阱和软件看门狗后必须进行的工作,这时程序出错完全有可能发生在中断子程序中,中断激活标志已置位,它将阻止同级中断响应。由于软件看门是高级中断,它将阻止说要中断响应,由此可见清除中断激活标志的重要性。在所有的指令中,只有reti指令能够清除中断激活标志。前文各处提案到的出错处理程序err主要完成这一功能,其他的善后工作交由复位后的系统去完成。这部分程序如下:power data 67h ;上电标志存放单元 err: clr ea ;关中断 mov dptr,#err1 ;准备返回地址push dplpush dphreti ;清除高级中断激活标志err1: mov
16、 power,#0aah ;重建上电标志 clr a ;准备复位地址 push acc ;压入复位地址0000hpush accreti ;清除低级中断激活标志,从程序0000h开始执行这段程序先关中断,以便后续处理能顺利进行,然后用两个reti指令代替两个ljmp指令,从而清除了两级中断激活标志。有相应软件陷阱捕捉来的程序可能没有全部激活两个标志,这也无妨。第3章 系统软件设计软件任务分析和硬件电路设计结合进行,哪些功能由硬件完成,哪些任务由软件完成,在硬件电路设计基本定型后,也就基本上决定下来了。3.1 主程序系统结构图非法抢答模块正确抢答模块调整抢答时间调整回答时间系统初始化模块按键模块
17、数码显示模块图3-1 软件系统结构图3.2 程序流程图在本设计中包括了以下八个主要的程序:主程序、非法抢答序、抢答时间调整程序、回答时间调整程序、倒计时程序、正常抢答处理程序、犯规处理程序、显示及发声程序。主流程图如3-2所示:开始键按下?加一键按下?减一键按下?正常抢 答回答时间非法抢答处理调整抢答时间显示犯 规显示抢答号并倒计时显示fff初始化yy图3-2 程序设计流程图3.3 系统程序p1.0为开始抢答,p1.7为停止,p1.1-p1.6为六路抢答输入数码管段选p0口,位选p2口,蜂鸣器输出为p3.6口。程序代码如下:ok equ 20h ;抢答开始标志位 ring equ 22h ;响
18、铃标志位 org 0000h ajmp main org 0003h ajmp int0sub org 000bh ajmp t0int org 0013h ajmp int1sub org 001bh ajmp t1int org 0040hmain: mov r1,#0fh ;初设抢答时间为15s mov r2,#0ah ;初设答题时间为10s mov tmod,#11h ;设置未定时器/模式1 mov th0,#0f0h mov tl0,#0ffh ;越高发声频率越高,越尖 mov th1,#3ch mov tl1,#0b0h ;50ms为一次溢出中断 setb ea setb et0
19、setb et1 setb ex0 setb ex1 ;允许四个中断t0/t1/int0/int1 clr ok clr ring setb tr1 setb tr0 ;一开始就运行定时器,以开始显示fff;果想重新计数重置th1/tl1就可以了查询程序:start: mov r5,#0bh mov r4,#0bh mov r3,#0bh acall display ;未开始抢答时候显示fff jb p1.0,next acall delay jb p1.0,next ;去抖动,如果开始键按下就向下执行;否者跳到非法抢答查询 acall bark ;按键发声 mov a,r1 mov r6,a
20、 ;送r1-r6,因为r1中保存了抢答时间 setb ok ;抢答标志位,用于count只程序中判断;是否查询抢答 mov r3,0ah ;抢答只显示计时,灭号数 ajmp count ;进入倒计时程序,查询有效抢答的程序;在count里面next: jnb p1.1,false1 jnb p1.2,false2 jnb p1.3,false3 jnb p1.4,false4 jnb p1.5,false5 jnb p1.6,false6 ajmp start非法抢答处理程序:false1: acall bark ;按键发声 mov r3,#01h ajmp errorfalse2: acal
21、l bark mov r3,#02h ajmp errorfalse3: acall bark mov r3,#03h ajmp errorfalse4: acall bark mov r3,#04h ajmp errorfalse5: acall bark mov r3,#05h ajmp errorfalse6: acall bark mov r3,#06h ajmp errorint0(抢答时间r1调整程序):int0sub:mov a,r1 mov b,#0ah div ab mov r5,a mov r4,b mov r3,#0ah acall display ;先在两个时间led上
22、显示r1 jnb p3.2,inc0 jnb p3.3,dec0 jnb p1.7,back0 ajmp int0subinc0: mov a,r1 cjne a,#63h,add0 ;如果不是99,r2加1,如果加到99了;r1就置0新加起 mov r1,#00h acall delay1 ajmp int0subadd0: inc r1 acall delay1 ajmp int0subdec0: mov a,r1 jz setr1 ;如果r1为0,r1就置99 dec r1 acall delay1 ajmp int0subsetr1: mov r1,#63h acall delay1
23、ajmp int0subback0: retiint1(回答时间r2调整程序):int1sub:mov a,r2 mov b,#0ah div ab mov r5,a mov r4,b mov r3,#0ah acall display jnb p3.2,inc1 jnb p3.3,dec1 jnb p1.7,back1 ajmp int1subinc1: mov a,r2 cjne a,#63h,add1 mov r2,#00h acall delay1 ajmp int1subadd1: inc r2 acall delay1 ajmp int1subdec1: mov a,r2 jz s
24、etr2 dec r2 acall delay1 ajmp int1subsetr2: mov r2,#63h acall delay1 ajmp int1subback1: reti倒计时程序(抢答倒计时和回答倒计时都跳到该程序):count: mov r0,#00h ;重置定时器中断次数 mov th1,#3ch mov tl1,#0b0h ;重置定时器recount: mov a,r6 ;r6保存了倒计时的时间之前;先将抢答时间或回答时间给r6 mov b,#0ah div ab ;除十分出个位/十位 mov 30h,a ;十位存于(30h) mov 31h,b ;个位存于(31h) m
25、ov r5,30h ;取十位 mov r4,31h ;取个位 mov a,r6 subb a,#07h jnc larger ;大于5s跳到larger;小于等于5s会提醒 mov a,r0 cjne a,#0ah,full ;1s中0.5s向下运行 clr ring ajmp checkfull: cjne a,#14h,check ;下面系1s的情况,响并显示号数;并清r0,重新计时 setb ring mov a,r6 jz quit ;计时完毕 mov r0,#00h dec r6 ;一秒标志减1 ajmp checklarger: mov a,r0 cjne a,#14h,check
26、 dec r6 ;计时一秒r6自动减1 mov r0,#00hcheck: jnb p1.7,quit ;如按下停止键退出 acall displayjb ok,account ;如果是抢答倒计时,如是则查询;抢答,否者跳过查询继续倒数 ajmp recountaccout: jnb p1.1,true1 jnb p1.2,true2 jnb p1.3,true3 jnb p1.4,true4 jnb p1.5,true5 jnb p1.6,true6 ajmp recountquit: clr ok ;如果按下了停止键执行的程序 clr ring ajmp start正常抢答处理程序:tru
27、e1: acall bark ;按键发声 mov a,r2 mov r6,a ;抢答时间r2送r6 mov r3,#01h clr ok ;因为答题的计时不再查询抢答;所以就锁了抢答 ajmp counttrue2: acall bark; mov a,r2 mov r6,a mov r3,#02h clr ok ajmp counttrue3: acall bark; mov a,r2 mov r6,a mov r3,#03h clr ok ajmp counttrue4: acall bark; mov a,r2 mov r6,a mov r3,#04h clr ok ajmp count
28、true5: acall bark; mov a,r2 mov r6,a mov r3,#05h clr ok ajmp counttrue6: acall bark; mov a,r2 mov r6,a mov r3,#06h clr ok ajmp count犯规抢答程序:error: mov r0,#00h mov th1,#3ch mov tl1,#0b0h mov 34h,r3 ;犯规号数暂存与(34h)here: mov a,r0 cjne a,#0ah,flash ;0.5s向下运行-灭并停响 clr ring mov r3,#0ah mov r4,#0ah mov r5,#0a
29、h ;三灯全灭 ajmp check1flash: cjne a,#14h,check1 ;下面系1s的情况,响并显示号数;并清r0,重新计算 setb ring mov r0,#00h mov r3,34h ;取回号数 mov r5,#0bh mov r4,#0bh ;显示ff和号数 ajmp check1check1: jnb p1.7,quit1 acall display ajmp herequit1: clr ring clr ok ajmp start显示程序:入口参数:r5,r4,r3存入的分别为第一,二,三为数码所显示的位码出口参数:无display: mov dptr,#da
30、t1 ;查表显示程序,利用p0口做段选码口;输出/p2低三位做位选码输出 mov a,r5 movc a,a+dptr mov p2,#01h mov p0,a acall delay mov dptr,#dat2 mov a,r4 movc a,a+dptr mov p2,#02h mov p0,a acall delay mov a,r3 movc a,a+dptr mov p2,#04h mov p0,a acall delay retdat1: db 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h,71h;灭,1,2,3,4,5,6,7,8,9,
31、灭,fdat2: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h,71h;第一个为零,其他与上相同,因为十位如果为零显示熄灭加减时间延时(起到不会按下就加n个数):delay1: mov 35h,#08hloop0: acall display djnz 35h,loop0 ret延时(显示和去抖动用到):delay: mov 32h,#12hloop: mov 33h,#0afhloop1: djnz 33h,loop1 djnz 32h,loop ret发声程序:bark: setb ring acall delay1 acall delay1
32、 clr ring ;按键发声 retto溢出中断(响铃程序):t0int: mov th0,#0ech mov tl0,#0ffh jnb ring,out cpl p3.6 ;ring标志位为1时候p3.6口不短;取反使喇叭发出一定频率的声音out: retit1溢出中断(计时程序):t1int: mov th1,#3ch mov tl1,#0b0h inc r0 reti end第4章 调试及性能分析(1)具有清零装置和抢答控制,可由主持人操纵避免有人在主持人说“开始”前提前抢答违反规则。(2)具有定时功能,在30秒内无人抢答表示所有参赛选手获参赛队对本题弃权。(3)30秒时仍无人抢答其报警电路工作表示抢答时间耗尽并禁止抢答。(4)如果想调节抢答时间或答题时间,按抢答时间调节键或答题时间调节 键进入调节状态,此时会显示现在设定的抢答时间或回答时间值,如想加一秒按一下加1s键,如果想减一秒按一下-1s键,时间led上会显示改变后的时间,调整范围为0s99s, 0s时再减1s会跳到99,99s时再加1s会变到0s。 (5)主持人按抢答开始键,会有提示音,并立刻进入抢答倒计时(预设15s抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时(预设10s抢答时间),
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年绿色能源开发与利用合同
- 2024酒店管理星级酒店物业管理合同
- 2024石材石材劳务派遣与职业培训合同2篇
- 2024年租赁物业延期协议3篇
- 2024年购销协议与购货合同的异同
- 2024年食材配送外包协议2篇
- 2024幼儿园教师艺术教育项目合作协议3篇
- 2024年度科技型企业核心团队股权限制性授予协议书3篇
- 2024年道路照明设备安装及维护承包协议版B版
- 2024年网络安全保障与合规检查合同
- 2025湖北襄阳市12345政府热线话务员招聘5人高频重点提升(共500题)附带答案详解
- 血细胞分析报告规范化指南2020
- ISO 56001-2024《创新管理体系-要求》专业解读与应用实践指导材料之7:“5领导作用-5.1领导作用和承诺”(雷泽佳编制-2025B0)
- 2024年快速消费品物流配送合同6篇
- 广东省茂名市2024届高三上学期第一次综合测试(一模)历史 含解析
- 神经重症气管切开患者气道功能康复与管理学习与临床应用
- 第5章 一元一次方程大单元整体设计 北师大版(2024)数学七年级上册教学课件
- 人教版高一地理必修一期末试卷
- 辽宁省锦州市(2024年-2025年小学六年级语文)部编版期末考试(上学期)试卷及答案
- 2024年下半年鄂州市城市发展投资控股集团限公司社会招聘【27人】易考易错模拟试题(共500题)试卷后附参考答案
- GB/T 29498-2024木门窗通用技术要求
评论
0/150
提交评论