电子智能抢答器(单片机)(一)信息工.docVIP

电子智能抢答器(单片机)(一)信息工.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
免费电子智能抢答器(单片机)(一)信息工.doc

  免费电子智能抢答器(单片机)(一)信息工 摘 要 随着电子技术的飞速发展,基于单片机的控制系统已广泛应用于工业、农业、电力、电子、智能楼宇等行业,微型计算机作为嵌入式控制系统的主体与核心,代替了传统的控制系统的常规电子线路。同时楼宇智能化的发展与成熟,也为基于单片机的照明控制系统的普及与应用奠定了坚实的基础。 电子智能抢答计分器在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答中,靠视觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。抢答组数可以在八组以内任意使用,本系统设计为模块形式采用九针插头进行连接,系统工作原理本系统采用AT89S51单片机作为核心。控制系统的五个模块分别为:单片机最小系统(六位并行数码显示、4*4矩阵式键盘)、显示模块、显示驱动模块、抢答开关模块、音乐音频输出模块。 关键词:单片机;矩阵式键盘;显示;驱动;抢答 引言 电子技术和微型计算机的迅速发展,促进微型计算机测量和控制技术的迅速发展和广泛应用,单片机(单片微型计算机)的应用已经渗透到国民经济的各个部门和领域,它起到了越来越重要的作用。单片微型计算机就是将中央处理单元、存储器、定时/计数器和多种接口都集成到一块集成电路芯片上的微型计算机。因此一块芯片就构成了一台计算机。它已成为工业控制领域、智能仪器仪表、尖端武器、日常生活中最广泛使用的计算机。 电子智能抢答器分别用两片单片机控制,分别为计分器和抢答器。计分器的工作原理是采用最小系统,用4x4键盘来输入是选手需要加减进行分数的加减输入。主板上的6个数码显示,加几分的数,按确定键后分数值从串口P3.0,P3.1传到计分器显示模块上再通过数码管驱动模块显示。抢答器的工作原理是采用单片机最小系统,用查询式键盘进行抢答。采用串行静态显示组号。 (作文网zPMAIN ORG0030H MAIN:MOVSP,#60H ACALLKEYSCAN;调用键盘扫描子程序判断是加分或减分 CJNEA,#0EH,NEXT2;不是加分键,则转移判断是减分键? NEXT1:ACALLKEYSZ;是加分键,调用键盘设置子程序 ACALLDISPLAY;调用串口静态显示子程序 SJMPMAIN NEXT2:CJNEA,#0FH,MAIN;都不是,则转MAIN AJMPNEXT1;是减分键,调用键盘设置子程序 ORG0100H KEYSZ:PUSHPSOVR0,#DBUF;R0指向显示缓冲区首地址 MOVR7,#3;设置键盘输入位数 L1:CLRRS1 ACALLKEYSCAN;调用键盘扫描子程序取按下键的键号 SETBRS1 CJNEA,#0AH,L2;键入数合法性检测(是否大于9) MOVR0,A;键号送显示缓冲区 INCR0 DJNZR7,L1;3位数值输入完否?未完继续,否则返回 POPACC POPPSOVR3, #0F7H;扫描初值(P1.3=0) MOVR1,#00H;取码指针 L3:MOVA,R3;开始扫描 MOVP1,A;将扫描值输出至P1 MOVA,P1;读入P1值,判断是否有键按下 MOVR4,A;存入R4,以判断按键是否放开 SETBC;C=1 MOVR5,#04H;扫描P1.4~P1.7 L4:RLCA;将按键左移一位 JNCKEYIN;判断C=0?有键按下则C=0,跳至KEYIN INCR1;C=1,则无键按下,将取码指针值加1 DJNZR5,L4;4列扫描完毕了吗? MOVA,R3;扫描值载入 SETBC;C=1 RRCA;扫描下一行(P1.3~P1.0) MOVR3,A;存回扫描寄存器 JCL3;C=1?是则P1.0尚未扫描到 SJMPKEYSCAN;C=0,则四行已扫描完毕 KEYIN:MOVR7,#60;延时消除抖动 D2:MOVR6,#248; DJNZR6,$; DJNZR7,D2; D3:MOVA,P1;延时后再读入P1值 9,A,B DB9CH,7AH,9EH,8EH ;C,D,+,- END DBUFEQU30H;三位显示缓冲区首址 ORG0000H AJMPMAIN ORG0030H MAIN:MOVSP,#60H ACALLKEYSCAN;调用键盘扫描子程序判断是加分或减分 CJNEA,#0EH,NEXT2;不是加分键,则转移判断是减分键? NEXT1:ACALLKEYSZ;是加分键,调用键盘设置子程序 ACALLDISPLAY;调用串口静态显示子程序 SJMPMAIN NEXT2:CJNEA,#0FH,MAIN;都不是,则转MAIN AJMPNEXT1;是减分键,调用键盘设置子程序 ORG0100H KEYSZ:PUSHPSOVR0,#DBUF;R0指向

您可能关注的文档

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档