单片机课程设计多路抢答器 - 图文

更新时间:2023-09-30 23:12:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

武汉理工大学华夏学院

信息工程课程设计报告书

课 程 名 称 单片微型计算机与接口技术 课程设计总评成绩 学生姓名、学 号 朱富鑫 10213314131 学 生 专 业 班级 物联网1141 指 导 教 师 姓名 苏明霞 课程设计起止日期 2016.6.13~2016.6.24

课程设计基本要求

课程设计是工科学生十分重要的实践教学环节,通过课程设计,培养学生综合运用先修课程的理论知识和专业技能,解决工程领域某一方面实际问题的能力。课程设计报告是科学论文写作的基础,不仅可以培养和训练学生的逻辑归纳能力、综合分析能力和文字表达能力,也是规范课程设计教学要求、反映课程设计教学水平的重要依据。为了加强课程设计教学管理,提高课程设计教学质量,特拟定如下基本要求。

1. 课程设计教学一般可分为设计项目的选题、项目设计方案论证、项目设计结果分析、答辩等4个环节,每个环节都应有一定的考核要求和考核成绩。 2. 课程设计项目的选题要符合本课程设计教学大纲的要求,该项目应能突出学生实践能力、设计能力和创新能力的培养;该项目有一定的实用性,且学生通过努力在规定的时间内是可以完成的。课程设计项目名称、目的及技术要求记录于课程设计报告书一、二项中,课程设计项目的选题考核成绩占10%左右。 3. 项目设计方案论证主要包括可行性设计方案论证、从可行性方案中确定最佳方案,实施最佳方案的软件程序、硬件电路原理图和PCB图。项目设计方案论证内容记录于课程设计报告书第三项中,项目设计方案论证主要考核设计方案的正确性、可行性和创新性,考核成绩占30%左右。

4. 项目设计结果分析主要包括项目设计与制作结果的工艺水平,项目测试性能指标的正确性和完整性,项目测试中出现故障或错误原因的分析和处理方法。项目设计结果分析记录于课程设计报告书第四项中,考核成绩占25%左右。 5. 学生在课程设计过程中应认真阅读与本课程设计项目相关的文献,培养自己的阅读兴趣和习惯,借以启发自己的思维,提高综合分和理解能力。文献阅读摘要记录于课程设计报告书第五项中,考核成绩占10%左右。

6. 答辩是课程设计中十分重要的环节,由课程设计指导教师向答辩学生提出2~3个问题,通过答辩可进一步了解学生对课程设计中理论知识和实际技能掌握的程度,以及对问题的理解、分析和判断能力。答辩考核成绩占25%左右。 7.学生应在课程设计周内认真参加项目设计的各个环节,按时完成课程设计报告书交给课程设计指导教师评阅。课程设计指导教师应认真指导学生课程设计全过程,认真评阅学生的每一份课程设计报告,给出课程设计综合评阅意见和每一个环节的评分成绩(百分制),最后将百分制评分成绩转换为五级分制(优秀、良好、中等、及格、不及格)总评成绩。

8. 课程设计报告书是实践教学水平评估的重要资料,应按课程、班级集成存档交实验室统一管理。

一、课程设计项目名称

多路抢答器

二、项目设计目的及技术要求

1. 四个独立的按键分为四路,每一个按键按下后对应的LED灯会亮。 2. 在数码管上显示09到00后开始抢答,抢答时四个按键有一个按下了则对应的LED灯会亮,其它按键无效,并且会把对应的编号显示在数码管上面,同时把对应的编号通过串口显示在上位机的串口助手上。

3. 抢答完毕后,如果重新开始,则在上位级的串口助手上发送A到单片机,单片机接受到后,开始新一轮的抢答,即继续完成第2个步骤。

如:在K1,K2,K3,K4都开始按的情况下,先判断谁先按下,那么其他键无效。再按也无效。

注:以上所有的功能都是用单片机来完成的。

三、项目设计方案论证(分析项目要求和指标,给出总的设计方案)

实际项目实现内容:

当主持人向串口发送字符“A”后,单片机接收到开始信号,然后LED点阵移动显示3,2,1,GO后,数码管从09到00倒计时显示,当显示到00时,抢答器可以开始抢答,当其中任何一方先按下按钮后,将其代表的号码显示到数码管上,并发送到串口上,同时锁住其他的按钮,让其他选手无法再次抢答。然后通过选手的回答,主持人判断对错后,在串口上发送“Y”,则在LED点阵上显示“对号”,如若回答错误,在串口上发送“N”,则在LED点阵上显示“X”。

设计方案:

通过对单片机程序的编写,调用LED灯,数码管,LED点阵,按键,以及串口部分,控制好单片机的时序,实现设计要求,并加入适当的拓展模块。 流程框图:

数码管显示选手 编号 按键模块 串口判断对错及重新开始 抢答完成标志 数码管倒计时 LED点阵显示

串口发送选手编号

LED灯及数码管模块:

由开发板原理图可知可以编写一个扫描函数,使用74HC138译码器实现对6个数码管以及LED灯的控制。代码如下: void LedScan() {

static unsigned char i = 0; P0 = 0xFF; P1 = (P1 & 0xF8) | i; P0 = LedBuff[i]; if (i < 7) i++; else i = 0; }

本文来源:https://www.bwwdw.com/article/zi2d.html

Top