单片机多路抢答器设计.docx

上传人:管** 文档编号:849989 上传时间:2023-09-13 格式:DOCX 页数:20 大小:506.36KB
下载 相关 举报
单片机多路抢答器设计.docx_第1页
第1页 / 共20页
单片机多路抢答器设计.docx_第2页
第2页 / 共20页
单片机多路抢答器设计.docx_第3页
第3页 / 共20页
单片机多路抢答器设计.docx_第4页
第4页 / 共20页
单片机多路抢答器设计.docx_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、一、方案比较1、 纯数字逻辑电路,基本可以排除方案的,主要缺点是缺乏灵活性,消耗的精力是最大的,发现需要修改,你就发现非常难于修改,除非重新设计,制作。2、 单片机是原材料成本最小的一种方案,更精确,更容易控制,不易出错,可实现功能多,且易实现。综上所述,选择基于单片机的抢答器制作更为合理二、设计的主要任务通过此次设计,预期完成以下主要任务:1. 掌握抢答器的基础知识及原理;2. 掌握 STC89C52 单片机的管脚分配;3. 设计出合理的电路图及相应的汇编程序,同时仿真调试成功;4. 购买元器件完成焊接组装工作,解决调试问题,最后完成多路抢答器的实物制作。三、主要元件介绍(一)、单片机的选择

2、单片机选用的是 Atmel 公司推出的 AT89S52,它是一种低功效、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和引脚完全兼容。在单芯片上拥有灵巧的 8 位 CPU 和在线系统可编程 Flash,使得 AT89S52 具有以下标准功能:8K 字节 Flash,256 字节 RAM,32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。空闲模式下,CPU 停止工作,允许 RAM、定时器

3、/计数器串口、中断继续工作。掉电保护方式下 RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。而且,它还具有一个看门狗(WDT)定时/计数器。如果程序没有正常工作,就会强制整个系统复位,还可以在程序陷入死循环的时候,让单片机复位而不用整个系统断电,从而保护你的硬件电路。T89S52 有 40 个引脚,32 个外部双向输入/输出(I/O)端口,同时内含 2 个外中端口,2 个 16 位可编程定时计数器,2 个全双工串行通信口,片上 Flash 允许程序存储器在系统可编程,亦适于常规编程器。其将通用的微处理器和 Flash 存储器结合在一起,特别是可反复擦写的 F

4、lash 存储器可有效地降低开发成本。STC89C52 单片机的基本结构STC89C52 单片机采用 40Pin 封装的双列直接 DIP 结构,图 2-1 是它的引脚配置,40 个引脚中,电源 Vcc 和接地 GND 各一根,外置石英振荡器的时钟线两根,4 组 8 位共 32 个 I/O 口,中断口和 P3 口复用。现在我们对这些引脚的功能加以说明。图 2-1STC89C52 的引脚图1. 电源引脚(1) Vcc (40 脚)电源端GND (20 脚)接地端(2) 工作电压为 5V2. 外接晶体引脚XTAL1 是片内振荡器的反相放大器输入端,XTAL2 则是输出端,使用外部振荡器时,外部振荡信

5、号应直接加到 XTAL1,而 XTAL2 悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为 12MHz,时钟频率就为 6MHz。晶振的频率可以在 1MHz-24MHz 内选择4。电容取 30PF 左右。图 2-2 晶振电路3. 复位 RST(9 引脚)在振荡器运行时,有两个机器周期(24 个振荡周期)以上的高电平出现在此引退时,将使单片机复位,只要这个引脚保持高电平,51 芯片便循环复位。复位后 P0-P3 口均置 1 引脚表现为高电平,程序计数器和特殊功能寄存器 SFR 全部清零5。当复位脚由高电平变为低电平时,芯片为 ROM 的 00H 处开始运行程序。图 2-3 复位电路4. 输入

6、输出引脚(1) P3 端口P3.0P3.7 P3 是一个带有内部上拉电阻的 8 位双向 I/0 端口。输出时可驱动 4 个 TTL5。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。对内部 Flash 程序存储器编程时,接控制信息。除此之外 P3 端口还用于一些专门功能,具体请看下面功能表。表 2-1 P3 功能表(2) P2 端口P2.0P2.7 P2 是一个带有内部上拉电阻的 8 位双向 I/0 端口。输出时可驱动 4 个 TTL。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。对内部 Flash 程序存储器编程时,接收高 8 位地址和控制信息。在访问外部程序和 16 位外

7、部数据存储器时,P2 口送出高 8 位地址。而在访问 8 位地址的外部数据存储器时其引脚上的内容在此期间不会改变。(3) P1 端口P1.0P1.7 P1 是一个带有内部上拉电阻的 8 位双向 I/0 端口。输出时可驱动 4 个 TTL。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。对内部 Flash 程序存储器编程时,接收低 8 位地址信息。(4) P0 端口P0.0-P0.7 P0 是一个 8 位漏极开路型双向 I/O 端口,端口置 1 (对端口写 1)时作高阻抗输入端。作为输出口时能驱动 8 个 TTL。对内部 Flash 程序存储器编程时,接收指令字节;校验程序时输出指令字节

8、,要求外接上拉电阻7。在访问外部程序和外部数据存储器时,P0 口是分时转换的地址(低 8 位)/ 数据总线,访问期间内部的上拉电阻起作用。(二)、数码管简介四、系统功能框图本次设计八路抢答器系统主要有五部分电路:选手抢答电路、八段显示电路、蜂鸣器报警电路、主持人控制电路。本次设计的八路抢答器可实现以下基本功能:u启动电源后系统自动倒计时 3 秒。u抢答器同时供八名选手比赛,分别用八个按钮 SW1SW8 表示。u抢答器具有锁存与显示功能。即选手按动按钮时会锁存相应的编号,并且优先抢答选手的编号一直保持到主持人将系统清除为止。u违规抢答,蜂鸣器会报警,而且锁存抢答队员的号码,并闪烁显示。u主持人关

9、电源清除号码。五、硬件电路设计1、最小系统设计图 3-1STC89C52 最小系统说明:(1) 复位电路:教材一般电容取 10u,电阻 R 取 8.2K9。(2) 晶振电路:典型的晶振取 11.0592MHz(因为可以准确地得到 9600 波特率和 19200 波特率,用于有串口通讯的场合)或者 12MHz(产生精确的方波便于 12 分频,方便定时操作)。(3) 电源接 5V 变压器。六、总电路图下图是电路原理图总电路图七、系统主程序目前,单片机的编程语言主要有 C 语言和汇编语言两种。C 语言是高级语言,编写起来比较简便且易维护,汇编语言介于机器语言和高级语言之间,更接近硬件,但编写起来比较

10、冗长。介于本次程序不太复杂,本人又更喜欢汇编,故本次设计的程序采用汇编语言来写,详见附录一。八、系统仿真与调试1、Protues 软件介绍Protues 的 ISIS 是一款 Labcenter 出品的电路分析实物仿真系统,可仿真各种电路和 IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业单片机仿真系统。下图是 Protues 软件初始界面:图 5-1 Protues 软件初始界面该软件的特点有:(1) 满足常用单片机软件仿真系统的标准,并在同类产品中具有明显优势。(2) 具有模电仿真、数电仿真、单片机及其外围电路组成系统仿真。(3) 目前支持的单片机类型有:68000 系列、805

11、1 系列、AVR 系列、PIC 系列以及各种外围芯片。(4) 支持大量的存储器和外围芯片。Protues与其它单片机仿真软件不同的是,它不仅能仿真单片机的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程及结果。对于这样的仿真实验,从某种意义上讲,弥补了实验和工程应用间脱节的矛盾现象。2、Keil 软件介绍Keil 软件是目前最流行开发 MCS-51 系列单片机软件,Keil 软件提供了包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等

12、在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。下图是本人安装的 Keil 软件初始界面:图 5-2Keil 软件初始界面九、实物图十、元件清单:位号名称规格数量D1共阳数码管3.8*5.6cm1晶振晶振12M1STC89C52STC89C52 单片机STC89C52 单片机1led红色 led5mm1R1电阻470 欧姆1Q1三极管85501U1蜂鸣器蜂鸣器1J1-J8按键开关按键开关8S1电源开关自锁开关1万用板万用板7*9cm1插针排插常用排插4+8=1240 引脚 DIP 插槽DIP 插槽40 引脚1电源接线插口电源接线插口2 口1十一、焊接问题及解决一

13、般来说,造成硬件问题的首要原因就是焊接失误,即焊接的好坏直接影响到产品的正常与否,在本次设计制作的焊接过程中遇到了一些问题,通过查找资料,找到了相关原因:1) 焊锡用量过多导致焊点的锡堆积;焊锡过少又不足以包裹焊点;2) 冷焊。焊接时烙铁温度过低或加热时间不足,焊锡未完全熔化、浸润、焊锡表面不光亮,有细小裂纹。3) 焊锡连桥。指焊锡量过多,造成元器件的焊点之间短路。4) 焊点表面的焊锡形成尖锐的突尖。这多是由于加热温度不足或焊剂过少,以及烙铁离开焊点时角度不当造成的。有时,调试时最小系统的电路不工作,通过查资料才明白,首先应该确认电源电压是否正常。用电压表测量接地引脚跟电源引脚之间的电压,看是

14、否符合电源电压,电路需 5V 电源供电,故我们选择了用双公 USB 从电脑上供电,省去好多变压的麻烦。参考文献1 王冬梅, 张建秋. 基于单片机的八路抢答器设计与实现J. 佳木斯大学学报, 2009,27(3): 350.2 周功明, 周陈琛. 基于单片机 AT89C2051 的九路多功能智力竞赛抢答器的设计J. 现代电子技术, 2006, 10(20): 4.3 谢道平. 基于 Proteus 仿真的单片机多功能智能抢答器的设计J. 长春大学学报, 2011,21(10): 12.4 耿仁义等. 新编微机原理及接口技术. 2006.5 文明月. 基于 AT89S52 单片机的抢答器设计与实现

15、J. 科技创新导报, 2009, 28(10): 35.6 周润景, 张丽娜. 基于 PROTEUS 的电路及单片机系统设计与仿真M. 北京: 北京航天航空大学出版社, 2006.7 周坚. 单片机 C 语言轻松入门M. 北京: 北京航天航空大学出版社, 2006.8 李萍, 张池, 张勃. AT89S51 单片机原理、开发与应用实例M. 北京: 中国电力出版社, 2008.9 杨居义,单片机原理,清华大学出版社附 录附录一:抢答器程序#include unsigned char c1,c2,c3,c4,c5,c6;int j,k; sbit feng=P37; sbit k1=P10; sb

16、it k2=P11; sbit k3=P12; sbit k4=P13; sbit k5=P14; sbit k6=P15; sbit k7=P16; sbit k8=P17;unsignedcodetable=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7 C,0x39,0x5E,0x79,0x71;void delay1() unsigned int i,j; for(i=600;i0;i-)for(j=10;j0;j-); void main() for(k=400;k0;k-)for(j=100;j0;j-)P2=t

17、able3;if(k1=0) while(1)feng=0; P2=table1; delay1(); P2=0xff; delay1();if(k2=0) while(1) feng=0; P2=table2; delay1(); P2=0xff; delay1(); if(k3=0) while(1) feng=0; P2=table3; delay1(); P2=0xff; delay1(); if(k4=0) while(1) feng=0; P2=table4; delay1(); P2=0xff; delay1(); if(k5=0) while(1) feng=0; P2=tab

18、le5; delay1(); P2=0xff; delay1(); if(k6=0) while(1) feng=0; P2=table6; delay1(); P2=0xff; delay1(); if(k7=0) while(1) feng=0; P2=table7; delay1(); P2=0xff; delay1(); if(k8=0) while(1) feng=0; P2=table8; delay1(); P2=0xff; delay1(); for(k=400;k0;k-) for(j=100;j0;j-)P2=table2; if(k1=0) while(1) feng=0

19、; P2=table1; delay1(); P2=0xff; delay1();if(k2=0) while(1) feng=0; P2=table2; delay1(); P2=0xff; delay1(); if(k3=0) while(1) feng=0; P2=table3; delay1(); P2=0xff; delay1(); if(k4=0) while(1) feng=0; P2=table4; delay1(); P2=0xff; delay1(); if(k5=0) while(1) feng=0; P2=table5; delay1(); P2=0xff; delay

20、1(); if(k6=0) while(1) feng=0; P2=table6; delay1(); P2=0xff; delay1(); if(k7=0) while(1) feng=0; P2=table7; delay1(); P2=0xff; delay1(); if(k8=0) while(1) feng=0; P2=table8; delay1(); P2=0xff; delay1(); for(k=400;k0;k-)for(j=100;j0;j-)P2=table1; if(k1=0) while(1) feng=0; P2=table1; delay1(); P2=0xff

21、; delay1();if(k2=0) while(1) feng=0; P2=table2; delay1(); P2=0xff; delay1(); if(k3=0) while(1) feng=0; P2=table3; delay1(); P2=0xff; delay1(); if(k4=0) while(1) feng=0; P2=table4; delay1(); P2=0xff; delay1(); if(k5=0) while(1) feng=0; P2=table5; delay1(); P2=0xff; delay1(); if(k6=0) while(1) feng=0;

22、 P2=table6; delay1(); P2=0xff; delay1(); if(k7=0) while(1) feng=0; P2=table7; delay1(); P2=0xff; delay1(); if(k8=0) while(1) feng=0; P2=table8; delay1(); P2=0xff; delay1(); P2=table0;while(1) if(k1=0)P2=table1; while(1); if(k2=0) P2=table2; while(1); if(k3=0) P2=table3; while(1); if(k4=0) P2=table4; while(1); if(k5=0) P2=table5; while(1); if(k6=0) P2=table6; while(1); if(k7=0) P2=table7; while(1); if(k8=0) P2=table8; while(1);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922