




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子系统设计与工程实践期末实践数字抢答器学院:_专业:_班级:_姓名:_学号:_年 月 日基于AW60十秒倒计时抢答器的设计摘要:本设计是以飞思卡尔公司的AW60HCS08单片机为核心设计的四路抢答器。本抢答器能实现四人抢答、倒计时10秒后就不能抢答、数码管显示抢答成功的按键及倒计时,在抢答成功和十秒倒计时结束时报警等功能。同时该抢答器是基于单片机设计出来的,因此很容易对抢答器的路数进行扩展,同时又避免了由门电路组合的数字抢答器随着路数的增加线路数目成倍增加的问题。与门电路搭建的抢答器相比,该抢答器不仅在结构上显得简单,而且在费用方面也略显优势。Abstract: The Freescale&
2、#39;s AW60HCS08 microcontroller is used as the core design of four way responder. The responder can achieve four vies to answer first, the countdown after 10 seconds cannot succeed in digital tube display vies to answer first vies to answer first, keys and the countdown, at the end of the vies to an
3、swer first success and ten seconds countdown alarm. The responder is based on single-chip design, so it is easy to extend ways of the responder, and the num of lines is increasing exponentially with the number increase of ways of the digital gate circuit. Compared to the responder builded by the gat
4、e circuit , the responder is not only simple in the structure, but also slightly better in terms of costs. 关键字:aw60、4人抢答、倒计时10s、数码管显示Key words: aw60, four people vies to answer first, the countdown 10 s, digital tube display1 设计要求 具体要求(1)提供4路抢答键,编号分别为1、2、3、4,提供“开始”键,编号为“*”。(2)系统复位后,数码管显示“0000”并闪烁;按下
5、“开始”键后,各抢答键才有效,数码管停止闪烁,并进行10s倒计时,计时时间在后两位数码管显示;若在10s内没有人抢答,则在计数为0后,显示“0000”并闪烁,直至“开始”键再次按下,重新计数;若在10s内有人按下抢答键,则停止计数,后两位数码管显示当前计数时间,第1位数码管显示抢答键编号,数码管闪烁,直至“开始”键再次按下,重新计数。(3)每次按键或计时为0后通过蜂鸣器发出提示音。系统功能 该系统能够按下开始键后数码管开始10s倒计时,当倒计时为零若没有抢答键按下则数码管显示0000,并闪烁蜂鸣器报警。若有一个或多个抢答键在倒计时结束前按下,则数码管第一位显示按下最先按下抢答键的编号,后两位数
6、码管显示按下时的时间,其他显示0且闪烁蜂鸣器报警。当开始键再次按下的时候,系统恢复十秒倒计时状态,第一位数码管清零。2 总体设计2.1 系统工作原理以下为系统的工作原理流程图(见图2),其中开始键为*键,1234抢答键为键盘控制,由中断中的程序控制各种状态的实现,其工作原理为:接通电源后,抢答器数码管显示“0000”并闪烁,直到主持人按下开始键,抢答器数码管变为“0010”,同时抢答器的计时器开始进行10s的倒计时;选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、时间显示、数码管闪烁、蜂鸣器提示。若在正常的十秒抢答时间中没有人按下抢答键,则倒计时一直进行到零,数码管显示000
7、0并闪烁,同时蜂鸣器报警,当主持人再次按下开始键时数码管恢复到0010开始新一轮抢答倒计时。 图1、系统工作原理流程图3 硬件设计3.1 硬件组成本系统是以飞思卡尔公司的AW60HCS08单片机为核心设计的四路抢答器。其主要的硬件部分由AW60的最小系统、电源模块、时钟模块、键盘模块以及蜂鸣器等所组成(见图2)。其中电源模块为其他各个模块供电;LED模块为显示模块,包括显示10s倒计时,抢答者编号,抢答时间,数码管闪烁;时钟模块为单片机工作提供时钟,键盘模块提供抢答键1234,开始(复位)键,用来检测是否有键发生,从而产生键盘中断交由单片机处理,单片机在对按键进行分析后控制相应的数码管显示以及
8、控制蜂鸣器报警。图2、模块电路组成3.2 单片机核心模块本设计采用AW60HCS08单片机,S08是2004年左右推出8位MCU,资源丰富,功耗低,性价比很高,是08系列MCU发展趋势,其性能与许多16位MCU相当。MC9S08AW60是低成本、高性能8位微处理器S08家族中的成员,本次课程设计就是以该芯片为基础,来进行嵌入式的设计。该单片机的主要性能:(1)最高达40MHz的CPU工作频率和20Hz的内部总线工作频率表;时钟源选项包括晶振、谐振器、外部时钟或内部产生的时钟。(2)相比HC08 CPU指令集,S08 CPU增加了BGND指令。(3)单线后台调试模式接口;增强的断点能力,允许单一
9、的断点设置在线调试(在片内调试的模块增加了多于两个的断点)。(4)内含32个中断/复位源;内含2KB的片内RAM;内含60KB的片内在线可编程Flash存储器,带有块保护和安全选项。(5)可选的计算机正常操作(COP)复位;低电压检测和复位或中断;非法操作码检测与复位;非法地址检测与复位。(6)ADC:多达16个通道,10位A/D转换器与自动比较功能;两个串行通信接口SCI模块与可选的13位中断;一个串行外设接口SPI模块;集成电路互连总线I2C模块运作高达100kbps的最高总线负载;8引脚键盘中断KBI模块。(7)定时器:1个2通道和1个6通道16位定时器/脉冲宽度调制器模板。具有输入、捕
10、捉、输出比较、脉宽调制功能。图3、最小系统图3.3 显示和控制电路本系统采用数码管显示抢答者编号和剩余时间,钜阵键盘用于抢答器的复位和抢答者的抢答。数码管显示原理简单,编程比较容易实现。矩阵键盘可以实现多种控制,便于扩展功能,同时又可节省大量的IO口,供单片机的其它功能应用。图4、LED模块图5、键盘模块3.4电源模块电路中需要大量引脚用来提供足够的电流容量。所有的电源引脚必须有适当的旁路电容,来抑制高频噪音。一些VDD和VSS引脚仅用于噪音旁路。图中的电源电路显示了一个典型的电源连接图。电源电路部分的电容构成滤波电路,可以改善系统的电磁兼容性,降低电源波动对系统的影响,增强电路工作稳定性。为
11、标识系统通电与否,可以增加一个电源指示灯。注意那些仅连接电容的引脚,不要将它们直接连接电源电压。图6、电源模块 3.5蜂鸣器在单片机应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示或报警,比如按键按下、开始工作、工作结束或是故障等等由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O口是无法直接驱动的,所以要利用放大电路来驱动,一般使用三极管来放大电流就可以了。图7、蜂鸣器模块3.6长距离传输模块3.6.1限制数据长距离传输的因素所谓“长线”,即指那些必须考虑传输延迟的连接线,并且长线的“长”是相对的,对于微秒级的数字电路来说,1米左右的连线要求当长线来看待;对10毫秒级的电
12、路,几米长的连线才当作长线处理。信号在长线中传输时,不仅存在传输延迟,而且会使信号波形严重畸变,并引入一些有害的干扰。采用长线传输后,一般总要发生如下问题:1、外界电磁场通过传输线对信号产生的干扰由于发送和接收设备之间存在的公共地线,因此各种干扰极易通过公共地线叠加在信号上,特别是现场的电磁干扰通过公共底线能很容易的导入接受设备。2、传输线分布电容数据的传输实际上是对传输线分布电容充电和放电的过程,而充电的上升时间和放电的下降时间有所不同,会引起数据接受错误。3、传输线存在的地的电位差传输线间连接的公共地线,由于发送设备和接受设备往往使用各自的电源设备。是二者的电位可能不一致,从而信号地线中会
13、产生电流。由于传输线电阻的存在,使地线两端产生电压降,即电位差。当发送设备想接收设备发送数据时,接受设备得到的电压信号与没有地电位差时得到的不同。当又用信号较小、而地电位差较大时,接受设备无法得到准确的信号,数据传输将无法进行。4、传输线的负载阻抗与传输特性阻抗不匹配当传输的负载阻抗与传输特性阻抗不匹配时,会在线路中产生多次发射,致使信号产生畸变,数据传输出现错误。3.6.2长距离传输抗干扰措施空间干扰包括静电场、高频电磁场以及磁场引起的干扰主要的解决方法:1、空间隔离:使敏感设备或信号线远离干扰,如大型动力设备及大变压器等。空间隔离的方法主要有变压器隔离、光电隔离、浮地屏蔽三种方式。2、屏蔽
14、:对敏感电路加屏蔽盒或对信号加屏蔽层,注意屏蔽层不能随意接地, 必要时屏蔽层外还要有绝缘层。屏蔽主要用来解决电磁干扰,将电力线或磁力线的影响限定在某个范围之内或阻止他们进入某个范围。3、电气布线:合理的选择信号线,并在实际施工中正确的敷设信号线来抑制干扰。3.6.3长线传输模块为了解决长线传输的问题,特别在电路中加入了长线传输模块。本模块是以NS公司的单片集成稳压器为核心,其能满足输入电压在740V之内,均能输出恒定的5V电压和3A电流,能够很好的解决百米范围内的长线传输问题。图8、长线传输模块4 程序设计4.1 主程序设计程序开始后初始化芯片,模块,变量,然后进行主循环,开始执行主程序,计时
15、器开始10s倒数计时数码管显示状态为0010,执行过程中还可检测是否有抢答键,如果按下则计时停止后两位数码管显示时间,第一位数码管显示抢答编号,其他数码管均为零,蜂鸣器报警,再次按下开始复位键时,数码管显示0010进行倒计时。如果没有抢答键按下,则倒计时为零时数码管显示0000,并开始闪烁,蜂鸣器报警。程序框图如下:图74.2 子程序设计中断函数设计程序开始后初始化变量,然后关中断,开始键值检测及判断,若开始键(*键)被按下,则LED被重新赋值,同时计数器开始递减计数,每秒减1;若在计数器数值减为0之前有1234被按下,则LED记录显示最先按下抢答者的编号,同时计数器保持当前数值不再递减并进行
16、闪烁。若计时器10s倒数计时结束后仍未有键按下,则数码管显示状态为0000并闪烁,同时蜂鸣器报警,直到再次按下开始键时,数码管显示0010进行倒计时。中断函数流程图:图8、中断函数流程图附录一:电路实物照片图9、在开始键未按下时显示0000图10、LED显示抢答者编号及按下时间附录二:程序调试图11、程序调试图12、程序调试附录三:电路原理图图13、系统整图附录四:主要程序主函数程序:/-*/工 程 名: timer */硬件连接:(1)PTD.0接指示灯 */ (2)MCU的串口与PC方的串口相连 */程序描述: */ (1)TPM1溢出中断,数码管显示分秒信息。/目 的: 学习定时器基本功
17、能 */说 明: 无 */-苏州大学飞思卡尔嵌入式系统研发中心2011年-*/总头文件#include "Includes.h"void main(void) /1 主程序使用的变量定义 /uint8 start=1; /2 关总中断 DisableInterrupt(); /禁止总中断 /3 芯片初始化 MCUInit(); /芯片初始化 /4 模块初始化 Buzzer_DD=0xff; LEDdata_D=0xff; TPMinit(TPM_NUM_1); /定时器1初始化 LEDinit(); /数码管初始化 KBInit(); /键盘初始化 /5 内存初始化 /6
18、开放中断 EnableKBint(); /开键盘中断 EnabletimerInt(TPM_NUM_1); /开放定时器1溢出中断 EnableInterrupt(); /开放总中断 LEDshow(ledbuf); /7系统复位后,数码管显示“0000 ”并闪烁;按下“开始”键后,各抢答键才有效 /不断循环闪烁0000直到开始键(*键)被按下,跳出循环后开始计时 do LEDdata=0xc0; LEDcs1=0x03; LEDcs2=0x0c; Delay(10); /延时使数码管显示闪烁 LEDdata=0xff;Delay(1); LEDdata=0xc0; while(start=0
19、); /7 主循环 while (1) LEDshow(ledbuf);/正常显示计数器当前计数的值 中断函数程序:/-*/ 文件名: isr.c */ 说 明: 中断处理函数文件 */-*/头文件#include "isr.h"/此处为用户新定义中断处理函数的存放处/-*/函数名: isrKeyBoard */功 能: 扫描键盘,向串口发送键值和定义值 */参 数: 无 */返 回: 无 */说 明: 调用了KBScanN、SCISend1、KBInit函数 */-*interrupt void isrKeyBoard(void) uint8 value,KeyDef;
20、uint16 i; for(i=0; i<1000; i+); DisableInterrupt(); /关总中断 DisableKBint(); /屏蔽键盘中断 value = KBScanN(10); /扫描键值,存于value中 if(value!=0xFF) KeyDef=KBDef(value); if(KeyDef='*') flag=0; /键值按下标志位 start=1; /启动减数 Buzzer=0; /关闭蜂鸣器 /对数码管重新回到计时初值 ledbuf0='0' ledbuf1='0' ledbuf2='1
21、39; ledbuf3='0' num=11; if(KeyDef!='*'&&num>0) start=0; /用flag来对数据进行锁存 if(flag=0) ledbuf0=KeyDef; flag=1; KBInit(); /键盘初始化键盘中断 EnableKBint(); /开放键盘中断 EnableInterrupt() ; /开总中断/-*/函数名: isrT1Out */功能: 定时器1溢出中断处理函数,以秒为最小单位计时, */并清定时器1溢出标志位 */参 数: 无 */返 回: 无 */说 明: 无 */-*inter
22、rupt void isrT1Out(void) /溢出时间0.5s uint8 temp; DisableInterrupt(); /禁止总中断 if(start=1) /数码管显示数值每隔1s减1 if(num!=0)num-; else num=0; /判断数码管状态是否减到0,若没有则数码管减1显示 if(num!=0) ledbuf2='0' ledbuf3=num-1+'0' else /数码管则显示“0000”并闪烁 LEDdata=0xc0; LEDcs1=0x03; LEDcs2=0x0c; Delay(7); /延时使数码管显示闪烁 LEDd
23、ata=0xff; Delay(7); LEDdata=0xc0; /实现蜂鸣器的报警鸣叫 Buzzer=1; Delay(30); if(start=0) /数码管则显示“0000”并闪烁 if(num>0) /如果在10s内有键按下,则LED显示抢答者编号以及当前时间,并闪烁显示 LEDshow(ledbuf); LEDcs1=0x03; LEDcs2=0x0c; Delay(3); /延时使数码管显示闪烁 LEDdata=0xff;Delay(3); LEDshow(ledbuf); if(num=0) /如果在10s内没有键按下,则LED显示0000并闪烁显示 LEDdata=0xc0; LEDcs1=0x03; LEDcs2=0x0c; Delay(3); /延时使数码管显示闪烁 LEDdata=0xff;Delay(3); LEDdata=0xc0; TPM_MODH(1) = 0x7a; TPM_MODL(1) = 0x12; /清定时器1溢出标志位 temp = TPM_CSTR(1); /读取定时器1状态和控制寄存器TPM1SC TPM_CSTR(1) &= (TPM1SC_TOF_MASK); /向定时器溢出标志位TOF写0 EnableInterrupt()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 品牌管理与推广操作手册
- 商家自行配送怎么查物流
- 施工建筑设计说明
- 企业员工内训方案
- 电子商务平台运营模式创新研究
- 医学影像学设备操作与维护指南
- 育婴师复习测试附答案(一)
- 储能项目融资方式及案例交流
- 中级养老护理复习测试卷附答案(一)
- 三农村社区发展计划实施方案
- 公司上下级管理制度
- 全国各气象台站区站号及经纬度
- 危险废物贮存场所管理规定
- 全国优质课一等奖职业学校教师信息化大赛建筑类《三面正投影图》说课课件
- 秦汉时期建筑
- 东成28电锤使用说明书
- 六年级1班语文老师家长会课件
- 哲学与人生课件
- APIC 基于风险的数据完整性管理实践指南-2019(中英文对照版)
- 港澳台专题教育课件
- 环县声环境功能区划技术报告(2018-2022)
评论
0/150
提交评论