基于AW60十秒倒计时抢答器的设计Word下载.docx

上传人:b****6 文档编号:19687328 上传时间:2023-01-08 格式:DOCX 页数:21 大小:371.91KB
下载 相关 举报
基于AW60十秒倒计时抢答器的设计Word下载.docx_第1页
第1页 / 共21页
基于AW60十秒倒计时抢答器的设计Word下载.docx_第2页
第2页 / 共21页
基于AW60十秒倒计时抢答器的设计Word下载.docx_第3页
第3页 / 共21页
基于AW60十秒倒计时抢答器的设计Word下载.docx_第4页
第4页 / 共21页
基于AW60十秒倒计时抢答器的设计Word下载.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

基于AW60十秒倒计时抢答器的设计Word下载.docx

《基于AW60十秒倒计时抢答器的设计Word下载.docx》由会员分享,可在线阅读,更多相关《基于AW60十秒倒计时抢答器的设计Word下载.docx(21页珍藏版)》请在冰豆网上搜索。

基于AW60十秒倒计时抢答器的设计Word下载.docx

选手在定时时间内抢答时,抢答器完成:

优先判断、编号锁存、编号显示、时间显示、数码管闪烁、蜂鸣器提示。

挡在正常的十秒抢答时间中没有人按下抢答键,则倒计时一直进行到零,数码管显示0000,蜂鸣器报警,数码管闪烁,当主持人再次按下开始键时数码管恢复到0010开始新一轮抢答倒计时。

3硬件设计

3.1硬件组成

本设计实验硬件部分包括按键模块、电源模块、LED模块、蜂鸣器模块

Led模块为显示模块,包括显示10s倒计时,抢答编号,抢答时间,数码管闪烁。

蜂鸣器模块提供当有抢答或倒计时到0时的报警功能。

键盘模块提供抢答键1234,开始(复位)键。

电源模块提供电源。

3.2单片机核心模块

本设计采用AW60单片机,S08是2004年左右推出8位MCU,资源丰富,功耗低,性价比很高,是08系列MCU发展趋势,其性能与许多16位MCU相当。

MC9S08AW60是低成本、高性能8位微处理器S08家族中的成员,本次课程设计就是以该芯片为基础,来进行嵌入式的设计。

该单片机的主要性能:

(1)最高达40MHz的CPU工作频率和20Hz的内部总线工作频率表;

时钟源选项包括晶振、谐振器、外部时钟或内部产生的时钟。

(2)相比HC08CPU指令集,S08CPU增加了BGND指令。

(3)单线后台调试模式接口;

增强的断点能力,允许单一的断点设置在线调试(在片内调试的模块增加了多于两个的断点)。

(4)内含32个中断/复位源;

内含2KB的片内RAM;

内含60KB的片内在线可编程Flash存储器,带有块保护和安全选项。

(5)可选的计算机正常操作(COP)复位;

低电压检测和复位或中断;

非法操作码检测与复位;

非法地址检测与复位。

(6)ADC:

多达16个通道,10位A/D转换器与自动比较功能;

两个串行通信接口SCI模块与可选的13位中断;

一个串行外设接口SPI模块;

集成电路互连总线I2C模块运作高达100kbps的最高总线负载;

8引脚键盘中断KBI模块。

(7)Timers:

1个2通道和1个6通道16位定时器/脉冲宽度调制器模板。

具有输入、捕捉、输出比较、脉宽调制功能。

3.3显示和控制电路

本系统采用数码管显示抢答位和剩余时间,钜阵键盘用于抢答器开始复位和的抢答工作。

数码管显示原理简单,编程比较容易实现。

矩阵键盘可以实现多种控制,便于扩展功能,同时又可节省大量的IO口,供单片机的其它功能应用。

3.4电源模块

电路中需要大量引脚用来提供足够的电流容量。

所有的电源引脚必须有适当的旁路电容,来抑制高频噪音。

一些VDD和VSS引脚仅用于噪音旁路。

图中的电源电路显示了一个典型的电源连接图。

电源电路部分的电容构成滤波电路,可以改善系统的电磁兼容性,降低电源波动对系统的影响,增强电路工作稳定性。

为标识系统通电与否,可以增加一个电源指示灯。

注意那些仅连接电容的引脚,不要将它们直接连接电源电压

3.5蜂鸣器模块

在单片机应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣

器来做提示或报警,比如按键按下、开始工作、工作结束或是故障等等由于蜂鸣器的工作电流一般比较大,以致于单片机的I/O口是无法直接驱动的,所以要利用放大电路来驱动,一般使用三极管来放大电流就可以了

3.6长距离传输模块

限制数据长距离传输的因素

远距离,几十公里几百公里的数字信号传输,可采用单用调制解调器的调频、调相或调幅的传输设备来实现,并可利用已有的电话线等作为传输线。

而传输距离只有几百米或几十公里时,就不需要调制解调器的传输模式,耳壳采用数字信号的直接传输方式,是传输速度、误码率等性能优于采用调制解调器的传输方式。

尤其是近距离点对多点的数据传输,采用数字信号直接传输的方法更具优势。

1.外界电磁场通过传输线对信号产生的干扰

由于发送和接收设备之间存在的公共地线,因此各种干扰极易通过公共地线叠加在信号上,特别是现场的电磁干扰通过公共底线能很容易的导入接受设备。

2.传输线分布电容

数据的传输实际上是对传输线分布电容充电和放电的过程,而充电的上升时间和放电的下降时间有所不同,会引起数据接受错误。

3.传输线存在的地的电位差

传输线间连接的公共地线,由于发送设备和接受设备往往使用各自的电源设备。

是二者的电位可能不一致,从而信号地线中会产生电流。

由于传输线电阻的此女在,使底线两端产生电压降,即电位差。

当发送设备想接收设备发送数据时,接受设备得到的电压信号与没有地电位差时得到的不同。

当又用信号较小、而地电位差较大时,接受设备无法得到准确的信号,数据传输将无法进行。

4.传输线的负载阻抗与传输特性阻抗不匹配

当传输的负载阻抗与传输特性阻抗不匹配时,会在线路中产生多次发射,致使信号产生畸变,数据传输出现错误

5.传输线的分布电阻

6.传输线间的干扰

长距离传输按键模块

远程控制电路

通过一个共射放大电路,基极输入一个高电平,三极管导通,集电极接地,输出是低电平。

(可能会有一个0.3V左右的电压可以忽略看做一个低电平。

)基极输入低电平,三极管关断,集电极电压为电源电压,输出是高电平。

长距离传输压降模块

稳压电路

利用了LM317三端可调输出正电压稳压器。

来调节输入的电压使输出电压达到单片机要求的5V电压。

在控制电路与稳压电路之间加了一个电阻充当电线的阻抗。

4程序设计

4.1主程序设计

程序开始后初始化芯片,模块,变量,然后进行主循环,开始执行主程序,计时器开始10s倒数计时数码管显示状态为0010,执行过程中还可检测是否有抢答键,如果按下则计时停止后两位数码管显示时间,第一位数码管显示抢答编号,其他数码管均为零,蜂鸣器报警,延时2s,再次按下开始复位键时,数码管显示0010进行倒计时。

如果没有抢答键按下,则倒计时为零时数码管显示0000,并开始闪烁,蜂鸣器报警延时2s。

4.2子程序设计

附录一:

电路实物照片

附录二:

模拟电路仿真图

附录三:

电路原理图

附录四:

主要程序

//-------------------------------------------------------------------------*

//工程名:

timer*

//硬件连接:

(1)PTD.0接指示灯*

//

(2)MCU的串口与PC方的串口相连*

//程序描述:

*

//

(1)TPM1溢出中断,数码管显示分秒信息。

//目的:

学习定时器基本功能*

//说明:

无*

//----------------苏州大学飞思卡尔嵌入式系统研发中心2011年-----------------*

//总头文件

#include"

Includes.h"

voidmain(void)

{

//1主程序使用的变量定义

uint32mRuncount=0;

//运行计数器

ledbuf[0]='

0'

;

ledbuf[1]='

ledbuf[2]='

1'

ledbuf[3]='

//2关总中断

DisableInterrupt();

//禁止总中断

//3芯片初始化

MCUInit();

//4模块初始化

Light_Init(Light_Run_PORT,Light_Run,Light_OFF);

//指示灯初始化

TPMinit(TPM_NUM_1);

//定时器1初始化

//SCIInit(SCI_NUM_1,SYSTEM_CLOCK,9600);

//串行口初始化

LEDinit();

KBInit();

//键盘初始化

GPIO_Init(PORT_C,6,1,0);

//GPIO初始化

//5内存初始化

//6开放中断

EnabletimerInt(TPM_NUM_1);

//开放定时器1溢出中断

EnableInterrupt();

//开放总中断

EnableKBint();

//开键盘中断

//7主循环

while

(1)

{

//1主循环计数到一定的值,使小灯的亮、暗状态切换

mRuncount++;

if(mRuncount>

=1000)

{

mRuncount=0;

}

//2主循环执行的任务

LEDshow(ledbuf);

}

//文件名:

isr.c*

//说明:

中断处理函数文件*

//头文件

isr.h"

uint8KeyDef;

uint8aa=0;

//函数名:

isrKeyBoard*

//功能:

扫描键盘,向串口发送键值和定义值*

//参数:

//返回:

调用了KBScanN、SCISend1、KBInit函数*

interruptvoidisrKeyBoard(void)

{

uint8value;

uint16i;

for(i=0;

i<

1000;

i++);

//关总中断

DisableKBint();

//屏蔽键盘中断

value=KBScanN(10);

//扫描键值,存于value中

if(value!

=0xFF)

KeyDef=KBDef(value);

if(KeyDef=='

*'

aa=0;

jishu=0;

k=0;

}

else

if(aa==0)

||KeyDef=='

2'

3'

4'

aa=1;

k=1;

x=ledbuf[2];

y=ledbuf[3];

z=KeyDef;

b=1;

GPIO_Set(PORT_C,6,1);

Delay

(2);

GPIO_Set(PORT_C,6,0);

//键盘初始化键盘中断

//开放键盘中断

EnableInterrupt();

//开总中断

//此处为用户新定义中断处理函数的存放处

isrT1Out*

定时器1溢出中断处理函数,以秒为最小单位计时,并清定时器1溢出标志位*

调用SecAdd1函数*

interruptvoidisrT1Out(void)//溢出时间1s

uint8temp;

if(k==0)

if(jishu==0)

if((ledbuf[3]=='

)&

(ledbuf[2]=='

))

jishu=1;

a=1;

else

ledbuf[3]--;

if(ledbuf[3]<

'

ledbuf[2]--;

9'

if(a==1)

a=0;

ledbuf[0]=10;

ledbuf[1]=10;

ledbuf[2]=10;

ledbuf[3]=10;

if(b==1)

ledbuf[0]=z;

ledbuf[2]=x;

ledbuf[3]=y;

b=0;

temp=TPM_CSTR

(1);

//读取定时器1状态和控制寄存器TPM1SC

TPM_CSTR

(1)&

=~(TPM1SC_TOF_MASK);

//向定时器溢出标志位TOF写0

//开放总中断

//未定义的中断处理函数,本函数不能删除

interruptvoidisrDummy(void)

//中断处理子程序类型定义

typedefvoid(*ISR_func_t)(void);

//中断矢量表,如果需要定义其它中断函数,请修改下表中的相应项目

constISR_func_tISR_vectors[]@0xFFCC=

isrDummy,//时基中断

isrDummy,//IIC中断

isrDummy,//ADC转换中断

isrKeyBoard,//键盘中断

isrDummy,//SCI2发送中断

isrDummy,//SCI2接收中断

isrDummy,//SCI2错误中断

isrDummy,//SCI1发送中断

isrDummy,//SCI1接收中断

isrDummy,//SCI1错误中断

isrDummy,//SPI中断

isrDummy,//TPM2溢出中断

isrDummy,//TPM2通道1输入捕捉/输出比较中断

isrDummy,//TPM2通道0输入捕捉/输出比较中断

isrT1Out,//TPM1溢出中断

isrDummy,//TPM1通道5输入捕捉/输出比较中断

isrDummy,//TPM1通道4输入捕捉/输出比较中断

isrDummy,//TPM1通道3输入捕捉/输出比较中断

isrDummy,//TPM1通道2输入捕捉/输出比较中断

isrDummy,//TPM1通道1输入捕捉/输出比较中断

isrDummy,//TPM1通道0输入捕捉/输出比较中断

isrDummy,//ICG的PLL锁相状态变化中断

isrDummy,//低电压检测中断

isrDummy,//IRQ引脚中断

isrDummy,//SWI指令中断

//RESET是特殊中断,其向量由开发环境直接设置(在本软件系统的Start08.o文件中)

};

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1