六人抢答器实验报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机应用课程设计报告
(2012~2013学年第2学期)
设计题目:基于单片机抢答器的设计
班别:2011级自动化2班
姓名:
指导教师:
时间:2014年5月
1
基于MCS-51系列单片机AT89C51,设计一个八路抢答器。
2
2.1
2.1.1
数码显示管用来作为抢答结果的显示输出,一般用数码显示管。本次设计中采用共阴数码显示管应用简单、可靠性高、成本低,作为显示输出。
P3_7=0;
delay();
P3_7=1;
break;
}
if(P1==0xfd)
{
P2=0x02;
P0=num[1];
P3_7=0;
delay();
P3_7=1;
break;
}
if(P1==0xfb)
{
P2=0x04;
P0=num[2];
P3_7=0;
delay();
P3_7=1;
break;
}
if(P1==0xf7)
{
P2=0x08;
P0=num[3];
P3_7=0;
delay();
P3_7=1;
break;
}
if(P1==0xef)
{
P2=0x10;
P0=num[4];
P3_7=0;
delay();
P3_7=1;
bre源自文库k;
}
if(P1==0xdf)
{
P2=0x20;
P0=num[5];
P3_7=0;
delay();
unsigned char j;
for(i=0;i<3300;i++)
for(j=0;j<110;j++)
{;}
}
延时程序用于在抢答后蜂鸣器的发声时间。
5
5.1
用KEIL编写程序软件编写程序、经过Proteus仿真软件仿真调试之后,确认了此系统可正常运行,在这样的前提下,于是就尝试着做出了我们此次课程设计的第一块PCB板,在仔细检查了整个电路无误之后我们就开始了我们的尝试,第一块板的造型是深思熟虑之后才最终定稿的。实物如图6所示。
图9系统仿真图
(3)PCB板
设计使用的PCB如图所示
图10 PCB板反面
附录
程序清单
#include<reg51.h>
unsigned char num[8]={0xeb,0x52,0x4a,0xe8,0x4c,0xc4,0x6b}; //1到8
sbit P3_0=P3^0;
sbit P3_7=P3^7;
P1端口
按键电路
单片机
P0端口
数码管显示电路
图1抢答器总体设计方案图
3
3.1
单片机是电子时钟系统的主控制器。其最小系统主要由STC89C52单片机、晶振电路及单片机复位电路组成。
晶振系统由两个30pf的陶瓷电容和一个12MHz的晶振组成,分别接在XTAL1、XTAL2上,在单片机内部,这两个端口是一个反相放大器的输入端,这个放大器构成了片内振荡器,它决定了单片机的时钟周期。
图2单片机最小系统电路
3.2按键抢答电路
按键抢答是抢答器的基本电路,按键抢答一般由按键和上拉电阻构成。按键抢答电路图如图3所示。
图3 1302时钟电路
3.3二极管显示电路
二极管显示电路主要的作用是显示抢答到的对的灯。要进行校正调时,要首先按复位按钮,启动按键有效之后,其他按键才能被解锁,二极管显示电路如图4所示。
在整个方案的探究与决策中,我们自己动手分析设计程序加深了对自己未知知识的理解和对指令的灵活运用。通过对程序的编译和电路的仿真,让我们更加熟悉了仿真软件的应用,最重要的是使我们能够更直观的看到程序运行的结果,这给了我们极大地鼓励与信心!
此外,通过这次单片机课程设计,不仅对我们的动手能力有进一步的提高,而且还对我们的性格成长上也产生了很大的影响:设计操作量大,对我们的习惯和技能要求高,对我们的素质发展有着相当重要的作用,要在操作前应该认真学习理论知识,以便更好地指导实践,之后应该继续思考,把理论与实践更好地结合起来,凡事不能操之过急,静下心来,认真的思考,谨慎的处理好动手与动脑的有效结合。这种改变无疑让我们在以后的生活中能获取更多的益处与经验。
2.2
抢答器的工作原理是利用单片机的端口高低电平的给定来控制输出端口的高低电平来控制外电路,其余状态循环调用显示子程序,用1个共阴极LED数码管来显示,用P0口作为数码管的八个段选,P1口接8个按键,提供选手抢答,P3.0、P3.2两个接两个按键,提供开始、结束。
抢答功能:
通过八路按键配合程序来实现抢答功能。当主持人按下抢答键开始抢答后,此时任一路按下按钮均闭锁其它各路,由程序译码并显示最先按下抢答键的路数及其当前时间并立即转入答题阶段。
P3_7=1;
break;
}
if(P1==0xbf)
{
P2=0x40;
P0=num[6];
P3_7=0;
delay();
P3_7=1;
break;
}
if(P1==0x7f)
{
P2=0x80;
P0=num[7];
P3_7=0;
delay();
P3_7=1;
break;
}
}
}
}
}
void delay()
参考文献
[1]谭浩强主编. C程序设计题解与上机指导(第3版)[M].北京,清华大学出版社,2005.16-24
[2]谢维成杨家国董秀成,单片机原理与应用及C51程序设计(第2版)[M],北京,清华大学出版社,2009.7.25-36
附录1
(1)
系统总电路图,如图8所示。
图8系统总电路图
(
系统仿真图,如图
图4二极管显示电路
4
4.1主程序流程图
图5主程序流程图
开始时,先对变量进行初始化,判断复位按键P3.1是否按下,否则判断主持人开始按键P3.0是否按下,如果是则判断按键电路中哪个按键按下并在二极管显示电路和蜂鸣器有所显示。主程序流程图如图5所示。
4.2
4.2.1延时子程序
void delay()
{unsigned int i;
图6完成后的实物
最终我们完成了设计。完成的实物如图6所示。
图7实物背面
5.2
在课程设计中只有一个人知道原理是远远不够的,必须让每个人都明白该设计中每一个步骤式为什么要这样设计,否则一个人的错误,就有可能导致整个工作失败。团结协作式我们成功的一项非常重要的保证。而这次设计也正好锻炼我们这一点,这也是非常宝贵的。
单片机有一个复位引脚RST,高电平有效,只要RST保持高电平,单片机将循环复位,复位期间,ALE、PSEN输出高电平。RST从高电平变为低电平之后,PC指针变为0000H,使单片机从程序存储器地址为0000H的单元开始执行。当单片机执行程序出错或进入死循环时,也可按复位按钮重新启动。单片机最小系统如图2所示。
在这个过程中,我们也曾经因为汇编程序的掌握深度不够失落过,也曾经为仿真成功而热情高涨。生活就是这样,学习亦是如此,汗水预示着结果也见证者收获,劳动是人类生存生活永恒不变的话题。当课程设计完成时,那感觉是甜蜜的,没有耕耘,哪来的收获的喜悦,不懂付出怎么能知道回报的快乐,一份耕耘一份收获,就在这样的痛与快乐的交融中,我们学到了知识,学到了做人的道理。
这次的课程设计,我们学到了很多书本上没有详细介绍的东西
最大的收获是对单片机CPU,汇编语言,显示器等的进一步学习,加深了了解,使得课堂上学到的东西得到实践;同时,也开发了我们的创新思维,提高对事物的感性认知;此外,本次课程设计是我们对单片机原理与接口技术这门课程更加感兴趣,即使以后不接着往这一方面学下去,我们也会不断查阅相关书籍,增长这一方面的知识。
{unsigned int i;
unsigned char j;
for(i=0;i<3300;i++)
for(j=0;j<110;j++)
{;}
}
sbit P3_1=P3^1;
void delay();
void main()
{
P2=0x00;
P3_7=1;
while(1)
{
if(P3_1==0)
{
P2=0x00;
P0=0xFF; //全灭
}
if(P3_0==0)
{
while(1)
{
if(P1==0xfe)
{
P2=0x01;
P0=num[0];
(2012~2013学年第2学期)
设计题目:基于单片机抢答器的设计
班别:2011级自动化2班
姓名:
指导教师:
时间:2014年5月
1
基于MCS-51系列单片机AT89C51,设计一个八路抢答器。
2
2.1
2.1.1
数码显示管用来作为抢答结果的显示输出,一般用数码显示管。本次设计中采用共阴数码显示管应用简单、可靠性高、成本低,作为显示输出。
P3_7=0;
delay();
P3_7=1;
break;
}
if(P1==0xfd)
{
P2=0x02;
P0=num[1];
P3_7=0;
delay();
P3_7=1;
break;
}
if(P1==0xfb)
{
P2=0x04;
P0=num[2];
P3_7=0;
delay();
P3_7=1;
break;
}
if(P1==0xf7)
{
P2=0x08;
P0=num[3];
P3_7=0;
delay();
P3_7=1;
break;
}
if(P1==0xef)
{
P2=0x10;
P0=num[4];
P3_7=0;
delay();
P3_7=1;
bre源自文库k;
}
if(P1==0xdf)
{
P2=0x20;
P0=num[5];
P3_7=0;
delay();
unsigned char j;
for(i=0;i<3300;i++)
for(j=0;j<110;j++)
{;}
}
延时程序用于在抢答后蜂鸣器的发声时间。
5
5.1
用KEIL编写程序软件编写程序、经过Proteus仿真软件仿真调试之后,确认了此系统可正常运行,在这样的前提下,于是就尝试着做出了我们此次课程设计的第一块PCB板,在仔细检查了整个电路无误之后我们就开始了我们的尝试,第一块板的造型是深思熟虑之后才最终定稿的。实物如图6所示。
图9系统仿真图
(3)PCB板
设计使用的PCB如图所示
图10 PCB板反面
附录
程序清单
#include<reg51.h>
unsigned char num[8]={0xeb,0x52,0x4a,0xe8,0x4c,0xc4,0x6b}; //1到8
sbit P3_0=P3^0;
sbit P3_7=P3^7;
P1端口
按键电路
单片机
P0端口
数码管显示电路
图1抢答器总体设计方案图
3
3.1
单片机是电子时钟系统的主控制器。其最小系统主要由STC89C52单片机、晶振电路及单片机复位电路组成。
晶振系统由两个30pf的陶瓷电容和一个12MHz的晶振组成,分别接在XTAL1、XTAL2上,在单片机内部,这两个端口是一个反相放大器的输入端,这个放大器构成了片内振荡器,它决定了单片机的时钟周期。
图2单片机最小系统电路
3.2按键抢答电路
按键抢答是抢答器的基本电路,按键抢答一般由按键和上拉电阻构成。按键抢答电路图如图3所示。
图3 1302时钟电路
3.3二极管显示电路
二极管显示电路主要的作用是显示抢答到的对的灯。要进行校正调时,要首先按复位按钮,启动按键有效之后,其他按键才能被解锁,二极管显示电路如图4所示。
在整个方案的探究与决策中,我们自己动手分析设计程序加深了对自己未知知识的理解和对指令的灵活运用。通过对程序的编译和电路的仿真,让我们更加熟悉了仿真软件的应用,最重要的是使我们能够更直观的看到程序运行的结果,这给了我们极大地鼓励与信心!
此外,通过这次单片机课程设计,不仅对我们的动手能力有进一步的提高,而且还对我们的性格成长上也产生了很大的影响:设计操作量大,对我们的习惯和技能要求高,对我们的素质发展有着相当重要的作用,要在操作前应该认真学习理论知识,以便更好地指导实践,之后应该继续思考,把理论与实践更好地结合起来,凡事不能操之过急,静下心来,认真的思考,谨慎的处理好动手与动脑的有效结合。这种改变无疑让我们在以后的生活中能获取更多的益处与经验。
2.2
抢答器的工作原理是利用单片机的端口高低电平的给定来控制输出端口的高低电平来控制外电路,其余状态循环调用显示子程序,用1个共阴极LED数码管来显示,用P0口作为数码管的八个段选,P1口接8个按键,提供选手抢答,P3.0、P3.2两个接两个按键,提供开始、结束。
抢答功能:
通过八路按键配合程序来实现抢答功能。当主持人按下抢答键开始抢答后,此时任一路按下按钮均闭锁其它各路,由程序译码并显示最先按下抢答键的路数及其当前时间并立即转入答题阶段。
P3_7=1;
break;
}
if(P1==0xbf)
{
P2=0x40;
P0=num[6];
P3_7=0;
delay();
P3_7=1;
break;
}
if(P1==0x7f)
{
P2=0x80;
P0=num[7];
P3_7=0;
delay();
P3_7=1;
break;
}
}
}
}
}
void delay()
参考文献
[1]谭浩强主编. C程序设计题解与上机指导(第3版)[M].北京,清华大学出版社,2005.16-24
[2]谢维成杨家国董秀成,单片机原理与应用及C51程序设计(第2版)[M],北京,清华大学出版社,2009.7.25-36
附录1
(1)
系统总电路图,如图8所示。
图8系统总电路图
(
系统仿真图,如图
图4二极管显示电路
4
4.1主程序流程图
图5主程序流程图
开始时,先对变量进行初始化,判断复位按键P3.1是否按下,否则判断主持人开始按键P3.0是否按下,如果是则判断按键电路中哪个按键按下并在二极管显示电路和蜂鸣器有所显示。主程序流程图如图5所示。
4.2
4.2.1延时子程序
void delay()
{unsigned int i;
图6完成后的实物
最终我们完成了设计。完成的实物如图6所示。
图7实物背面
5.2
在课程设计中只有一个人知道原理是远远不够的,必须让每个人都明白该设计中每一个步骤式为什么要这样设计,否则一个人的错误,就有可能导致整个工作失败。团结协作式我们成功的一项非常重要的保证。而这次设计也正好锻炼我们这一点,这也是非常宝贵的。
单片机有一个复位引脚RST,高电平有效,只要RST保持高电平,单片机将循环复位,复位期间,ALE、PSEN输出高电平。RST从高电平变为低电平之后,PC指针变为0000H,使单片机从程序存储器地址为0000H的单元开始执行。当单片机执行程序出错或进入死循环时,也可按复位按钮重新启动。单片机最小系统如图2所示。
在这个过程中,我们也曾经因为汇编程序的掌握深度不够失落过,也曾经为仿真成功而热情高涨。生活就是这样,学习亦是如此,汗水预示着结果也见证者收获,劳动是人类生存生活永恒不变的话题。当课程设计完成时,那感觉是甜蜜的,没有耕耘,哪来的收获的喜悦,不懂付出怎么能知道回报的快乐,一份耕耘一份收获,就在这样的痛与快乐的交融中,我们学到了知识,学到了做人的道理。
这次的课程设计,我们学到了很多书本上没有详细介绍的东西
最大的收获是对单片机CPU,汇编语言,显示器等的进一步学习,加深了了解,使得课堂上学到的东西得到实践;同时,也开发了我们的创新思维,提高对事物的感性认知;此外,本次课程设计是我们对单片机原理与接口技术这门课程更加感兴趣,即使以后不接着往这一方面学下去,我们也会不断查阅相关书籍,增长这一方面的知识。
{unsigned int i;
unsigned char j;
for(i=0;i<3300;i++)
for(j=0;j<110;j++)
{;}
}
sbit P3_1=P3^1;
void delay();
void main()
{
P2=0x00;
P3_7=1;
while(1)
{
if(P3_1==0)
{
P2=0x00;
P0=0xFF; //全灭
}
if(P3_0==0)
{
while(1)
{
if(P1==0xfe)
{
P2=0x01;
P0=num[0];