单片机课设--多路抢答器--课程设计报告兼程序4221.pdf

上传人:得** 文档编号:79412958 上传时间:2023-03-21 格式:PDF 页数:22 大小:1.17MB
返回 下载 相关 举报
单片机课设--多路抢答器--课程设计报告兼程序4221.pdf_第1页
第1页 / 共22页
单片机课设--多路抢答器--课程设计报告兼程序4221.pdf_第2页
第2页 / 共22页
点击查看更多>>
资源描述

《单片机课设--多路抢答器--课程设计报告兼程序4221.pdf》由会员分享,可在线阅读,更多相关《单片机课设--多路抢答器--课程设计报告兼程序4221.pdf(22页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 设计课题:多路抢答器 学 院:电气与信息工程学院 专 业:电气工程及其自动化 班 级:学 号:姓 名:目 录 一、任务及设计要求2 1.任务2 2.要求2 二、系统原理图2 三、硬件原理图6 1.元器件清单6 2.硬件设计6 3.软件设计11 4.性能分析13 四、流程图15 1.总体流程图15 2.抢答器模块16 3.北京时间模块流程图17 五、程序18 六、产品使用说明书27 1.功能27 2.使用说明28 七、心得体会29 八、参考文献,教师评语30 一、任务及设计要求 1、任务 设计一多路抢答器,每组设计一抢答按扭供选手使用 2、要求(1)设计一多路数字抢答器(2)设置一个系统清除和

2、抢答控制开关,该开关由主持人控制(3)抢答器具有锁存与显示功能。选手按动按扭,锁存相应的编号,并在LED数码管或LCD上显示,同时系统报警。优先抢答选手的编号一直保持到主持人将系统信号清除为止(4)抢答器具有定时抢答功能。当主持人启动“开始”键后,计时器进行计时,同时绿灯亮(可蜂鸣器替代或显示对应标志)。参赛选手在设定时间内进行抢答,抢答有效,定时器停止工作,绿灯灭,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止,如果定时时间已到,无人抢答,本次抢答无效,系统报警。中途可以暂停。(5)显示定时时间,可倒数显示(6)定时时间进入最后十秒时,可用蜂鸣器提醒(7)显示北京时间,可调

3、整 二、系统原理图 硬件原理:ADUC848 管脚图如下图所示。Pin14:()作为矩阵式键盘或独立按键的输入,P1口只能用于输入,默认用于模拟输入,作为数字输入使用时应先往P1口相应引脚写0,这里可以用P0&=0 xf0。若P2、P3、P0口要作为输入,则应往相应引脚写1。Pin5、6:AVDD、AGND,模拟电源输入。Pin7、8:外部参考电压接入,Pin7接AGND。片内DAC有内部参考,ADC有内部参考。Pin9、10:(、)两路AD输入,可做差分输入,需要设置ADC的寄存器。Pin11、12:(、)各 200uA 激励电流源,可配合 RTD 等 做应用。Pin13:两路AD输入做普通

4、输入时的电压参考端,AD输入电压不能低于此引脚电压。Pin14:片内DAC输出。Pin15:复位引脚。Pin16、17:单片机RS232接口的RXD()TXD()。Pin18:()外部中断0,用于红外接收和PS/2接口。Pin19:()LCD1602,LCD12864A的EN引脚,控制第一位数码管。Pin20、21:DVDD、DGND数字电源输入。Pin22:()PS/2接口的data信号。Pin23:()LCD1602和LCD12864A的RW。Pin24:()LCD1602和LCD12864A的RS。Pin25:LCD12864A的CS1。Pin26:IIC接口时钟信号。Pin27:IIC

5、接口data信号。Pin28:()SPI接口时钟信号。Pin29:()SPI接口MOSI信号、控制第6位数码管的位码。Pin30:()SPI接口MISO信号、控制第7位数码管的位码。Pin31:()SPI接口SS信号、控制第8位数码管的位码;3也作为4X4矩阵式键盘的扫描输出信号、步进电机的控制信号、数码管第数码管第6、7、8位位码。但是SPI、4X4矩阵式键盘、步进电机、数码管第6、7、8位功能不能同时实现。Pin32、Pin33:接外部晶振。Pin34、Pin35:DVDD、DGND。Pin36:()LCD12864A的CS2。Pin37:()内部PWM模块输出,控制红外LED。Pin38

6、:()内部PWM模块输出,控制蜂鸣器。Pin39:()内部PWM模块的外部时钟输入(也可以用内部时钟)。Pin40:EA,低电平有效,正常使用时拉低。Pin41:PSEN,在此引脚电平为低时按复位键进入debug模式,可以下载和调试程序。Pin42:ALE。Pin47、Pin48:DGND、DVDD。Pin43、44、45、46、49、50、51、52:P0口、LCD1602和LCD12864的数据总线,数码管的段码。三、硬件原理图 1.元器件清单:MCU:选用 ADUC848 芯片,core clock 为。带有 PWM 脉宽调制功能。数码管:五个共阴极的数码管,用作显示数据。由于 I/O

7、的驱动能力有限,因此是用 PNP 来驱动数码管的段,用 NPN 来进行数码管的位选。段码在低电平有效,位码在高电平有效 键盘:使用矩阵键盘,使用 16 个按键,最多可以满足 13 名选手进行抢答。LED:一个绿色的 LED,正极接 P25,阴极接地。无源蜂鸣器:采用 PWM 控制发声。下载程序芯片:与 PC 机的通信使用 RS232 协议,使用的通信芯片是 MAX232 2.硬件设计:(1)电源模块 共有如下3种供电方式:5V电源适配器供电(开关往上拨、插针1下面两脚接跳线帽)。将开关sw4第2、3脚接通(开关往上拨),电源网络DVDD连接到插针1第2脚的输出,将插针1的第1、2脚(插针1下面

8、两脚)接跳线帽,DVDD直接连接到电源适配器输入端,即为5V电源适配器供电模式。712V电源适配器供电(开关往上拨、插针1上面两脚接跳线帽)将开关sw4第2、3脚接通(开关往上拨),电源网络DVDD连接到插针1第2脚的输出,将插针1的第2、3脚(插针1上面两脚)接跳线帽,DVDD连接到稳压芯片7805的输出,而7805的输入端连接到电源适配器输入端,即为712V的电源适配器经7805给学习板供电的模式。USB供电(开关往下拨)。将开关sw4第1、2脚接通(开关往下拨),电源网络DVDD连接到USB电源输入端。(2)数码管 DS07:数码管段码。BIT07:数码管位码。MOTORAD:步进电机驱

9、动信号。DISCTRL04:显示控制信号,控制数码管低5位。D08:单片机P0口。(3)8路LED 8个LED接P0口,低电平时LED亮,这样不会影响P0口逻辑电平。LED限流电阻取,通过LED电流约为,在P0口驱动能力范围之内。插针配置:使用该模块,可以接通插针2,(4)蜂鸣器 本设计中采用无源电磁式蜂鸣器,蜂鸣器由PWM1()控制。PWM1和PWM0均为片内PWM模块的输出。蜂鸣器采用普通NPN三极管。插针配置:使用蜂鸣器,可以接通插针3。(5)按键模块 由于P1口(用于行扫描)内部无上拉电阻,为使无键按下时行信号为高电平,故将行信号接上拉电阻,电阻大小10K即可。引脚复用:为4X4矩阵式

10、键盘列扫描信号,又复用作步进电机控制信号,SPI信号、还复用为数码管第5、6、7位位码控制信号。参与复用的一项功能使用时,其他参与复用的功能则不能使用。插针配置:插针10上面两脚接跳线帽,4X4矩阵式键盘输入,行扫描信号为,列扫描信号为。插针10下面两脚接跳线帽,独立按键输入,该模式有4个独立按键可用,按键扫描所用端口为。这4个按键为4X4矩阵键盘的左边4个按键。(6)复位与下载 复位与下载电路如图 进入下载或调试模式的步骤为:按住BTN1(down or debug按键)不要放开;按下 BTN2(reset 按键),然后放开 BTN2(reset 按键);放开BTN1(down or deb

11、ug按键)。这样单片机就进入了调试模式,可以下载或调试程序(7)下载程序芯片(MAX 232)3.软件设计 (1)软件设计:分析了产品需要具有功能及工程任务和指标。这个多路抢答器功能有多路抢答器,北京时间,及其抢答过程中主持人的开始、暂停、清零,报警器的发声,LED 显示。因此将抢答器这个小工程分成 X 个模块:LED 显示模块,发声模块及 PWM 控制模块,数码管显示模块,按键扫描模块,功能选择模块。(2)数码管扫描:采用动态扫描法。先选中位选,再将七段码送出,延时一段时间,接着是点亮下一个,完成一轮后则扫描程序结束。全过程由display(unsigned char duan,unsign

12、ed char wei)函数实现。但是,关键在于延时选择多长时间,延时太短则数码管点不亮或是不清晰,延时太长则会不连续或是影响后面的程序的执行如键盘扫描,而这个时间是需要调试的。(3)键盘扫描:aduc848 芯片比较特殊性,其 P1 口不具备驱动能力只能读入,而且读入前要先将 P1 口置 0,这点与 AT89C51 完全不同,如果不仔细阅读说明书,按键的的扫描将是永远无解。键盘还有另一个问题,就是使用“闭环”还是“开环”。“闭环”的按键就是等待按键直到有按键按下才会退出按键扫描,而“开环”则不需要等到按键,只要没有按键就执行其后面的程序但是有一点,他必须用在循环中,而且一般是用在 while

13、(1)之中,进行循环扫描。关于延时程序,也是要考虑的,如果程序写了但是没有调用就会占用 code 和 data 区,而data 区直接寻址仅仅 128B,故延时选择合适的延时时间作为单位。(4)北京时间:运用定时器 0,16 位计数方式实现。计数器是加一计数器,当加到 65535,即 1s 钟时定时器产生中断,同时对现实的时间进行刷新。由于在本产品的设计中我们只采用了一个中断,因此不存在中断的优先级,中断的嵌套。因此不会对中断的发生时间产生影响。同时core clock 的稳定,保证了时钟的稳定可靠。(5)倒计时与报警提示:倒计时采用延时程序完成,利用 1 ms 延时函数delay1ms(un

14、signed char),执行 1000 后延时就为 1s。每个 1s 对数码管显示的段码进行刷新。报警功能通过蜂鸣器实现,在特定的时间给蜂鸣器占空比为50%的,频率不相同的脉冲波,发出不同的报警提示音。抢答开始提示有一盏绿色的 LED 来反映。但允许抢答时刻,给抢答器的控制引脚送高电平,抢答器发光,当抢答暂停、抢答时间到、已抢答中任一种情况发生时,绿灯熄灭。4.性能分析(1)通过按键实现选手的抢答,主持人的开始,暂停,清零,北京时间调节信号。由于按键是有限的,用较少的按键实现这些功能则需要按键的复用,也就是不同模块中按键的功能是不同的。选手抢答需要在检测到按键时,通过行扫描法分析判断抢答成功

15、选手的按键编号。主持人开始按键按下时倒计时开始。暂停按键按下时,程序进入死循环,同时倒计时暂停,跳出死循环的方法就是按下开始按键。清零按键按下时,抢答程序结束,屏幕显示北京时间,等待下一次抢答。北京时间调节,通过四个按键实现时和分的加减,同时不影响定时器工作。(2)警告声音是采用无源蜂鸣器发声。利用PWM给蜂鸣器不同频率的占空比都为50%的脉冲波,再通过延时发出声音。为了声音的不同,采用了不同的频率,有1000Hz,500Hz,333Hz,200Hz.(3)北京时间功能采用T0计时器中断来实现。ADuC848的core clock频率默认为,定时器0的时钟为core clock,1572864

16、=65536*24。故将定时器0设置为16位计数模式,且初值为0,无需在定时器溢出中断中给定时器赋初值(中断溢出就开始执行中断程序,计数器为加法计数器,从0加到65536)。每65536个core clock周期将产生一次中断,在中断处理程序中累计中断次数,当有24次中断产生时即为1秒,进行计时。同时产生中断,在数码管上显示。(4)由于矩阵键盘和左边三位数码管I/O口冲突,为了显示的避免误操作,采用了五位数码管显示,用电子手表的形式显示北京时间。抢答器模式下,右起第五位数码管显示选手编号,右起最后两位显示抢答剩余时间,当抢答时间到没选手抢答时,结果显示特殊符号。(5)抢答开始提示有一个绿色的L

17、ED实现,通过P25给高电平时发光。四流程图 1.总体流程图 开始 初始化 按键扫描 按键判断 抢答模式 时钟调节 北京时间模式13号Else 10、11 14、15键 2.抢答器模块流程图 抢答模式 初始化限时30s 绿灯亮 Limit=0 数码管扫描,延时 1s Limit=10 发出最后 10s 警报,响 2s 按键扫描 按键判断 Limit 数码管扫描 按键判断 按键扫描 Led 灯熄灭 抢答成功提示音响一次 数码管扫描 Limit=0 时间到 30s 警告 按键判断 按键扫描 北京时间模式 Y N Y Y N N Else Else Else 按键 012 14 号键 13 号键 1

18、5 号键 返回段码 绿灯灭 3.北京时间模块流程图 Sec59 N Y Min+Min59 N Min59 Min=0 Hour+Y Hour23 N Hour=0 数码管扫描 按键扫描 按键判断 13 号 Else 15 号 抢答模式 10 号 11 号 14 号 Hour23 Min1 Min1 Hour+Hour=0 Min+Min=0 Hour-Hour=23 Min-Min=59 YYYYN N N N Sec+T0 初值为 0 每过 1sT0中断一次 Y 五、程序 程序分模块进行测试,然后将模块整合成函数,和主函数编写在一个文件中。#include /*蜂鸣器的 I/O 端口*/s

19、bit fmq=P26;0f0f0f0f0f0f0f0f0f9f1f 产品特点(1)一多路数字抢答器(2)一个系统清除和抢答控制开关,该开关由主持人控制(3)抢答器具有锁存与显示功能。选手按动按扭,锁存相应的编号,并在LED数码管或LCD上显示,同时系统报警。优先抢答选手的编号一直保持到主持人将系统信号清除为止(4)抢答器具有定时抢答功能。当主持人启动“开始”键后,计时器进行计时,同时绿灯亮(可蜂鸣器替代或显示对应标志)。参赛选手在设定时间内进行抢答,抢答有效,定时器停止工作,绿灯灭,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止,如果定时时间已到,无人抢答,本次抢答无效,系

20、统报警。中途可以暂停。(5)显示定时时间,可倒数显示(6)定时时间进入最后十秒时,可用蜂鸣器提醒(7)显示北京时间,可调整 3.使用说明 本产品有三项功能,共有 16 个按键,可对秒表进行设置。在不同的功能项目下,按键具有不同的作用,详情见下表。抢答器模式 北京时间模式 13 号按键 主持人控制的开始按键 无 09,12,13 号按键 抢答选手的抢答按键 无 10 号按键 抢答选手的抢答按键 小时数加 1 11 号按键 抢答选手的抢答按键 分钟数加 1 14 号按键 主持人控制的暂停按键 小时数减 1 15 号按键 主持人控制的清零按键 分钟数减 1 七、心得体会 这次的单片机课程设计让我收获

21、颇丰。首先,我意识到平时扎实的基础是关键,只有平时学得牢,在面对课题时思路才会敏捷,在面对问题时才会快速找到症结所在并找到解决之道。其次,程序设计是个很复杂的过程,在大的构思实现之后我们往往还要在很多的细节上对程序加以改进。在过去的大学学习中,我们大多数接触的是专业课,我们在课堂上学习的也都是专业课的理论知识,为了锻炼我们的实践能力把所学的专业理论知识运用到实践中去,课程设计为我们搭建了这样一个练习的平台。模块 功能 按键 在这次课程设计中,我们培养了在实践中研究问题、分析问题和解决问题的能力,并意识到程序设计不仅要注重整体,更要注重细节;当程序运行过程中遇到问题时,我们要打开思路,发挥创新精

22、神,力求用最有效简洁的方法解决;遇到难以解决的困难时,我们要多多请教书本、老师、同学,坚持不懈,就算程序运行失败了也不要气馁。最后,通过单片机的课程设计,我更加懂得了团队合作。“众人拾柴火焰高”,只有大家一起努力做事,才能把事情尽早地完成。也只有明确的分工,合理的安排才能让整个团队的工作达到事半功倍的效果。课程设计是我们专业课程知识综合应用的实践训练,着实我们迈向社会,从事职业工作前一个必不少的过程。”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义。我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。同时感谢老师这几天的细心指导,没有老师的教育,我没办法把课程设计做得那么顺利,再次感谢老师。八参考文献 1 基于 ADuC848 嵌入式系统的实验和课程设计指导书 作者:银翔等 2.微型计算机原理及其应用,作者:彭楚武、张志文 3.十天学会单片机,作者:郭天祥 4.C 语言程序设计教程(第二版),作者:李丽娟 5.51 单片机应用开发从入门到精通,作者:胡启明、程钢 教师评语

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

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com