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