c语言 自动答题器,单片机原理作业—电子答题器(课程及设计).doc
单片机原理作业—电子答题器(课程及设计)
单片机原理作业
——电子答题器(课程设计)
探测一班
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相关推荐
- 频域串联滞后校正matlab,自动控制原理实验七基于MATLAB控制系统频域法串联校正设计.doc...
自动控制原理实验七基于MATLAB控制系统频域法串联校正设计.doc 实验七 基于MATLAB控制系统频域法串联校正设计 一.实验目的 (1)对给定系统设计满足频域或时域指标的串联校正装置: (2)掌 ...
- c51的八位智力抢答器C语言编程,基于AT89C51单片机的八位智力抢答器设计.doc
基于AT89C51单片机的八位智力抢答器设计 江 西 理 工 大 学 南 昌 校 区 毕 业 设 计(论文) 题 目:八位智力抢答器 系 :信息工程系 专 业:应用电子技术 班 级: 学 生: 学 号 ...
- 集美大学单片机c语言,2018年集美大学单片机原理及其应用考研大纲
资源大小:0.1-10.0 MB 资源类型: rar 发布时间: 2020/5/14 23:35:45 资源评分: ★★★ 资源简介: 2018年集美大学单片机原理及其应用考研大纲 下载流程: 考研真 ...
- ht66f 单片机 c语言版,HT66Fxx Flash单片机原理与实践(附光盘C语言篇)
导语 钟启仁编著的<HT66Fxx Flash单片机原理与实践(C语言篇)>主要针对HT66x0系列单片机的特性.功能及相关的外围模块,并以Holtek C语言编写应用程序,编辑成一系列的 ...
- 单总线和i2c总线结合实现数字温度计的设计c语言程序,1《单片机原理应用》课程设计指导书2010-6-8.doc...
1<单片机原理应用>课程设计指导书2010-6-8 <单片机原理与应用>课程设计指导书 一.课程设计的基本任务 本课程设计的基本要求是使学生熟悉掌握MCS-51系列单片机的编程 ...
- 《单片机原理及应用》(B)课程教学大纲
一.课程基本信息 1.课程编号:L08179 2.学分:3.5学分 3.学时:56(理论32,实验24) 4.适用专业:电气工程及其自动化.自动化等 二.课程教学目标及学生应达到的能力 本课程是为电气 ...
- 单片机原理及应用 实验七 直流数字电压表设计
单片机原理及应用(C51版) 实验目的及要求: 1.掌握LED动态显示和A/D转换接口设计方法: 2.按照教材图A.94 .绘制实验7基本电路原理图: 3.采用L ED动态显示原理和查询法AD转换编程 ...
- 计算机微机原理及接口技术实训室,《微机原理与接口技术》课程实验报告.doc...
<微机原理与接口技术>课程实验报告 实验一基本操作 一.实验目的 ? 1.熟悉Netlab MCS-51单片机实验系统的设置和使用方法 2.掌握基本MCS-51软件的编写.修改和编译的方法 ...
- 兰州理工大学2019C语言试题,兰州理工大学微机原理作业纸习题答案
(唐丁宪奉上) 第一章微型计算机概论 1.1.答:微型计算机系统包括硬件系统和软件系统两大部分.硬件系统包括:微型计算机.外部设备.电源及其它辅助设备.软件系统包括:系统软件和应用软件. 微型计算机 ...
- c语言自动生成版本号,单片机C程序自动产生并增加版本号
工作原理:很简单地说,运行Version.exe生成一个"version.h"头文件,文件的内容如下: #ifndef VERSION_H_INCLUDED #define VER ...
最新文章
- mysql中tinyint(1)与tinyint(2)的区别
- 八年级计算机软件,信息技术(南方出版社) 八年级下册教案(共14课)
- 上传文件到ftp服务器
- 第一章信息安全基础考试要点及真题分布
- 【BZOJ3999】旅游,树链剖分中的有向信息合并
- windows常见快捷键
- 忍不住了, 和大家聊聊怎么写简历吧, 关于简历的深度思考
- Flutter基础—常用控件之文本
- jQuery-实例方法
- 基于京东家电商品知识图谱的自动问答系统(三) -- Java实现问答系统
- Django 数据流程图
- css3简记,了解一下?
- ADO.NET Entity Framework(3)ObjectContext
- APICloud连接夜神模拟器--博客园老牛大讲堂
- OPNET14.5+WIN10+VS2010安装教程(附安装包)
- bean的生命周期(最全最细讲解)
- 机器学习中的正则化项(L1, L2)的理解
- 简单的博客页面客制化 v2
- server多笔记录拼接字符串 sql_第四章、SQL Server数据库查询大全(单表查询、多表连接查询、嵌套查询、关联子查询、拼sql字符串的查询、交叉查询)...
- keil MDK AC6设置noinit的用法
热门文章
- 自动量程万用表的实现原理_自动量程万用表模块设计方案[图]
- Django报错:'Specifying a namespace in include() without providing an app_name '
- [转][darkbaby]任天堂传——失落的泰坦王朝(下)
- EditPlus文本编辑器,中文与破解实战
- Graphics.DrawLine 方法
- 分享使用iphone4的60条技巧
- 【MATLAB】修改黑色炫酷主题darcula.prf
- nginx配置lua脚本
- UE4教程:虚幻4引擎(Unreal Engine 4)学习指南
- 全国大学生电子设计竞赛(五)--开关电源的设计