单片机课程设计.docx
- 文档编号:27284872
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:21
- 大小:120.71KB
单片机课程设计.docx
《单片机课程设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计.docx(21页珍藏版)》请在冰豆网上搜索。
单片机课程设计
东北石油大学
课程设计
课程单片机课程设计
题目基于单片机的电子抢答器
院系电气信息工程学院测控系
专业班级
学生姓名
学生学号
指导教师
2012年7月8日
东北石油大学课程设计任务书
课程单片机课程设计
题目基于单片机的电子抢答器
专业姓名学号
一、任务
设计一款基于AT89C51单片机的电子抢答器,能够应用于竞赛的六路抢答器。
二、设计要求
1、六位选手可以通过相应的按键执行竞赛抢答。
2、当主持人按下开始键时,各位选手开始抢答。
当一位选手抢答成功时,其他选手再次按抢答键,操作无效;选手回答完问题后,主持人按下复位键,抢答操作可以正常执行。
3、显示每位选手的分数。
4、写出详细的设计报告。
5、给出全部电路和源程序。
三、参考资料
[1]万光毅.单片机实验与实践教程[M].北京:
北京航空航天大学出版社.2005.1.
[2]张毅刚.单片机原理及应用[M].北京:
高等教育出版社.2003:
160-190.
[3]马忠梅.单片机的C语言应用程序设计[M]..北京:
北京航空航天大学出社.2006
[4]周润景.基于Proteus的电路与单片机仿真系统设计与仿真[M].北京:
北京航空航天大学出版社.2005.
完成期限2012.6.29至2012.7.8
指导教师
专业负责人
2012年6月29日
目录
第1章绪论1
1.1设计背景及意义1
1.2AT89C51单片机概述1
1.3抢答器的发展状况1
1.4本设计任务2
第2章方案论证与设计3
2.1数码管显示模块3
2.2按键调整模块3
2.3总体电路设计方案3
第3章硬件电路设计5
3.1单片机最小系统5
3.2LED驱动电路5
3.3矩阵键盘电路6
3.4蜂鸣器电路7
3.5数码管显示电路7
第4章系统的软件设计8
4.1系统总流程图8
4.2数码管显示框图9
第5章系统调试与测试结果分析10
5.1系统调试10
5.2测试结果10
结论11
参考文献12
附录1程序13
附录2仿真效果图18
第1章绪论
1.1设计背景及意义
进入21世纪越来越来多的电子产品出现在人们的日常生活中,例如企业、学校和电视台等单位常举办各种智力竞赛,抢答记分器是必要设备。
过去在举行的各种竞赛中我们经常看到有抢答的环节,举办方多数采用让选手通过举答题板的方法判断选手的答题权,这在某种程度上会因为主持人的主观误断造成比赛的不公平性。
人们于是开始寻求一种能不依人的主观意愿来判断的设备来规范比赛。
因此,为了克服这种现象的惯性发生人们利用各种资源和条件设计出很多的抢答器,从最初的简单抢答按钮,到后来的显示选手号的抢答器,再到现在的数显抢答器,其功能在一天的趋于完善不但可以用来倒计时抢答,还兼具报警,计分显示等等功能,有了这些更准确地仪器使得我们的竞赛变得更加精彩纷呈,也使比赛更突显其公平公正的原则。
1.2AT89C51单片机概述
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
其主要特征为:
与MCS-51兼容 ;4K字节可编程闪烁存储器 ;数据保留时间:
10年;全静态工作:
0Hz-24Hz;三级程序存储器锁定;128*8位内部RAM;32可编程I/O线;两个16位定时器/计数器;5个中断源 ;可编程串行通道;低功耗的闲置和掉电模式;片内振荡器和时钟电路[1]。
1.3抢答器的发展状况
随着电子技术的进步,出现了以二极管编码方式作为主要电路的最基本电子抢答器和用继电器做转换的电子抢答器(哪组选手抢答到了他们面前的灯就亮起)当然这种抢答器现在看来是很简单且低级,但当时做出一套这样的抢答器价格都很高的。
后来随着改革开放不断深入,各方面要求需要更公平,这时基本型电子抢答器问世了。
基本型电子抢答器基本功能:
带优先抢答功能、自动发出开始指令、且抢答完成后可以显示对应台号及“叮咚”提示。
计分方式采用手翻记分牌。
再后来带语音提示的智能抢答器问世。
语音抢答器基本功能:
带抢答功能和电子计分功能,可以发出“321开始”指令,自动判断抢答成功及抢答犯规的台号。
并能语音报出“XX号台抢答成功”或“XX号台犯规”。
选手得分可以自动加减并电子屏显示。
1.4本设计任务
设计一款基于AT89C51单片机的电子抢答器,能够应用于竞赛的六路抢答器。
主要包括:
单片机最小系统,LED显示电路,矩阵键盘电路,继电器电路,蜂鸣器电路和数码管显示电路。
第2章方案论证与设计
2.1数码管显示模块
方案一:
采用静态锁存方式。
将每一个LED发光管的一端接至单片机的一个I/O口,另一端通过电阻接电源。
这种方法可以直接驱动LED,原理简单,驱动能力强,LED的亮度也可以通过限流电阻调节,非常方便,但此种方法太浪费单片机的I/O口,只适合于较小的系统。
方案二:
采用动态扫描方式。
通过三极管驱动并联在一起的LED发光管的一端(共阴或共阳端),LED发光管的另一脚接通用I/O口,控制其亮灭。
该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。
比较以上两种方案,系统设计中采用方案二。
2.2按键调整模块
方案一:
采用矩阵键盘方式。
将所有的按键组成矩阵键盘形式。
此方法主要应用于按键数目较多的场合,它由行线和列线组成,按键位于行、列的交叉点上。
此方法可以大大的减少I/O口线,但编程复杂。
方案二:
采用独立键盘方式。
独立键盘就是各按键相互独立,每个按键各接一根输入线,可以检测输入线的电平状态来判断那个按键被按下。
独立键盘编程简单,但电路复杂,输出线较多。
比较以上二种方案,方案一有明显的优点,因此选者方案一。
2.3总体电路设计方案
本设计主要包括:
单片机最小系统,LED显示电路,矩阵键盘电路,继电器电路,蜂鸣器电路和数码管显示电路。
基本要求:
(1)六位选手可以通过相应的按键执行竞赛抢答。
(2)当主持人按下开始键时,各位选手开始抢答。
当一位选手抢答成功时,其他选手再次按抢答键,操作无效;选手回答完问题后,主持人按下复位键,抢答操作可以正常执行。
总体硬件框图如图2-3所示:
图2-3总体硬件框图
第3章硬件电路设计
3.1单片机最小系统
单片机最小系统如图3-1所示,其基本组成为:
晶振电路,复位电路。
该控制系统的核心芯片采用的是STC89C51。
AT89C51是一种带4K字节闪烁可编程可擦除的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器[2]。
本设计的最小系统由STC单片机,电容和晶振组成。
上电瞬间,电源经复位电容向单片机发送一个高电平信号,使单片机复位。
同时晶振起振,使单片机工作。
晶振的大小可根据实际需要进行选择,常用的晶振有11.0592M,12M等。
本设计使用12M晶振。
图3-1单片机最小系统
3.2LED驱动电路
LED驱动电路如图3-2所示,主要由锁存器74LS573,继电器(5V驱动),LED灯(12V驱动),三极管组成。
锁存器用于锁存来自I/O口的高低电平;继电器用于控制LED灯的打开与关闭;三极管用于驱动继电器。
当选手抢答成功时,锁存器存放I/O口高低电平,来控制三极管的导通与截止,从而控制成功抢答的选手相对应的LED灯亮。
74LS573原理:
74LS573的八个锁存器都是透明的D型锁存器,当使能(G)为高时,Q输出将随数据(D)输入而变。
当使能为低时,输出将锁存在已建立的数据电平上。
输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。
这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。
特别适用于缓冲寄存器,I/O通道,双向总线驱动器和工作寄存器[4]。
图3-2LED驱动电路图
3.3矩阵键盘电路
八个按键组成矩阵键盘。
采用矩阵键盘方式既:
将所有的按键组成矩阵键盘形式。
此方法主要应用于按键数目较多的场合,它由行线和列线组成,按键位于行、列的交叉点上。
此方法可以大大的减少I/O口线,但编程复杂。
图3-3矩阵键盘电路图
3.4蜂鸣器电路
蜂鸣器电路如图3-4所示,三极管用于驱动蜂鸣器,当单片机给BELL端低电平时,蜂鸣器发出响声[5]。
图3-4蜂鸣器电路图
3.5数码管显示电路
数码管显示电路如图3-5所示。
本设计采用六个8段码共阳数码管显示,采用动态显示的方法对其进行点亮。
动态显示:
通过三极管驱动并联在一起的LED发光管的一端(共阴或共阳端),LED发光管的另一脚接通用I/O口,控制其亮灭。
该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源[6]。
图3-5数码管显示电路图
第4章系统的软件设计
4.1系统总流程图
图4-1系统总流程图
系统运行时首先按键K1按下,然后进行键盘扫描,当用按键按下时,单片机驱动LED灯亮和蜂鸣器响,随后进行加减的键盘扫描,针对情况进行加减分,
然后系统进行下一循环[7]。
4.2数码管显示框图
图4-2数码管显示框图
第5章系统调试与测试结果分析
5.1系统调试
根据系统设计方案,本系统的调试只进行软件调试。
软件调试采用单片机仿真软件proteus。
由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试:
LED驱动电路的调试,矩阵键盘电路的调试,继电器电路的调试等,最后将各模块电路组合后进行整体测试[8]。
5.2测试结果
此次系统设计结果较好,各部分正常运行,达到预期效果。
测试效果图见附录2。
结论
本设计是基于AT89C51单片机的能够应用于竞赛的6路抢答器。
通过查阅资料和和翻阅文献的途径完成了本设计,并达到了设计要求。
本设计共由5大基本模块电路组成,既数码管显示电路,蜂鸣器电路,矩阵键盘电路,LED驱动电路,单片机最小系统。
通过软件proteus的仿真调试,实现了本次设计的基本功能:
六位选手可以通过相应的按键执行竞赛抢答;当主持人按下开始键时,各位选手开始抢答。
当一位选手抢答成功时,其他选手再次按抢答键,操作无效;选手回答完问题后,主持人按下复位键,抢答操作可以正常执行。
本设计共由三大优点。
其一:
本设计连接电路简单,都采用最基本的电器元件组成;其二:
本着经济实惠的原则,本设计均采用的性价比高的电器元件,所以本设计有着广大的市场前景;其三:
本设计满足了抢答器的所有功能,又增加了同类产品未有的功能,但操作却非常简单。
参考文献
[1]万光毅.单片机实验与实践教程[M].北京:
北京航空航天大学出版社.2005.1.
[2]张毅刚.单片机原理及应用[M].北京:
高等教育出版社.2003:
160-190.
[3]喻萍,郭文川.单片机原理与接口技术[M].北京:
化学工业出版社,2005
[4]张志良.单片机原理与控制技术[M].西安:
电子科技大学出版社.2006
[5]刘同发,陈忠平,彭继卫.单片机外围接口电路与工程实践[M].北京:
北京航空航天大学出版社,2008.3:
6-23
[6]周润景.基于Proteus的电路与单片机仿真系统设计与仿真[M].北京:
北京航空航天大学出版社.2005.
[7]金炯泰,金奎焕.如何使用KEIL8051C编译器[M].北京:
北京航空航天大学出版社.2002.
[8]马忠梅.单片机的C语言应用程序设计[M].北京:
北京航空航天大学出社.2006
附录1程序
#include
#include
sbitbell=P3^6;
sbitkr=P3^4;
sbitu2=P3^7;
intnum,temp,flag=0;
inteveryone_score[6]=0;
intcode_num[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
voiddelay(intz)
{
intx,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}
voidkeyscan_1()
{
P1=0xfe;
temp=P1;
temp=temp&0x3c;
while(temp!
=0x3c)
{
delay(5);
temp=P1;
temp=temp&0x3c;
while(temp!
=0x3c)
{
temp=P1;
switch(temp)
{
case0xfa:
num=1;
break;
case0xf6:
num=2;
break;
case0xee:
num=3;
break;
case0xde:
num=4;
break;
}
while(temp!
=0x3c)
{
temp=P1;
temp=temp&0x3c;
}
}
}
P1=0xfd;
temp=P1;
temp=temp&0x3c;
while(temp!
=0x3c)
{
delay(5);
temp=P1;
temp=temp&0x3c;
while(temp!
=0x3c)
{
temp=P1;
switch(temp)
{
case0xf9:
num=5;
break;
case0xf5:
num=6;
break;
}
while(temp!
=0x3c)
{
temp=P1;
temp=temp&0x3c;
}
}
}
}
intkeyscan_2(intscore)
{
P1=0xfd;
temp=P1;
temp=temp&0x3c;
while(temp!
=0x3c)
{
delay(5);
temp=P1;
temp=temp&0x3c;
while(temp!
=0x3c)
{temp=P1;
switch(temp)
{
case0xed:
score++;
break;
case0xdd:
score--;
break;
}
while(temp!
=0x3c)
{
temp=P1;
temp=temp&0x3c;
}
}
}
returnscore;
}
voiddisplay(intscore)
{
P0=code_num[score];
}
voiddisplay_all_score()
{
P2=0x01;
display(everyone_score[0]);delay
(1);
P2=0x02;
display(everyone_score[1]);delay
(1);
P2=0x04;
display(everyone_score[2]);delay
(1);
P2=0x08;
display(everyone_score[3]);delay
(1);
P2=0x10;
display(everyone_score[4]);delay
(1);
P2=0x20;
display(everyone_score[5]);delay
(1);
}
voidjidianqi(intaa)
{
u2=1;
switch(aa)
{case1:
P1=0xfe;u2=0;break;
case2:
P1=0xfd;u2=0;break;
case3:
P1=0xfb;u2=0;break;
case4:
P1=0xf7;u2=0;break;
case5:
P1=0xef;u2=0;break;
case6:
P1=0xdf;u2=0;break;
default:
P1=0xff;u2=0;}
}
voidT_bell()
{bell=0;
delay(1000);
bell=1;
}
voidrecovery()
{
if(kr==0)
{delay(5);
if(kr==0)
{flag=1;
num=0;
}
while(!
kr);
}
u2=1;
P1=0xff;
u2=0;
}
voidmain()
{
u2=1;
P1=0xff;
u2=0;
while
(1)
{display_all_score();
recovery();
while(flag)
{display_all_score();
keyscan_1();
if(num)
{jidianqi(num);
T_bell();
while(num)
{display_all_score();
everyone_score[num-1]=keyscan_2(everyone_score[num-1]);
if(everyone_score[num-1]>9||everyone_score[num-1]<0)
everyone_score[num-1]=0;
recovery();
}
}
}
}
}
附录2仿真效果图
东北石油大学课程设计成绩评价表
课程名称
单片机课程设计
题目名称
基于单片机的电子抢答器
学生姓名
学号
指导教
师姓名
职称
序号
评价项目
指标
满分
评分
1
工作量、工作态度和出勤率
按期圆满的完成了规定的任务,难易程度和工作量符合教学要求,工作努力,遵守纪律,出勤率高,工作作风严谨,善于与他人合作。
20
2
课程设计质量
课程设计选题合理,计算过程简练准确,分析问题思路清晰,结构严谨,文理通顺,撰写规范,图表完备正确。
45
3
创新
工作中有创新意识,对前人工作有一些改进或有一定应用价值。
5
4
答辩
能正确回答指导教师所提出的问题。
30
总分
评语:
指导教师:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计