




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机原理及接口课程设计报告题 目: 抢答系统设计 专业名称: 电子信息工程 班 级: 学 号: 姓 名: 2014年 1月抢答系统设计 * (信息工程学院) 摘要:本文介绍基于单片机的6人抢答器设计,采用AT89C51单片机,用中断方式,独立式键盘扫描,哪个按键先按下,对应的数码管显示该号码,并且闪烁5次,蜂鸣器发出警报,之后所有数码管亮该号码,经过调试使得系统达到预期目标。该设计的不足之处就是按键不够灵敏,优点是硬件电路简单,功能齐全,操作方便。 关键词:单片机;抢答器;中断1 设计内容1.1 设计目标本设计主要是在proteus+keil软件仿真软件设计的一种基于51系列单片机的一种六位
2、的抢答器。六路抢答器有六个抢答按钮,分别为按键K1、K2、K3、K4、K5、K6,一个主持人控制的复位按钮K0。在无人抢答时,6只数码管轮流循环显示16。基本要求:制作一个6人抢答器,以开关中的某个开关的按下(闭合)作为抢答按键。无人抢答时,6只数码管轮流循环显示16(跑马),谁先抢答,数码管停止跑马,6个数码管同时亮谁的编号,其后再有人按键,系统不予响应,直到复位键按下,开始下一轮抢答。扩展部分:谁先按下,对应的数码管亮5次抢答人的编号,并发出声音提示。1.2 设计环境Win7 Keil uVison4 Proteus7.8 普中科技单片机开发试验仪2.22 方案论证2.1 按键选择方案1:
3、用独立的外接按键 方案2:用矩阵键盘键盘是单片机系统中通用的输入设备,用于向系统输入数据或控制信息。常用的键盘有两种,分别是独立键盘和矩阵式键盘。矩阵式键盘相对其更加灵敏,并且可扩展更多按键,适用于按键数量较多的场合。独立式键盘接口电路,它的硬件电路和软件编程都比较简单,但每个按键必须占一根I/O口线,在按键个数较多时,I/O口线资源浪费较大, 故只在按键数量不多时采用该电路。本设计所需要的抢答键只要6个,也不算多,虽然矩阵式键盘有其较高的灵敏性,但从简单编程的角度出发,最终还是选择独立式键盘。2.2 抢答器显示模块方案一:采用液晶屏显示组别号码,LCD具有低功耗,画面效果好,分辨率高等特点,
4、但由于只需显示组别数字,信息亮较少,且由于液晶是以点阵的模式显示各符号,编程工作量大,成本高方案二:使用数码管显示,数码管具有耐老化,防晒等特点,对外界环境要求低,易于维护,同时精确度高,操作简单,采用BCD编码显示数字,程序编译容易,价格便宜等特点,广泛应用于多数场合中。本设计只需显示组别,显示简单,通过论证,采用方案二。数码管的显示可分为两种:动态显示和静态显示。静态显示的段选和位选均单独连接,所以占用的I/O口较多,本设计由于用到较多的数码管,采用静态显示方式,将所有LED的段选线并联在一起,由一个八位IO口控制,而位选线分别由相应的IO口线控制。要想每位显示不同的字符,必须采用动态扫描
5、显示方式。即在每一瞬间只使某一位显示相应字符。在此瞬间,位选控制IO口在该显示位送入选通电平(共阴极送低电平、共阳极送高电平)以保证该位显示相应字符,段选控制IO口输出相应字符段选码。如此轮流,使每位显示该位应显示字符,并保持延时一段时间,以造成视觉暂留效果。不断循环送出相应的段选码、位选码,就可以获得视觉稳定的显示状态。由人眼的视觉特性,每一位LED在一秒钟内点亮不少于30次,其效果和一直点亮相差不多。本设计采用共阴型数码管,引脚图2-2所示。 图2-2 数码管引脚2.3 蜂鸣器模块蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、汽车电子设备、
6、电话机、定时器等电子产品中作发声器件。由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O 口是无法直接驱动的,所以要利用放大电路来驱动,一般使用三极管来放大电流就可以了。如图2-3所示。 图2-3 蜂鸣器驱动模块2.4 中断1)、MCS51系列中不同型号单片机的中断源数量是不同的(511个),最典型的8051单片机有5个中断源(外部中断0、1,内部定时器中断0、1,串口中断),具有两个中断优先级。与中断系统有关的特殊功能寄存器有中断允许寄存器IE、中断优先级控制寄存器IP、中断控制寄存器TCON和SCON中有关位。MCS51单片机基本的中断系统结构如图2-4所示。 2)、中断控制寄存器TCO
7、N的各位(可位寻址): IT0 0,外部中断0程控为电平触发方式,当P3.2输入低电平时,置位IE0。IT0 1,外部中断0程控为边沿触发方式,相继的两次采样,一个周期中采样到为高电平,接着的下个周期中采样到为低电平,则置1 IE0。3) 、中断允许寄存器IE MCS51的CPU对中断源的开放或屏蔽,即每一个中断源是否被允许中断,是由内部的中断允许寄存器IE(IE为特殊功能寄存器,它的字节地址A8H,可位寻址)控制的,其格式如下:4) 、在 CPU接收到同样优先级的几个中断请求源时,一个内部的硬件查询序列确定优先服务于哪一个中断申请,这样在同一个优先级里,由查询序列确定了优先级结构,其优先级别
8、排列如下(最高到最低):外部中断0定时器T0中断外部中断1定时器T1中断串行口中断5) 、中断服务程序及例程 使用MCS51的中断,要为使用到的中断源编写中断服务程序。C51为中断服务程序的编写提供了方便的方法。C51的中断服务程序是一种特殊的函数,它的说明形式为:void 函数名(void) interrupt n using m 函数体语句 这里,interrupt和using是为编写C51中断服务程序而引入的关键字,interrupt表示该函数是一个中断服务函数,interrupt后的整数n表示该中断服务函数是对应哪一个中断源。 每个中断源都有系统指定的中断编号:外部中断0 中断编号为0
9、;定时器T0中断编号为1; 外部中断1中断编号为2;定时器T1中断编号为3;串行口中断中断编号为4; using指定该中断服务程序要使用的工作寄存器组号,m为03。关键字interrupt和using只能用于中断服务函数的说明而不能用于其它函数。程序中的任何函数都不能调用中断服务函数,中断服务函数是由系统调用的。3 硬件设计电路包括以下六个部分:单片机,晶振电路,抢答按键电路,6位数码管显示,复位开关电路及声音提示电路。单片机内部有一个复位开关,但是只是内部自带的,而设计的要求就是自编程序实现复位功能,所以还得附加一个复位开关电路。图3-0 总设计框图3.1 AT89C51控制电路AT89C5
10、1是最常用的单片机芯片,该芯片有40个引脚,其中P0P3为数据输入/输出接口,XTAL1和 XTAL2用于外接晶体;RESET用于复位信号输入;ALE是地址锁存允许控制位,其输出频率是时钟振荡频率的16;,程序存储器允许;,该引脚的接法决定着程序存储器的00000FFFH 这4KB地址范围是在单片机内部还是外部。 图3-1 时钟电路MCS-51系列单片机有四组8位并行I/O口,记作P0、P1、P2和P3。每组I/O口内部都有8位数据输入缓冲器、8位数据输出锁存器及数据输出驱动等电路。当系统没有扩展外部器件时,I/O端口用作双向输入输出口;当系统作外部扩展时,使用P0、P2口作系统地址和数据总线
11、、P3口有第二功能,与MCS-51的内部功能器件配合使用。本设计中各引脚接法如下:P0口外接LED显示屏用于显示;由于P0 口内部无上拉电阻, 为保证按键断开时I/O口线有确定的高电平, 所以在P0 口外部要接上拉限流电阻。P0口接的是段选;P1口的6个端口分别与6个BUTTON按键相连,所以在编程的时候要分别定义;P2口接位选;P3.2接复位键,另一端接地,所以是低电平有效;P3.7与扬声器相连;如图3-1所示的单片机模块里面左上部分的电路构成晶振电路,于产生时钟频率;左半边的中间电路是复位电路,采用了手动复位与自动上电复位结合的形式,复位可靠,电路简单;复位信号是系统内部初始化所需的,当系
12、统加电开始工作时,或工作过程中出现故障无法正常工作时,都需要复位信号使系统能重新开始工作。此设计采用片内RAM空间,故电路里将ALE和引脚悬空处理,将 接地。 4 软件设计 设计基本思路:当运行开关一打开, 6只数码管轮流循环显示16,开始循环跑马,接着就开始判断是否有人抢答,所以就要设计跑马的程序,并在跑马里面就要添加键盘扫描语句。判断是否有人抢答,为了不能重复抢答所以得添加一个标志位flag禁止在他人抢答的基础上再次抢答。基本功能就是在抢答后6个数码管同时显示抢答者的号码,将位选设为全部显示即可。扩展功能就是抢答后在相应的位管显示相应的号码及声音提示,所以只要分别给为选和段选送相应的位码,
13、并连接一个扬声器在有人抢答的时候取反即可。 图9 抢答程序流程图4.1 亮灭变化声音提示设计对应的数码管亮5次抢答人的编号,并发出声音提示。在子函数void display()里面,beep就是扬声器,高电平就能发出声音提示。先送位选,并用for语句实现5次循环,刚开始段选为0,即灭,在每一次for语句的循环里面都是实行一灭一亮,所以只要5次。程序如下14void display() P2=weinum; for(c=0;c5;c+) beep=0; P0=0x00; delay(500); beep=1; P0=duannum; delay(500); flag1=1; while(flag
14、1) P2=weinum; P0=duannum; delay(10); 4.2 抢答按键电路及复位按键电路设计按键是一个机械开关,键的按下和放开是利用机械触点的闭合和断开来实现的。由于机械触点的弹性作用,一个按键开关在闭合及断开瞬间均有一连串的抖动,抖动的时间长短由按键的机械特性决定,一般为510ms。为了确保按键动作只确认一次,必须消除抖动的影响。 在本设计中,定义了子函数scan()进行键盘扫描,并对K1到K6的抢答按键都进行了消抖和锁存编程,那个键按下就赋值对应的按键数,避免受其他按键按下的影响,其实就相当于锁存起的功能,部分程序如下:if(K1=0) delay(10); if(K1
15、=0) while(K1); num=0; flag=0; 复位按键就只有K0,复位的目的就是将前面运行的结果清零,并从头开始跑马,所以要进行复位键是否按下的判断,如果按下,就显示抢答的号码。在按键扫描的时候要进行判断,哪个键先按下,哪个优先级就最高,避免显示多人同时抢答。所以在设计的时候就要设置一个抢答标志位flag,一开始跑马的时候flag=1表示可以开始抢答,而当有抢答键按下的时候就flag=0关掉开始抢答标志,使得按其他5个抢答键系统都不会响应。外部中断0控制复位,定义的num是为了防止其他按键的影响,扫描按键程序就相当于一个锁存器,谁按下就把对应的数字锁存起来,除非有复位键按下使系统
16、又可以重新开始抢答。5 功能调试及结果分析(1) 调试方法:利用Keil软件和proteus软件分别编写程序和设计电路并运行。(2)调试结果:通过仿真调试和改进实现了跑马,抢答,复位的功能,改变延时的参数,使得数码管显示和跑马有序,延迟的时间越小,其送位选的速度就越快。(3)结果分析:经过调节及更改程序里面的延迟函数参数,使得数码管的显示更加有序,并达到了设计的标准。不过抢答器的按键有时候不是很灵敏,这主要是与程序里面的延时函数有关,当运行延时程序时,按键不能检测,所以应尽量减小延时。 (4)调试现象基本要求:当电源开始键按下的时候,抢答器就开始从16跑马,当K3按下的时候,6位数码管全显示3
17、。若有人再抢答系统也不会给予响应,直到复位键按下。 扩展要求:当K5按下的时候,第五位数码管就开始闪烁,先灭后亮,最后停在5。若有人再抢答系统也不会给予响应,直到复位键按下,又开始下一轮的跑马抢答。 图5-0 proteus 电路连接6硬件仿真使用普中科技单片机试验仪2.2进行仿真,P0(JP10)控制数码管的段选(JP12),P2控制数码管的位选(JP16),P1.0P1.5接留个独立按键,P3.7控制蜂鸣器,实验电路图如图5-0,连接图如图6-0所示。 图6-0 实验连接图 实验现象和软件仿真一样,见附录的视频。7 设计总结7.1该系统的优点(1)使用简单的元器件,简易的程序就可以实现抢答
18、,声音提示及复位的功能。(2)使用子函数使得主程序更加明了简洁。由于程序里多次要进行按键扫描,判断是否有人抢答,而按键扫描又要消抖,又有6个,语句比较长,所以调用子函数显得很有必要。(3)只需要通过允许抢答标志位的设定可以使抢答器实现有一人抢答后,系统不再响应他人的抢答。7.2该系统的缺点(1)由于循环语句程序中的延时的使用,导致抢答按键显示电路在抢答的时候,会有延时效应,导致抢答键一按下,不能立马显示有人抢答。虽然尽量减小和减少延时可以使得抢答按键更加灵敏,但是在循环送数显示的时候,还是要设定一个合适的值,使得闪烁显示和跑马能够逐一显示,不然设置小了,跑马就会更快。(2)中断只能在抢答结束,
19、按下复位键才复位,不是很实用,没有做到随时按下随时复位。8设计心得 本设计在深入理解单片机原理的基础理论上,主要设计了单片机实现各个功能的模块,最终实现了抢答器的功能。在这次课程设计中,运用了以前所学的专业知识,更加巩固了知识和对理论有了更深的理解,在设计程序之前,要有一个较为清晰的思路和程序流程图,不能妄想一次就做好整个程序,而要一个一个模块的去实现功能,最后经过反复的修改,整合成整个程序。在设计过程中,掌握了分析单片机应用系统,调试简单C51程序以及撰写设计报告的能力提高了发现问题、分析问题和解决问题的能力,做到将所学的理论知识运用到实际生活中。程序编写的过程其实就是不断修正的过程,编出来
20、的东西有时候不一定能实现最终的功能,都要通过修改运行才能看到最终结果。附录程序:#include#define uchar unsigned char#define uint unsigned intuchar duan=0x06,0x5b,0x4f,0x66,0x6d,0x7d; /数字16 uchar wei=0xfe,0xfd,0xfb,0xf7,0xef,0xdf; /位选sbit k1=P10; /定义按键K1K6sbit k2=P11;sbit k3=P12;sbit k4=P13;sbit k5=P14;sbit k6=P15;sbit beep=P37; /蜂鸣器位定义uint i,j,num,a,b,c,k;uchar flag=1,flag1=1; void delay(uint z) /延时函数 uint x,y; for(x=z;x0;x-) for(y=110;y0;y-);void scan()/键盘扫描;送抢答号,不允许再次抢答 if(k1=0) delay(30); if(k1=0) while(k1); num=0;flag=0; if(k2=0) delay(30); if(k2=0) wh
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 消防员证考试题库及答案
- 考点解析-苏科版八年级物理下册《力与运动》专题攻克试卷(含答案详解版)
- 考点攻克人教版八年级上册物理机械运动《运动的快慢》专项训练试题(含答案解析)
- 西乡中学模拟考试题目及答案
- 2025-2026学年度上海市六年级上册9月考数学试题 参考答案
- 《生物化学检验》考试题库及答案
- 2025零售药店医保培训试题及答案
- 香港事业单位招聘考试综合类职业能力倾向测验真题模拟试卷
- 2025年广东省事业单位招聘考试综合类面试真题模拟试卷
- 2025年公务员与事业单位类面试真题模拟与模拟试题集
- 眼耳鼻喉手术麻醉
- DB32T 4494-2023 房屋白蚁灭治技术规程
- 10千伏线路故障巡视培训
- 三年级语文上册 《阅读理解》专项练习题 (含答案)(5)(部编版)
- 12S4消防工程标准图集
- GB/T 18233.4-2024信息技术用户建筑群通用布缆第4部分:住宅
- DB12T 496-2013 保安从业单位信用资质等级评估规范
- 江姐-绣红旗-红梅赞
- JTT 854-2013 公路桥梁球型支座规格系列
- 30道计量员岗位常见面试问题含HR问题考察点及参考回答
- 《狗之歌》课件(湖北省县级优课)
评论
0/150
提交评论