《单片机原理与应用》课程大作业特定软硬件系统设计-竞赛抢答器的设计报告

《单片机原理与应用》课程大作业

特定软硬件系统设计-竞赛抢答器的

设计报告

目录

  1. 概述……....................................................................................................................

  1. 系统总体设计方案……............................................................................................

  1. 硬件电路设计及描述……........................................................................................

  1. 软件设计流程及描述……........................................................................................

  1. 系统实验过程、测试结果与分析……......................................................................

  1. 项目设计体会……....................................................................................................

附录

  1. 概述

现阶段考虑为学校“一战到底抢答”比赛提供方便,设计一款选手抢答倒计时单片机系统,达到方便主持人操作,对选手公平的一款作品;系统包括主持人按键模块,选手按键模块,声音模块,倒计时模块,选手显示模块等,达到比赛的要求。

  1. 系统总体设计方案

系统整体方案:系统以at89c51单片机为结构,由主持人按键输入模块,选手按键输入模块,单片机自带复位模块和时钟模块组成输入模块;连接SOUNDER模块输出音量,连接Mx7219控制倒计时显示模块和选手显示模块。

  1. 硬件电路设计及描述

选手按键模块:八个开关(BUTTON)分别连接单片机(AT89C51)P1口的0~7个引脚,另一端接地。

主持人按键模块:两个按钮(BUTTON)连接单片机(AT89C51)P2口的0~1引脚,另一端接地。

SOUNDER模块:喇叭(SOUNDER)连接单片机P3口的7引脚。

MAX7219多位LED显示驱动器(MAX7219)连接单片机(AT89C51)P3口的0~2引脚,ISET口连接电阻CAP与SOUNDER共用电源,DOUT接地。

倒计时显示模块:7SEG-MPX2-CC-BLUE的A、B、C、D、E、DP、1、2口连接芯片(MAX7219)的A、B、C、D、E、F、G、DP、DIG0、DIG1引脚

选手显示模块:7SEG-MPX2-CC的A、B、C、D、E、DP、1、2口连接芯片(MAX7219)的A、B、C、D、E、F、G、DP、DIG2、DIG3引脚。

  1. 软件设计流程及描述

总程序:程序开始,运行While(1)循环,进入抢答模块,等待Begin的触发,

初始化芯片、中断,开始中断,运行倒计时模块、选手抢答模块,等待计时模块结束或选手抢答模块的触发,结束中断,输出结果。

5、系统实验过程、测试结果与分析

过程:设计系统整体方案,设计主程序流程图,模块程序流程图,借鉴源码完成代码文件,完成仿真图,输出结果。

结果:按下BTN10,程序开始运行倒计时30s(7SEG-MPX2-CC-BLUE),按下按键BNT1-BNT8(BUTTON)其中任意一个,选手显示模块(7SEG-MPX2-CC)显示对应选手编号,程序停止,或时间结束,程序停止。

分析:

启动程序仿真

点击开始按钮

四号抢答,时间停止

四号回答错误,点击开始,继续答题,五号抢答

回答正确,点击修改时间,重置倒计时

无人抢答,倒计时归零

点击修改时间,进行加时

一号抢答,时间停止

加时时间最长59秒

6、项目设计体会   

在程序设计中,首先了解MAX7219芯片的作用,查阅百度,明白了多位LED显示驱动的作用,根据操作手册来完成仿真图的规划,一开始7SEG-MPX2-CC-BLUE选用了7SEG-MPX2-CA-BLUE,导致倒计时出不来,课堂上询问老师后,确定代码没问题,元器件的问题,所以元器件的选取一定不能搞错。软件流程的设计需要分块处理,在模块化编程中,需要先整体在局部的思想,先设计出总体的框架流程,然后再细化每个模块的作用,让系统完整并调试运行,后期设想,能否在AT89C51上实现以上功能,并且放弃掉MAX7219芯片。(尝试中)

附录:系统主程序

void main()

{

  while(1)

  {

  do{

    holderscan();

  }while(begin);//开始前进行设置,若未按下开始键

  while(~begin);//防抖

  max7219_init(); //芯片初始化

  timer_init();      //中断初始化

  TR0=1;             //开始中断

  do{

    time_display(second);

       scare_display(people);

       people=keyscan();

  }while((!people)&&(second));//运行直到抢答结束或之间运行结束   

  TR0=0;

  }

}

  • 40
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TvT<

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值