单片机原理作业—电子答题器(课程及设计)

单片机原理作业

——电子答题器(课程设计)

探测一班

15xxxxxx09

xxx

目录

一、设计任务与选题2

1.作业设计任务2

2.作业设计选题2

二、系统原理与设计分析2

1.系统设计分析2

2.系统原理图设计3

三、程序流程图设计4

四、源程序设计5

1.按键查询程序5

2.声光提示程序6

3.提示灯旋转程序7

五、系统调试与仿真8

六、心得体会9

电子答题器(课程设计)

一、设计任务与选题

1.作业设计任务

查询相关资料,设计一个你自己最感兴趣的单片机系统。

2.作业设计选题

电子答题器是基于AT89C51、AT89C52单片机的电子答题系统,通过单刀多掷开关和答题按钮控制正确选项。在各种知识竞答的活动以及抽奖等游戏活动都可以应用。

二、系统原理与设计分析

1.系统设计分析

单片机的最小系统+数码管(共阴)+8个按钮+直流电动机+L298+二输入与门(可使用中断)+报警蜂鸣器+LED+单刀多掷开关

没有按键按下,则相应输入为高电平,否则为低电平。这样可通过读入AT89C51的P3口的数据来判断按下的是什么键。在有键按下后,要有一定的延时以防止抖动。当按键按下后,若单刀多掷开关拨至该按键,则低电平输入AT89C2051的P3.7端口,在单片机内,经查询、识别、判决等环节实时发出鸣笛状态控制信号,驱动电路将控制信号放大并推动声光鸣笛设备完成相应动作,同时波特率发生器通过程序控制产生PWM信号送给电机驱动芯片L298N的使能端口ENA,并通过输入端口IN1和IN2来控制电机的启动和停止。

最终实现按下相应的按键显示相应的选项数字,当按中答案时系统发出正确提示音并亮起旋转提示灯,按下复位键时数字显示为0,同时提示灯停止运转。

2.系统原理图设计

系统所用元件为单片机AT89C51、AT89C52、AT89C2051、CAP(30/0.1pF)、CAP-ELEC(22μF)、BUTTON、LED-RED、7SEG-COM-CATHODE、CRYSTAL(12MHz)、RES、MOTOR、L298、DIODE、AND_2、NPN、SPEARKER、IN4148。

电子答题器原理图如下图所示:

三、程序流程图设计

四、源程序设计

1.按键查询程序

#include

#define uint unsigned int

#define uchar unsigned char

uchar j;

uchar t;

uint n;

const uchar tab[]={0x3f,0x06,0x5b,

0x4f,0x66,0x6d,

0x7d,0x07,0x7f,0x6f};

void delay(uint n)

{ uint i;

for(i=0;i

}

void main(void)

{

uchar key;

P2=0x00;

P3=0xff;

while(1)

{

while(P3==0xff);

delay(2000);

while(P3==0xff);

key=P3;

switch(key)

{

case 0xfe:P2=tab[1];break;

case 0xfd:P2=tab[2];break;

case 0xfb:P2=tab[3];break;

case 0xf7:P2=tab[4];break;

case 0xef:P2=tab[5];break;

case 0xdf:P2=tab[6];break;

case 0xbf:P2=tab[7];break;

case 0x7f:P2=tab[0];break;

}

}

}

2.声光提示程序

#include

#include

#define uint unsigned int

#define uchar unsigned char

sbit zj=P3^7;

sbit bell=P1^3;

sbit red=P1^7;

void Delay100us()

{

uchar i,j;

_nop_();

_nop_();

i=2;

j=15;

do

{

while( --j);

}

while( --i);

}

void main(void)

{

uint z=0;

uchar a=0;

P3=0xff;

bell=1;

red=1;

while(1)

{

if(zj==0)

{

//bell=1;

bell=!bell;

red=0;

a=1;

Delay100us();

}

else

{

bell=0;

red=1;

a=0;

}

if(a==zj)

for(z=0;z<1000;z++)

{

bell=!bell;

red=0;

Dela

c语言 自动答题器,单片机原理作业—电子答题器(课程及设计).doc相关推荐

  1. 频域串联滞后校正matlab,自动控制原理实验七基于MATLAB控制系统频域法串联校正设计.doc...

    自动控制原理实验七基于MATLAB控制系统频域法串联校正设计.doc 实验七 基于MATLAB控制系统频域法串联校正设计 一.实验目的 (1)对给定系统设计满足频域或时域指标的串联校正装置: (2)掌 ...

  2. c51的八位智力抢答器C语言编程,基于AT89C51单片机的八位智力抢答器设计.doc

    基于AT89C51单片机的八位智力抢答器设计 江 西 理 工 大 学 南 昌 校 区 毕 业 设 计(论文) 题 目:八位智力抢答器 系 :信息工程系 专 业:应用电子技术 班 级: 学 生: 学 号 ...

  3. 集美大学单片机c语言,2018年集美大学单片机原理及其应用考研大纲

    资源大小:0.1-10.0 MB 资源类型: rar 发布时间: 2020/5/14 23:35:45 资源评分: ★★★ 资源简介: 2018年集美大学单片机原理及其应用考研大纲 下载流程: 考研真 ...

  4. ht66f 单片机 c语言版,HT66Fxx Flash单片机原理与实践(附光盘C语言篇)

    导语 钟启仁编著的<HT66Fxx Flash单片机原理与实践(C语言篇)>主要针对HT66x0系列单片机的特性.功能及相关的外围模块,并以Holtek C语言编写应用程序,编辑成一系列的 ...

  5. 单总线和i2c总线结合实现数字温度计的设计c语言程序,1《单片机原理应用》课程设计指导书2010-6-8.doc...

    1<单片机原理应用>课程设计指导书2010-6-8 <单片机原理与应用>课程设计指导书 一.课程设计的基本任务 本课程设计的基本要求是使学生熟悉掌握MCS-51系列单片机的编程 ...

  6. 《单片机原理及应用》(B)课程教学大纲

    一.课程基本信息 1.课程编号:L08179 2.学分:3.5学分 3.学时:56(理论32,实验24) 4.适用专业:电气工程及其自动化.自动化等 二.课程教学目标及学生应达到的能力 本课程是为电气 ...

  7. 单片机原理及应用 实验七 直流数字电压表设计

    单片机原理及应用(C51版) 实验目的及要求: 1.掌握LED动态显示和A/D转换接口设计方法: 2.按照教材图A.94 .绘制实验7基本电路原理图: 3.采用L ED动态显示原理和查询法AD转换编程 ...

  8. 计算机微机原理及接口技术实训室,《微机原理与接口技术》课程实验报告.doc...

    <微机原理与接口技术>课程实验报告 实验一基本操作 一.实验目的 ? 1.熟悉Netlab MCS-51单片机实验系统的设置和使用方法 2.掌握基本MCS-51软件的编写.修改和编译的方法 ...

  9. 兰州理工大学2019C语言试题,兰州理工大学微机原理作业纸习题答案

    (唐丁宪奉上) ​第一章微型计算机概论 1.1.答:微型计算机系统包括硬件系统和软件系统两大部分.硬件系统包括:微型计算机.外部设备.电源及其它辅助设备.软件系统包括:系统软件和应用软件. 微型计算机 ...

  10. c语言自动生成版本号,单片机C程序自动产生并增加版本号

    工作原理:很简单地说,运行Version.exe生成一个"version.h"头文件,文件的内容如下: #ifndef VERSION_H_INCLUDED #define VER ...

最新文章

  1. mysql中tinyint(1)与tinyint(2)的区别
  2. 八年级计算机软件,信息技术(南方出版社) 八年级下册教案(共14课)
  3. 上传文件到ftp服务器
  4. 第一章信息安全基础考试要点及真题分布
  5. 【BZOJ3999】旅游,树链剖分中的有向信息合并
  6. windows常见快捷键
  7. 忍不住了, 和大家聊聊怎么写简历吧, 关于简历的深度思考
  8. Flutter基础—常用控件之文本
  9. jQuery-实例方法
  10. 基于京东家电商品知识图谱的自动问答系统(三) -- Java实现问答系统
  11. Django 数据流程图
  12. css3简记,了解一下?
  13. ADO.NET Entity Framework(3)ObjectContext
  14. APICloud连接夜神模拟器--博客园老牛大讲堂
  15. OPNET14.5+WIN10+VS2010安装教程(附安装包)
  16. bean的生命周期(最全最细讲解)
  17. 机器学习中的正则化项(L1, L2)的理解
  18. 简单的博客页面客制化 v2
  19. server多笔记录拼接字符串 sql_第四章、SQL Server数据库查询大全(单表查询、多表连接查询、嵌套查询、关联子查询、拼sql字符串的查询、交叉查询)...
  20. keil MDK AC6设置noinit的用法

热门文章

  1. 自动量程万用表的实现原理_自动量程万用表模块设计方案[图]
  2. Django报错:'Specifying a namespace in include() without providing an app_name '
  3. [转][darkbaby]任天堂传——失落的泰坦王朝(下)
  4. EditPlus文本编辑器,中文与破解实战
  5. Graphics.DrawLine 方法
  6. 分享使用iphone4的60条技巧
  7. 【MATLAB】修改黑色炫酷主题darcula.prf
  8. nginx配置lua脚本
  9. UE4教程:虚幻4引擎(Unreal Engine 4)学习指南
  10. 全国大学生电子设计竞赛(五)--开关电源的设计