基于PROTEUS的抢答抢答器硬件电路设计…

本次设计主要应用单片机抢答器设计及工作原理,以及根据它的实际用途。四路抢答器系统软件设计根据电路原理图,编写设计程序,我们可以用汇编编写,也可以用C语言编写,本次设计采用C语言编写。经过本次实验,我对单片机的学习有了阶段性的总结,经过了软硬件的结合,更加具体更加全面地学会了单片机的应用。

如果急于回答,很难从视觉上判断哪一组先回答问题。 利用单片机系统设计答录机,可以解决上述问题。 即使两组的回答时间相差几微秒,仍然可以区分哪一组先回答问题。 本设计主要应用了单片机答录机的设计和工作原理,以及它的实际使用。 系统工作原理 本系统以PIC16F877A单片机为核心。 控制系统的四个模块分别是:存储模块、显示模块、语音模块、应答开关模块。 答录机系统通过开关电路的四个按钮输入应答信号; 采用蜂鸣器完成语音报警功能; 使用存储的程序; 并采用五个数码管完成显示功能。 工作时,按键通过开关电路输入各通道的应答信号。 经单片机处理后输出控制信号,控制数码管和语音芯片的工作。 数码管显示哪一组先答题,然后开始倒计时限制答题时间,从而实现整个答题过程。 关键词:PIC16F877A 微控制器响应器。 简介 1.1 本课程设计可实现的功能: 上电复位功能,手动复位功能,进入初始画面,五个数码管分别显示“H”、“E”、“L”、“L”、“O”。 b. 应答器功能。 分为四组,每组都有一个接听按钮。 主机有开始、结束和重置按钮。 将选手答题时间设置为30秒,答题时间设置为60秒。 当主持人按下按钮时,30秒倒计时开始,参赛者开始回答有效。 如果30秒后无人接听,蜂鸣器会响两声进行提示。

如果30秒内有选手答题,则30秒倒计时停止,显示答题选手人数,并开始1分钟答题倒计时。 当一分钟倒计时结束时,蜂鸣器会响起,表明答题时间结束。 主持人可以按下重置按钮开始新一轮答题。 C。 秒表功能。 它可以用作简单的秒表。 设置一个按钮开始计时,再按一次停止,记录时间,再按一次重新开始计时。 1.2 本课程的完成情况硬件电路和软件程序的设计已基本实现; b. 硬件电路已基本连接。 虽然焊接的不是很美观,但是已经按照电路原理图做出了完整的硬件电路; C。 由于经验不足和时间有限,硬件和软件可能还不够完善,未来需要改进。 1.3 本课程使用方法:安装电池,按下自锁按键开关,五个数码管显示“HELLO”。 按 5 键切换到秒表模式。 按6号键开始计时。 再按6键停止计时并显示计时时间。 再次按键 6 重新启动计时器。 再次按 5 键切换至答录机。 按按钮 6 开始 30 秒倒计时。 数码管2、3显示剩余时间。 如果没有人接听,30秒后,蜂鸣器会响两声,然后结束。 如果有人抢答,数码管1会显示获胜选手的编号,数码管2和3会停止,数码管4和5会开始60秒倒计时答题时间。 倒计时结束后,蜂鸣器会响起。 图1 PIC单片机控制的四路应答器工作原理物理电路图。 使用微控制器设计四路应答器包括硬件电路设计和软件程序设计。

硬件电路的核心是PIC16F877A单片机,由输入电路和输出电路组成。 软件程序采用PIC汇编语言或C语言编写单片机程序。 PIC单片机控制的四路应答器原理框图如图2所示。如图2所示,系统框图各部分功能描述如下: ⑴单片机控制器:选用PIC16F877A单片机。 输入端接收应答输入、释放输入和复位输入信号。 输出信号经计算处理后控制接听指示灯、快速接听显示数码管等。 ⑵接听输入:共4路。 按键开关用于实现选手的输入。 应答完成后,输入信号将无效。 ⑶编码电路:对4路响应输入信号进行编码,扩展PIC16F877A单片机的输入端口。 由于该设计只有四个响应通道,因此不需要使用。 ⑷释放输入:使用按键开关,使用程序封锁输入,使用复位按钮准备继续接听。 ⑸复位输入:使用按键开关对单片机进行硬件复位操作。 ⑹ 倒计时:利用倒计时提示答题时间开始。 ⑺停止计时:停止倒计时,显示选手答题时间并提示开始答题时间。 ⑻答案显示:采用液晶数码管显示参赛人数。 ⑼ 语音报警电路:当超过限定接听时间时,蜂鸣器鸣叫两声,表示接听时间已过,不能再接听。 当应答时间到时,蜂鸣器会发出声音,表明应答时间已到。 硬件设计内容 3.1 根据设计思路并查阅相关资料,设计实现所需功能的系统电路原理图,并使用protel绘制原理图(图3)。

图3 基于protel 的原理图 3.2 基于PROTEUS 的四路答录机硬件电路设计 3.2.1 多路答录机总体电路设计 1、新建一个设计文件,首先进入Proteus ISIS 编辑环境。 选择“文件/新设计”选项,在弹出的模板对话框中选择DEFAULT模板,保存新设计。 如图3.2.1(a)所示。 如图3.2.1(a)所示 2、设置工作环境。 打开模板菜单并设置工作环境。 3. 选取元件并选择Library 下的Pick Device/Symbol 菜单项,将出现如图3.2.1 (b) 所示的对话框。 图 3.2.1 (b) 元件选取对话框。 在“关键字”中输入您需要的组件名称,单击“确定”按钮,或者在组件列表区域双击组件名称即可完成组件添加。 4、将PIC16F877A元件放置在原理图中的元件选择对象选择器中,Proteus ISIS编辑环境主界面的预览窗口中将出现PIC16F877A图标。 在编辑窗口中双击鼠标左键,原理图中放置元件PIC16F877A。 按照上述步骤将其他组件放置到原理图中。 5. 编辑元件 放置元件后,双击相应的元件,打开该元件的编辑对话框。

6. 在原理图上单击绘制一个对象连接点。 如果想让Proteus ISIS自动判断路由路径,只需点击另一个连接点即可; 如果您想自己确定路由路径,只需单击所需的拐点即可。 按照上述步骤,根据需要连接所有原件。 连接后示意图如图3.2.1(c)所示。 图3.2.1(c) 连接后原理图 8. 对原理图进行电气规则检查。 选择“工具”下的“电气规则检查”菜单项,将出现电气规则检查报告。 如图3.2.1(d)所示。 9. 保存并输出报告 保存设计好的原理图文件。 同时,您可以使用“工具”菜单下的“物料清单”来起草单个项目以输出BOM文档。 如图3.2.1(e)所示。 图3.2.1(d)电气规则检验报告 图3.2.1(e)输出BOM文件 3.3 设计好实际电路图布局和焊接电路图并通过仿真可以使用后,下一步就是购买器件。 原来的零件清单如下: 然后,根据原理图开始焊接电路。 焊接后最重要的是测试。 测试可以从以下几个方面入手: 逻辑故障往往是由于焊线、贴装元件过程中的工艺错误造成的。 主要有接线错误、断路、短路等。 消除的方法是首先仔细对比做好的板子和原理图,看两者是否一致。 特别要注意对供电系统的检查,防止供电短路和极性错误,重点检查系统总线是否存在相互短路或与其他信号线短路的情况。

必要时可使用万用表的短路测试功能,以缩短故障排除时间。 元件检查检查某个元件是否损坏,可以用万用表测量相关参数,也可以用更换的方法来检测。 电源故障。 通电前一定要检查电源电压的幅值和极性,否则容易造成集成块损坏。 通电后,检查各插件上引脚电位。 一般先检查VCC和GND之间的电位。 如果在4.8-5Vi之间,则属正常。 如果存在高电压,在线仿真器调试时会损坏仿真器,有时还会导致应用系统中的集成块受热损坏。 电路线路检测电路的调试主要看接口和接线是否正确。 由于引脚较多,所以在开始制作电路板之前最好对引脚进行测试。 硬件测试是电路原理能否实现的基础,因此必须按顺序认真调试、认真检查,直至正常工作。 四路答录机系统的软件设计是根据电路原理图编写的设计程序。 我们可以用汇编语言或者C语言来编写。 本设计是用C语言编写的。 综合中断、定时器计数器TMR1有应用知识,设计编写。 参见第一页程序清单。系统软件调试电路焊接完毕并编写程序后,开始系统测试。 首先将正确的仿真程序烧录到单片机芯片中,然后安装到电路板上进行验证。 如果不行,再检查一下是硬件问题还是程序问题,直到所有问题解决为止。 课程设计被验证成功后,更改了程序,增加了秒表功能,让答录机多了一个功能。

经过调试,没有发现任何错误,任务终于比较完整地完成了。 课程设计总结 这次课程设计让我受益匪浅。 可以说,这样的经历是从来没有过的。 首先,虽然这个课程设计持续了两周。 但距离我们真正开始准备也只有四五天的时间了。 从周日开始焊接,一直到周四下午,可以说除了吃饭睡觉,就是在焊接电路。 我从来没有这么专注于一件事,而且持续了好几天。 可见,这门课程绝对是非常有吸引力的。 而且,通过这个设计,我发现自己还有很多问题。 比如焊接过程中不小心焊错了电路,还有一个问题就是可能因为是第一次做,没有经验,布局有点不好,导致后续的布线复杂,所以更容易出错。 。 总之,经过这次课程设计,我积累了经验,对焊接更加感兴趣了。 这次任务可以说是一波三折。 本来花了三天时间把电路焊了,但是烧成程序后发现根本不能用。 后来检查电路,发现很多线接错了,于是又修改了一下。 再次验证后,还是不行。 多个数码管出现乱码。 经过同学建议,我更换了数码管并重新连接,然后再次测试。 当时我心里很苦恼。 在陈武同学的鼓励下,最后经过他的帮助检查,我发现我的程序有问题。 在这关键的最后一天,我终于成功了。 虽然连接有些不好,但仍然有效。 已经实现了预期的功能。 特别感谢陈武同学。

经过这次实验,我对单片机的学习做了一个阶段性的总结。 软件和硬件相结合后,我更加具体、全面地了解了单片机的应用。 应该说,这次作业为以后的毕业设计奠定了基础。 有了这次经历,我相信我在以后的学习中会越来越熟练。 参考文献 PIC单片机原理与应用 李荣正 刘启忠 陈学军 北京航空航天大学出版社 模拟电子技术基础教程 华成英 清华大学出版社 数字电子技术基础 严实高等教育出版社 C程序设计(第三版) 谭浩强 清华大学大学出版社计划清单#include

__CONFIG(0xFF32);无效 init(无效);无效 keyscan(无效);无效延迟(int);无效延迟1(int);int i=30,j,k,m=60,flag=0,flag1,jishu; char TABLE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};char TABLE1[]={0x76,0x79,0x38,0x3f};void main(){init() ;while(1){if(flag==0){PORTD=TABLE1[0];PORTC=0Xfe;延迟(2);PORTD=TABLE1[1];PORTC=0Xfd;延迟(2);PORTD=TABLE1[ 2];PORTC=0Xfb;延迟(2);PORTD=TABLE1[2];PORTC=0Xf7;延迟(2);PORTD=TABLE1[3];PORTC=0Xef;延迟(2);keyscan();}if (flag==2){PORTD=TABLE[0];PORTC=0Xfe;延迟(2);PORTD=TABLE[i/10];PORTC=0Xfd;延迟(2);PORTD=TABLE[i];PORTC= 0Xfb;延迟(2);PORTD=表[m];PORTC=0Xf7;延迟(2);PORTD=表[m];PORTC=0Xef;延迟(2);keyscan();}if(flag==1 ){PORTD=TABLE[jishu/10000];PORTC=0Xfe;延迟(2);PORTD=TABLE[jishu000/1000];PORTC=0Xfd;延迟(2);PORTD=TABLE[jishu00000/100];PORTC=0Xfb ;delay(2);PORTD=TABLE[jishu000000/10];PORTC=0Xf7;delay(2);PORTD=TABLE[jishu];PORTC=0Xef;delay(2);keyscan();}}}void init( ){TRISB=0XFF;TRISC=0X00;TRISD=0X00;TRISE=0X00;RE0=1;PORTC=0xff;PORTA=0X0F;PORTD=0XFF;INTCON=0xc0;PIE1=0x01;TMR1L=(65536-10000)% 256;TMR1H=(65536-10000)/256;TMR1ON=0;}void keyscan(){if(flag==2) {if(RB0==0){delay(10);if(RB0==0) {k=1;while(1){PORTD=TABLE[1];PORTC=0Xfe;延迟(1);PORTD=TABLE[i/10];PORTC=0Xfd;延迟(1);PORTD=TABLE[i] ;PORTC=0Xfb;延迟(1);PORTD=表[m/10];PORTC=0Xf7;延迟(1);PORTD=表[m];PORTC=0Xef;延迟(1);}}}if(RB1 ==0){延迟(10);if(RB1==0){k=1;while(1){PORTD=TABLE[2];PORTC=0Xfe;延迟(1);PORTD=TABLE[i/10 ];PORTC=0Xfd;延迟(1);PORTD=表[i];PORTC=0Xfb;延迟(1);PORTD=表[m/10];PORTC=0Xf7;延迟(1);PORTD=表[m ];PORTC=0Xef;延迟(1);}}}if(RB2==0){延迟(10);if(RB2==0){k=1;while(1){PORTD=TABLE[3] ;PORTC=0Xfe;延迟(1);PORTD=表[i/10];PORTC=0Xfd;延迟(1);PORTD=表[i];PORTC=0Xfb;延迟(1);PORTD=表[m/ 10];PORTC=0Xf7;延迟(1);PORTD=表[m];PORTC=0Xef;延迟(1);}}}if(RB3==0){延迟(10);if(RB3==0 ){k=1;while(1){PORTD=TABLE[4];PORTC=0Xfe;延迟(1);PORTD=TABLE[i/10];PORTC=0Xfd;延迟(1);PORTD=TABLE[i ];PORTC=0Xfb;延迟(1);PORTD=TABLE[m/10];PORTC=0Xf7;延迟(1);PORTD=TABLE[m];PORTC=0Xef;延迟(1);}}} } if (RB4==0){延迟(10);if(RB4==0){while(!RB4);flag++;if(flag==3)flag=0;}} if(RB5==0){延迟(10);if(RB5==0){while(!RB5);flag1++;if(flag1==2)flag1=0;if(flag==1||fl

单片机

单片机实验的学习经验和心得体会,你值得拥有!

2024-2-8 17:02:50

单片机

开发板有51、ARM、FPGA、DSP的区别?

2024-2-8 18:05:05

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索