基于STC89C51的抢答器设计 - 图文(3)

2019-04-02 13:47

基于AT89C51的智能抢答器的设计

进入显示子程序先把选手的号码显示于01数码管,然后是选手的答题时间十秒钟倒计时显示,把个位显示在02数码管上,把十位显示在03数码管上,同时把倒计时的数值减1后存在61H和62H中,判断倒计时是否结束到0,结束的话返回调用,倒计时没有结束即继续倒计时。

4设计结果与分析

利用AT89C51单片机作为核心进行逻辑控制及信号的产生,设计的硬件控制电路和C语言程序,可以在很大程度上解决多个按键同时按下所造成的按键采样及锁定问题,使竞赛真正达到公正、公平、公开的目的,即使几组的抢答时间相差几微秒,也可以分辨出哪组优先答题,有利于产品的升级换代和智能化管理。实物图如图4-1所示。

图4-1 抢答器实物图

通过这次课程设计,我不仅深化了以前学过的的许多知识,还掌握了很多新的学习技巧。本次课程设计重在培养学生的自主设计能力和对重点知识的掌握,是以前所学知识的一个浓缩,具有很强的代表性、实践性、和理论性。本设计着重讲述了抢答器的工作过程和实验原理。在论述实验原理的过程中,分批次地讲述了个单元电路工作原理以及完成的功能。结合本设计的内容,指出了各单元电路的设计方法和意义,以及如何进行抢答控制。本次实验设计查询了许多有用的资料,包括芯片的逻辑功能及其拓展原理,

设计出相应的电路结构。通过仿真电

路检验和论证以及对电路的实现的难易程度的综合考虑,最后的选出了实验电路方案。电路设计是一个很灵活的东西,它反映了解决问题的逻辑思维和创新能力,它是一个设

10

菏泽学院本科微机原理与接口技术课程设计

计的灵魂所在。因此在整个设计过程中大部分时间是用在单元电路的理解和设计上面,最终达到了想要的效果。

参考文献:

[1] 朱红,刘静萍.微机原理与接口技术[M].北京:清华大学出版社,2011. [2] 郭天祥.51单片机C语言教程[M].北京:电子工业出版社,2009.

11

基于AT89C51的智能抢答器的设计

[3] 晶体管技术编辑部编.电子电路设计与制作[M].北京:科学出版社,2005. [4] 张洪润,吕泉,吴建平.电子线路及应用[M].北京:清华大学出版社,2005. [5] 付家才.电子工程实践技术[M].北京:化学工业出版社,2002. [6] 王松武.电子创新设计与实践[M].北京:国防工业出版社,2005.

附录 源程序

#include

12

菏泽学院本科微机原理与接口技术课程设计

#define uint unsigned int #define uchar unsigned char sbit SW1=P1^0; sbit SW2=P1^1; sbit SW3=P1^2; sbit SW4=P1^3; sbit SW5=P1^4; sbit SW6=P1^5; sbit SW7=P1^6; sbit SW8=P1^7; sbit START=P2^3; sbit ADD=P2^5; sbit DEC=P2^6; sbit A=P2^7;

// 开始,复位 // 加一 // 蜂鸣器 // 剩余时间十位 // 剩余时间个位//数码管显示字符 //键盘扫描函数声明 //显示函数声明 //延时函数声明 //复位函数声明 //拆分任意两位数 //默认剩余时间30秒

// P1^0到 P1^7八路抢答按钮

// 减一 //选手编号位

sbit H1=P2^0;

bai sbit H2=P2^1;

shi sbit H3=P2^2;

uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,}; void keyscan(); void delay(uint);

void display();

void FUWEI(); void qushu(); uint input=30;

//主函数开始// void main() {

TMOD=0x01;

uchar ge,shi,bai=0,n=1,m=0,t=0,temp; //定义变量

//设置定时器0为工作方式1.(M1M0为1)

TH0=(65536-46080)/256; //装初值。11.0592晶振定时50ms数为19456. TL0=(65536-46080)%6; //低位 EA=1; ET0=1;

//开启总中断 //开定时器0中断

13

基于AT89C51的智能抢答器的设计

{

//中断服务子程序每结束一次都回到原来点 //主程序死循环,保证抢答器一直运行下去

while(1)

keyscan();

qushu(); //依次扫描此3个函数

display();

}

}

//系统复位函数 void FUWEI()

{ TR0=0;

TH0=(65536-46080)/256; TL0=(65536-46080)%6; t=0;

A=0;

delay(500);

A=1; bai=0;

input=30;

}

void display()

{ H1=0; P0=table[bai];

delay(1); H1=1;

H2=0;

P0=table[shi]; delay(1); H2=1;

H3=0; P0=table[ge];

delay(1);

//关定时器

//重装初值 //低8位 //中断函数计数清零

//报警500毫秒

//选手编号清零 //设置剩余时间 //系统显示函数

//选手编号显示

//关一位数码管,保证选手编号位不被干扰

//剩余时间十位显示

//关二位数码管

//剩余时间个位显示

14


基于STC89C51的抢答器设计 - 图文(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:TRIM FROM工程作业指导书(SML)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: