1、 应用科学学院电子系统课程设计姓 名: 周康学 号: 24 号专业班级: 嵌入式 10指导教师: 朱水金设计题目: 八路抢答器完成时间: 2013 年 07 月 01 日 功能(20%) 实训(60%) 设计报告(20%) 总评简易难度(10%)控制方式(10%)原理图(10%)装配图(10%)元器件焊接(10%)自控质量(10%)功能实现(10%)质量评估(10%)格式(5%)内容(15%)指导教师签名:电子系统课程设计- 1 -摘 要数字抢答器由主体电路与扩展电路组成。用控制电路和主持人开关启动报警电路,以上两部分组成主体电路。通过定时电路和译码电路将秒脉冲产生的信号在显示器上输出实现计时
2、功能,构成扩展电路。经过布线、焊接、调试等工作后数字抢答器成形。单片机体积小价格低,应用方便,稳定可靠。单片机系统的硬件结构给予了抢答系统“身躯” ,而单片机的应用程序赋予了其新的“生命” ,使其在传统的抢答器面前具有电路简单、成本低、运行可靠等特色。关键字: 抢答电路 报警电路 倒计时电路电子系统课程设计2目录第一章 八路抢答器的概 述及制作要求 .- 4 -1.1 数字抢 答器的概述 - 4-1.2 设计任务 与要求 .- 4-第二章 单片机 芯片的选择及抢 答器方案 .- 5-2.1 单片机 芯片的 选择 - 5-2.2 模块 性能 分析 - 7-第三章 硬件电路 设计 - 8-3.1
3、总体 设计 .- 8-3.2 外部振荡电 路 .- 9-3.3 复位电路的 设计 .- 9-3.4 显示电路的设计 - 10-3.5 按钮输入电路的设计 - 10-3.6 报警电路的设计 - 11-第四章 系统软 件设计 .- 12-4.1 抢答器流 程图 .- 12-4.2 抢答器程序 - 13-第五章 产品的 样品 - 25-4.1 实物图 - 25-4.2 PCB版图 .- 25-4.1 实物焊接图 .- 26-结束语 - 27-参考文献 - 28-电子系统课程设计3引言:单片机的发展史单片机诞生于 20 世纪 70 年代末,经历了 SCM、MCU、SoC 三大阶段。 1.SCM 即单片
4、微型计算机(Single Chip Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。 “创新模式”获得成功,奠定了 SCM 与通用计算机完全不同的发展道路。在开创嵌式系统独立发展道路上,Intel 公司功不可没。 2.MCU 即微控制器(Micro Controller Unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展 MCU 的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel 逐渐淡出 MCU 的发展也有其客观因素。在
5、发展 MCU 方面,最著名的厂家当数 Philips 公司。3.单片机是嵌入式系统的独立发展之路,向 MCU 阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了 SoC 化趋势。随着微电子技术、IC 设计、EDA 工具的发展,基于 SoC 的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。 单片机的发展单片机作为微型计算机的一个重要分支,应用面很广,发展很快。自单片机诞生至今,已发展为上百种系列的近千个机种。 电子系统课程设计4第一章 数字抢答器的概述及制作要求1.1 数字抢答器的概述对于抢答器
6、我们大家来说都不陌生,它是用于很多竞赛场合,真正实现先抢先答,让最先抢到题的选手来回答问题。抢答器不仅考验选手的反应速度同时也要求选手具备足够的知识面和一定的勇气。选手们都站在同一个起跑线上,体现了公平公正的原则。1.2 设计任务与要求基本要求:1.给主持人设置一个开关,用来控制系统的重启(编号显示数码管重置初始时间)和抢答器的倒计时开始。2.抢答器显示和倒计时的功能。抢答开始后,若有选手按动抢答器按钮,编号立即锁存,并在 LED 数码上显示选手的编号,同时扬声器给出音响提示。此外,要封锁输入电路,禁止其他选手抢答。发挥部分:1.抢答器具有定时抢答的功能,且一次抢答的时间可以由主持人设定(如
7、20 秒)。当节目主持人启动“开始”键后,要求定时器立即减计时,并用显示器显示。 2.参加选手在设定的时间内抢答,抢答有效,定时器停止工作,显示器上显示选手的编号,并保持到主持人将系统清零为止。3.如果定时抢答的时间已到,却没有选手抢答时,本次抢答无效,系统自动回复到初始倒计时时间,并封锁输入电路,禁止选手超时后抢答。电子系统课程设计5第二章 单片机芯片的选择及抢答器方案2.1 单片机芯片的选择单片机选用的是 Atmel 公司推出的 AT89C52,它是一种低功效、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。使用 Atmel 公司高密度非易失性存储器技术制造,
8、与工业 80C51 产品指令和引脚完全兼容。在单芯片上拥有灵巧的 8位 CPU 和在线系统可编程 Flash,使得 AT89C52 具有以下标准功能:8K 字节Flash,256 字节 RAM,32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。空闲模式下,CPU 停止工作,允许 RAM、定时器/计数器串口、中断继续工作。掉电保护方式下 RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。而且,它还具有一个看门狗(WDT)定时/计数器。如果程序没有正常工作,就会强制
9、整个系统复位,还可以在程序陷入死循环的时候,让单片机复位而不用整个系统断电,从而保护你的硬件电路。T89S52 有 40 个引脚,32 个外部双向输入/输出(I/O)端口,同时内含 2 个外中端口,2 个 16 位可编程定时计数器,2 个全双工串行通信口,片上 Flash 允许程序存储器在系统可编程,亦适于常规编程器。其将通用的微处理器和 Flash 存储器结合在一起,特别是可反复擦写的 Flash 存储器可有效地降低开发成本。单片机管脚说明:电子系统课程设计6AT89C52引脚 功能P3.0 RXD(串行口输入) ,蜂鸣器报警P3.1 TXD(串行口输出) ,警示灯报警P3.2 INT0(外
10、部中断 0 输入),用于倒计时P0.0P0.7 数码管段选P2.0P2.3 数码管位选P1.0P1.7 按钮抢答功能键RST 复位端电子系统课程设计7XTAL1,XTAL2 振荡电路2.2 模块性能分析模块部分主要分为 AT89C52 芯片、独立式键盘、LED 数码管显示部分,下面对这后两部分进行介绍,其中对 LED 七段数码管显示器做详细介绍,并根据实际工作情况采用合适的工作方式。2.2.1 独立式键盘利用 8 个常开按钮开关 S1S8 和 8 只电阻 R1R8 组成抢答器的输入电路。S1S8 为自复式常开按钮开关,分别作为 8 位抢答按钮,与它相连的 8 只电阻为下拉电阻,以保证按钮未按下
11、时,锁存器的输入端为低电平。当程序执行时,按下按键,七段数码管显示器上即显示相应的是哪个组按下抢答。2.2.2 LED 数码管显示译码器的逻辑功能是将每一个输入的二进制代码译成对应的输出高、低电平信号,是编码器的反操作。数码管可以用 TTL 或 CMOS 集成电路直接驱动,所以使用译码器将 BCD 编码译成数码管所需要的驱动信号,以便使数码管用十进制数字显示出 BCD 编码表示的数值。七段数码管的段排列和内部结构如图所示七段数码管的段排列和内部部结构点亮显示器分为静态和动态显示两种方法。所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或是截止。例如,其段数码管的a、b、c、
12、d、e、f、导通,g 截止,则显示 0.这对这种显示方式每一位都要有一个 8位输出口控制,所占硬件较多,一般用于显示位数较少(很少)的场合。当位数较多时,用静态显示所需的 I/O 过多,一般采用动态显示方法。在实际电路设计中,需要先通过仿真软件测试电路以及编译的程序,检查外围电路设计是否合理,软件编译是否正确,以及软件和硬件电路能否正常配合工作,能否准确的实现所设计的功能。如果测试通过,电路仿真没有问题能完全实现功能的话就可以实际的做板子的焊接工作了。在老师的指导下我选择了常用的单片机仿真软件proteus6.9 以及 keil 进行仿真。电子系统课程设计8第三章 硬件电路设计3.1 总体设计
13、根据抢答器的基本功能,可以设计出如下:3.1 总体设计图 3-1 总体设计电子系统课程设计93.2 外部振荡电路的设计图 3-2 外部振荡电路一般选用石英晶体振荡器。此电路在加电大约延迟 10ms 后振荡器起振,在 XTAL2 引脚产生幅度为 3V 左右的正弦波时钟信号 ,其振荡频率为 11.0592HZ。电路中两个电容 C1,C2 的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。 C1,C2 的典型值为 30PF。3.3 复位电路的设计单片机的第 9 脚 RST 为硬件复位端,只要将该端持续 4 个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如
14、图 4 所示:图 3-3 复位电路在方案中使用到了硬件复位和软件复位两种功能,由上面的硬件复位可使寄存器及存储器的值都恢复到初始值,而前面的功能提到了倒计时间需要有记忆功能,该功能实现的前提条件就是不能对单片机进行硬件复位,所以设定了软复位功能。软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址。3.4 显示电路的设计电子系统课程设计10显示电路使用了七段数码管 7SEG-MPX4-CC,属于共阴极的,由高电平点亮。图 3-4 阴极七段数码管3.5 按钮输入电路的设计抢答器的输入按钮使用常开开关:图 3-5 抢答按键这些常开开关组成了抢答按键,硬件电路简
15、单,在程序设计上也不复杂,只要在程序中消除在按键过程中产生的“毛刺”现象就可以了。这里采用最常用的方法即延时法,其的原理为:因为“毛刺”脉冲一般持续时间短,约为几 ms,而按键的时间一般远远大于这个时间,所以当单片机检测到有按键动静后再延时一段时间(这里取电子系统课程设计1110ms)后再判断此电平是否保持原状态,如果是则为有效按键,否则无效。3.6 报警电路的设计这里能利用程序来控制单片机 P3.1 口线反复输出高电平或低电平,即在该口线上产生一定频率的矩形波,接上扬声器就能发出一定频率的声音,再利用延时程序控制“高” “低”电平的持续时间,就能改变输出频率,从而改变音调,使扬声器发出不同的
16、声音。图 3-6 报警电路电子系统课程设计12第四章 系统软件设计4.1 抢答器流程图流程图是使用图形表示算法的思路是一种极好的方法,不论采用何种程序设计方法,程序总体结构确定后,一般以程序流程图的形式对其进行描述。总体框图中的各个子模块或各个子任务也应该结合具体的教学模型和算法画出较详细的程序流程图,供后面编写具体程序和阅读程序使用。流程图是由一些图框和流程线组成的,其中图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。流程图的基本结构为顺序结构,分支结构(又称选择结构) ,循环结构。为便于识别,绘制流程图的习惯做法是:方框表示:要执行的处理(Process
17、)平行四边型表示:代表资料输入(Input) 不规则图形代表资料输出(Output)或报表输出(Print) 菱形表示:决策或判断(例如:If.Then.Else)电子系统课程设计13初始化部分P3.2= =0启动中断,数码管开始计时 20 秒若有选手抢答中断停止,数码管显示选手的标号及选中时间结束开始NYYN图 4-1-1 抢答器主程序流程图4.2 抢答器程序#include #define uint unsigned int #define uchar unsigned char /共阴极数码管编码表 0 - f 显示 unsigned char code table=0x3f,0x06,
18、0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f; /变量定义 sbit BEEP=P31;sbit start_stop = P32; sbit reset = P33; sbit key1 = P10; 电子系统课程设计14sbit key2 = P11; sbit key3 = P12; sbit key4 = P13; sbit key5 = P14; sbit key6 = P15; sbit key7 = P16; sbit key8 = P17; sbit state = P30; bit start_stop_flag = 0; bit key1
19、_flag = 0; bit key2_flag = 0; bit key3_flag = 0; bit key4_flag = 0; bit key5_flag = 0; bit key6_flag = 0; bit key7_flag = 0; bit key8_flag = 0; bit reset_flag = 0; bit action = 0; uchar second = 20; uchar timer0_count = 0; uchar number = 0; uchar number_display = 0; uint flag = 1;/延时函数 void delay(ui
20、nt z) uint x,y; for(x=z;x0;x-) for(y= 120;y0;y-); 电子系统课程设计15 /蜂鸣器发声延时void DelayMS(uint x)uchar t;while(x-)for(t=0;t100;t+);/数码管显示驱动函数 void display(uchar number,uchar second) uchar second_first,second_second; second_first = second / 10; second_second = second % 10; P0 =0x00; P2 = 0xfe; P0 = tablenumb
21、er; delay(2);P0 =0x00; P2 = 0xfd; P0 = 0x40; delay(2);P0 =0x00; P2 = 0xfb; P0 = tablesecond_first; delay(2);P0 =0x00; P2 = 0xf7; P0 = tablesecond_second; delay(2); 电子系统课程设计16P0 =0x00; /蜂鸣器响应按周期 t 发音void Play(uchar t)uchar i;for(i=0;i1;i+)BEEP=BEEP;DelayMS(t);BEEP=0;/开始键扫描函数 void start_stop_keyscan()
22、 if(start_stop = 0) delay(8); if(start_stop = 0) action = 1; TR0 = 1; state = 0; else start_stop_flag = 0; 电子系统课程设计17 /八位抢答键扫描函数 uchar key_scan8() if(key1 = 0) delay(8); if(key1 = 0) number = 1; number_display = number; else key1_flag = 0; number = 0; if(key2 = 0) delay(8); if(key2 = 0) number = 2;
23、number_display = number; 电子系统课程设计18else key2_flag = 0; number = 0; if(key3 = 0) delay(8); if(key3 = 0) number = 3; number_display = number; else key3_flag = 0; number = 0; if(key4 = 0) delay(8); if(key4 = 0) number = 4; number_display = number; 电子系统课程设计19 else key4_flag = 0; number = 0; if(key5 = 0)
24、 delay(8); if(key5 = 0) number = 5; number_display = number; else key5_flag = 0; number = 0; if(key6 = 0) delay(8); if(key6 = 0) number = 6; number_display = number; 电子系统课程设计20 else key6_flag = 0; number = 0; if(key7 = 0) delay(8); if(key7 = 0) number = 7; number_display = number; else key7_flag = 0
25、; number = 0; if(key8 = 0) delay(8); if(key8 = 0) number = 8; number_display = number; 电子系统课程设计21 else key8_flag = 0;number = 0; if(number_display != 0) return 1; else return 0; /复位键扫描函数 void reset_keyscan() if(reset = 0) delay(8); if(reset = 0) number_display = 0; state = 1; else 电子系统课程设计22 reset_f
26、lag = 0; /主函数 void main() uint t;TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA= 1; ET0= 1; TR0=0; while( 1) if(number_display!=0)Play(number_display/2); /蜂鸣器发声start_stop_keyscan(); reset_keyscan(); while(action) while(!key_scan8() display(number_display,second);if(second = 0) second =
27、20;电子系统课程设计23break; TR0 = 0;display(number_display,second); action = 0; break; display(number_display,second); /中断服务函数 void timer0() interrupt 1 uint i;TH0=(65536-50000)/256; TL0=(65536-50000)%256; timer0_count +;if(timer0_count = 20) timer0_count = 0; second -; if(second = 0) Play(2);TR0 = 0; numbe
28、r_display = 0; state = 1; action = 0; 电子系统课程设计24 第五章 产品的样品5.1 实物图电子系统课程设计25图 5-1 产品实物图5.2 PCB 版图电子系统课程设计26图 5-2 PCB 版图5.3 实物焊接图 图 5-3 焊接实物图电子系统课程设计27结束语我在这一次抢答器的设计过程中,很是受益匪浅。通过对自己在大学三年时间里所学的知识的回顾,并充分发挥对所学知识的理解和对毕业设计的思考及书面表达能力,最终完成了。这为自己今后进一步深化学习,积累了一定宝贵的经验。撰写论文的过程也是专业知识的学习过程,它使我运用已有的专业基础知识,对其进行设计,分析
29、和解决一个理论问题或实际问题,把知识转化为能力的实际训练。培养了我运用所学知识解决实际问题的能力。通过这次课程设计我发现,只有理论水平提高了;才能够将课本知识与实践相整合,理论知识服务于教学实践,以增强自己的动手能力。这个实验十分有意义 我获得很深刻的经验。通过这次课程设计,我们知道了理论和实际的距离,也知道了理论和实际想结合的重要性, ,也从中得知了很多书本上无法得知的知识。我们的学习不但要立足于书本,以解决理论和实际教学中的实际问题为目的,还要以实践相结合,理论问题即实践课题,解决问题即课程研究,学生自己就是一个专家,通过自己的手来解决问题比用脑子解决问题更加深刻。学习就应该采取理论与实践结合的方式,理论的问题,也就是实践性的课题。这种做法既有助于完成理论知识的巩固,又有助于带动实践,解决实际问题,加强我们的动手能力和解决问题的能力。电子系统课程设计28参考文献1. 单片机课程设计实例指导,李光飞,北京航天航空大学出版社,20042. 单片机原理及接口技术(第 3 版) ,李朝青,北京航空航天大学出版社,20023. 单片机 C 程序设计及应用实例,胡伟,人民邮电出版社,20034. 单片机系统设计与实例指导,冯育长,西安电子科技大学出版社,20075电子电路及电子器件, 郭培源, 高等教育出版社.,20036数字电子技术. 杨志忠, 高等教育出版社,2002