基于单片机AT89C51控制的键控流水灯课程设计报告.docx
《基于单片机AT89C51控制的键控流水灯课程设计报告.docx》由会员分享,可在线阅读,更多相关《基于单片机AT89C51控制的键控流水灯课程设计报告.docx(29页珍藏版)》请在冰点文库上搜索。
基于单片机AT89C51控制的键控流水灯课程设计报告
宁波技师学院
课程设计报告
论文题目键控流水灯
摘要:
单片机是一种集成电路芯片,采用超大规模技术,把具有数据处理能力的微处理器、随机存取数据存储器、只读程序存储器、输入输出电路、可能还包括定时计数器、串口通信口、显示驱动电路,脉宽调制电路、模拟多路转换器及A/D转换器等电路集成到一块芯片上,构成一个最小而完善的计算机系统。
这些电路在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。
键控流水灯设计通过编写代码实现16个LED灯5种流水灯显示方式。
在设计中主要采用AT89C51这款芯片作为控制主体,用按钮来切换流水灯的发光方式来显示流水灯的发光模式。
系统通过P1口外接16个发光二极管,P3口接2个按键,一个按键进行方式选择,数码管显示方式编号;用一个键来控制流水灯流动的速度。
数码管接在AT89C51的P0和P2口上,而流水灯的发光二极管经过电阻接在P1口上。
设计中辅以简单的设备和必要的电路,设计了一款流水灯,最终达到预期的目的。
1 引言
单片机控制系统能够取代以前利用复杂电子线路或者数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化。
现在的单片机的控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。
2 课题综述
2.1课题来源与意义
随着经济的发展、科技的突飞猛进,芯片业得到了迅速的发展,是单片机技术在各种民用和工业控制等领域得到更广泛的应用。
单片机凭借其低成本、高性能的不可代替优势已经成为了微电脑 控制的主力军。
学习单片机的有效方法是将理论与实践并重,因此通过对单片机可控流水灯的设计和研究,鼓励学生在熟悉基本原理的前提下,与实际应用相联系,提出自己的方案,来完善设计,使得他们更好的掌握单片机的应用。
2.2面临的问题
本次课程设计的要求是对16个LED灯设计5种流水灯显示方式,用一个按键进行方式选择,并用一个数码管显示方式编号;用一个键来控制流水灯流动的速度,并用一个数码管显示方式编号。
所要解决的问题有流水灯显示方式的设计,LED灯的驱动问题,七段显示数码管的驱动问题以及系统对外界按钮的相应问题。
下面将对各个问题展开论述。
3 系统设计
3.1总体设计
实现这个课题我们使用AT89C51作为控制主体,使用十六个共阳极发光二极管作为LED显示流水灯,两个七段显示数码管来显示流水灯显示方式,外接两个按钮,其中用一个按键进行方式选择,并用一个数码管显示方式编号;用一个键来控制流水灯流动的速度,并用一个数码管显示方式编号。
外接一个晶振来提供外接时钟脉冲。
单片机课程设计
- 2 - 模块图如下:
流程图如下:
3.2模块设计
3.2.1主体控制模块
芯片AT89C51是核心,P0、P1、P2、P3口均可以作为I/O口使用。
两个数码管经过电阻接在AT89C51的P0和P2口上,P1口外接16个发光二极管,P3口接2个按键,一个按键进行方式选择,数码管显示方式编号;用一个键来控制流水灯流动的速度,数码管显示方式编号。
单片机课程设计
图3-3主体控制模块图
3.2.2按键控制模块、
按键控制模块采用独立式按键接口设计。
独立式按键是每一个按键占用一根I/O端线。
特点:
各个按键相互独立,电路配置灵活;按键数量较多时,I/O端线耗费较多,电路复杂;软件结构简单
图3-4按钮控制模块图
3.2.3时钟模块
时钟电路用于产生单片机工作时所需的时钟信号,在芯片的外部通过18脚、19脚接晶体振荡器和微调电容,形成反馈电路,构成一个稳定的自激振荡器。
电路中的C1、C2取30Pf左右,二晶体振荡器的频率范围通常是1.2-12MHZ,晶体振荡器的频率越高,振荡频率越高。
图3-5时钟模块图
3.2.4 显示模块
显示模块主体是八段显示数码管。
共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起。
通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。
当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮。
根据发光字段的不同组合可显示出各种数字或字符。
图3-4显示模块图
3.2.5流水灯模块
发光二极管就是LED,是一种由磷化镓等半导体材料制成的、能直接将电能转换成光能的发光显示器件。
当其内部有一定电流通过时,就是发光。
发光二极管具有功耗低、体积小、可靠性高、寿命长和相应快等优点。
流水灯模块采用16个LED发光二极管,通过代码的编写,实现五种流水移动,其中电阻的作用是保护二极管,向它提供较小的电流,防止二极管因为电流过大而烧毁。
设计中,发光二极管是共阳极接法的,我们只需要将其初值不断的左移就会看到LED轮流的被点亮,也就实现了流水灯的功能。
图3-5流水灯模块图
3.3硬件设计
图3-6键控流水灯图
4代码编写
#include
#definesmg1P0
#definelsd1P1
#definesmg2P2
unsignedinti=1,u=7,j,n,c,k,h=7,s=1;
unsignedcharsj=20;
unsignedcharjs;
codeunsignedchara[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
codeunsignedcharb[]={0xf9,0xa4,0xb0,0x99,0x92};
codeunsignedchard[]={0xf9,0xa4,0xb0,0x99,0x92};
bitwnen1=0;
bitanj=0;
sbitaj1=P3^0;
sbitaj2=P3^1;
voidwnlsd1(void);
voidwnlsd2(void);
voidwnlsd3(void);
voidwnlsd4(void);
voidwnlsd5(void);
voidsjms1(void);
voidsjms2(void);
voidsjms3(void);
voidsjms4(void);
voidsjms5(void);
voidmsms1(void);
voidmsms2(void);
voidmsms3(void);
voidmsms4(void);
voidmsms5(void);
voidzd1(void);
voidzd2(void);
voidcsh(void);
voidsjkz(void);
voidddh(void);
main()
{
csh();
while
(1)
{
if(anj)
{
anj=0;
sjkz();
ddh();
}
if(i==1)
{
if(wnen1)
{
wnen1=0;
wnlsd1();
sjms1();
}
}
elseif(i==2)
{
if(wnen1)
{
wnen1=0;
wnlsd2();
sjms2();
}
}
elseif(i==3)
{
if(wnen1)
{
wnen1=0;
wnlsd3();
sjms3();
}
}
elseif(i==4)
{
if(wnen1)
{
wnen1=0;
wnlsd4();
sjms4();
}
}
elseif(i==5)
{
if(wnen1)
{
wnen1=0;
wnlsd5();
sjms5();
}
}
if(s==1)
{
msms1();
}
elseif(s==2)
{
msms2();
}
elseif(s==3)
{
msms3();
}
elseif(s==4)
{
msms4();
}
elseif(s==5)
{
msms5();
}
}
}
voidcsh(void)
{
TMOD=1;
TH0=0x3c;
TL0=0xb0;
TH1=0xec;
TL1=0x78;
EA=1;
ET0=1;
TR0=1;
ET1=1;
TR1=1;
js=sj;
}
voidzd1(void)interrupt1
{
TH0=0x3c;
TL0=0xb0;
js=js-4;
if(js==0)
{
wnen1=1;
js=sj;
}
}
voidzd2(void)interrupt3
{
TH1=0xec;
TL1=0xb0;
anj=1;
}
voidsjkz(void)
{
if(aj1==0)
{
while(!
aj1);
sj=sj-4;
if(sj==0)
{
sj=20;
}
js=sj;
s=s+1;
if(s>5)
{
s=1;
}
}
}
voidddh(void)
{
if(aj2==0)
{
while(!
aj2);
i=i+1;
if(i>5)
{
i=1;
}
}
}
voidwnlsd1(void)
{
lsd1=a[n];
n++;
if(n>7)
{
n=0;
}
}
voidwnlsd2(void)
{
lsd1=a[n];
n=n+2;
if(n>7)
{
n=0;
}
}
voidwnlsd3(void)
{
lsd1=a[u];
u=u-2;
if(u==-1)
{
u=7;
}
}
voidwnlsd4(void)
{
lsd1=a[c];
c=c+4;
if(c>7)
{
c=0;
}
}
voidwnlsd5(void)
{
lsd1=a[h];
h--;
if(h==-1)
{
h=7;
}
}
voidsjms1(void)
{
smg1=b[0];
}
voidsjms2(void)
{
smg1=b[1];
}
voidsjms3(void)
{
smg1=b[2];
}
voidsjms4(void)
{
smg1=b[3];
}
voidsjms5(void)
{
smg1=b[4];
}
voidmsms1(void)
{
smg2=d[0];
}
voidmsms2(void)
{
smg2=d[1];
}
voidmsms3(void)
{
smg2=d[2];
}
voidmsms4(void)
{
smg2=d[3];
}
voidmsms5(void)
{
smg2=d[4];
5 系统调试
通过对编写好的代码用keil进行编译后,由于对软件不是很熟悉导致编好的代码一直找不到目标,然后请同学帮忙后,很快就编写成功了
6 系统运行结果与分析
通过接线端子口接通提供电源后,再通过稳压电路将12V交流电压转换成5V直流电压,数码管和led灯能正常显示,数码管显示1,led灯以两个灯亮的形式开始右移,当显示完毕后,按下第一个键,数码管显示2,led灯以两个灯亮的形式开始跳两个灯显示。
类似的,能够显示5种方式。
另外一个键控制led的显示的速度,通电就数码管就显示1,按下第二个键,数码管显示2,led灯加速运行,类似的5种速度。
由于电路上少加了一组可以控制按下按钮后数码管的显示数字乱跳的电路,在制作的时候也没有想到,还有在画PCB的时候将数码管的管脚接错了,使得打印在PCB板上的数码管上的线路接错了,检查维修好后,整体就有点不整洁,使整个电路整体观上显的不足之处。
7电路个人分工及组员分工图
负责项目
组员
原理图
设计
PCB图
制作
实物图
制作
程序
设计
电路板
打孔
电路板
腐蚀
结 论
通过这次的课程设计,让我学习到了很多知识以及认识到了很多问题。
同时我意识到了一个很重要的问题,那就是课程设计之前的准备工作也是很重要的,包括提前预习设计的题目,上网和去图书馆查阅资料。
我也清楚的知道了,资料也是那么重要,否则在一个新颖的题目面前,你将无从下手。
通过准备工作,这样可以保正在设计的时候,有了充足的准备,使得自己不会在真正要开始课程设计的时候,对着题目发呆,没有什么进展。
因此,我们觉得这个也是对待学习的一种好的态度,以后在学习中,也要一直以这种好的态度对待。
除此之外,让我发现这次的键控流水灯设计,对于我们以前的学习如数码管显示、led灯等的知识,不仅是一次很好的运用,而且让我再次花心思去复习了以前学习的知识点,运用之初相互结合知识点,使得知识点可以联系起来,对我的学习有了很大的好处。
在程序设计的过程中,也遇到了好多的问题,刚开始在代码调试的时候,一直会存在错误,也有过很失望的时候,在通过老师的帮助后,经过很多次的修改以后,终于把程序代码改好。
但是在代码烧入芯片中,以及数码管的显示等问题上面,我们还是花费了好多时间,但是还是没有头绪。
最终还是在老师同学的帮助下,以及帮我们把代码进行了修改,才得以完成了键控流水灯基本功能。
总的来说,这次设计获益胜多。
因为本次课程设计是一个团队的合作,所以,不仅使得我们团结合作,学习到了知识,还让我们更加的学会沟通。
不仅培养了实践能力,还培养了设计思维,同时也锻炼了动手实际操作能力,在摸索该如何设计电路使之实现所需功能的过程中,锻炼了运用所学知识的灵活性,加深了对知识的理解及提高了解决问题的能力。
在体会到设计电路的艰辛的同时,更能体会到成功喜悦和快乐。
在这次的设计中,我学习了很多,也享受到了其中的乐趣。
从这次课程设计中我了解到流水灯的设计还是很好玩的,以前在路上夜景中的流水灯看上去很复杂,现在自己编程以后,知道了原理,相信在器件的允许下,我们也是可以完成那种效果的
参考文献
[1]《单片机原理及及应用》王迎旭编机械工业出版社2001
[2]《单片机应用程序设计技术》周航慈著北京航空航天大学出版社
[3]张洪润单片机应用技术教程北京:
清华大学出版社,1997
[4]《单片机实用教程》毛宏光刘福祥陈弢编机械工业出版社
附录
图3-7键控流水灯PCB图
图3-8键控流水灯实物图
元器件清单
序号
名称
型号规格
数量
备注
1
LED灯
红
8个
2
绿
8个
3
电阻
100R
8个
4
200R
14个
5
1K
1个
6
有极电容
100uF
1个
7
无极电容
30Pf
2个
8
晶振
12HZ
1个
9
数码管
共阳极
2个
10
按钮
3个
11
单片机
AT89C51
1个
12
PCB
1个
13
芯片底座
2个
14
图3-9键控流水灯元器件表
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
指导教师评阅书
指导教师评价:
一、撰写(设计)过程
1、学生在论文(设计)过程中的治学态度、工作精神
□优□良□中□及格□不及格
2、学生掌握专业知识、技能的扎实程度
□优□良□中□及格□不及格
3、学生综合运用所学知识和专业技能分析和解决问题的能力
□优□良□中□及格□不及格
4、研究方法的科学性;技术线路的可行性;设计方案的合理性
□优□良□中□及格□不及格
5、完成毕业论文(设计)期间的出勤情况
□优□良□中□及格□不及格
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
建议成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
指导教师:
(签名)单位:
(盖章)
年月日
评阅教师评阅书
评阅教师评价:
一、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
二、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
建议成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
评阅教师:
(签名)单位:
(盖章)
年月日
教研室(或答辩小组)及教学系意见
教研室(或答辩小组)评价:
一、答辩过程
1、毕业论文(设计)的基本要点和见解的叙述情况
□优□良□中□及格□不及格
2、对答辩问题的反应、理解、表达情况
□优□良□中□及格□不及格
3、学生答辩过程中的精神状态
□优□良□中□及格□不及格
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
评定成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
教研室主任(或答辩小组组长):
(签名)
年月日
教学系意见:
系主任:
(签名)
年月日
学位论文原创性声明
本人郑重声明:
所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。
尽我所知,除文中已经特别注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。
本人完全意识到本声明的法律结果由本人承担。
学位论文作者(本人签名):
年月日
学位论文出版授权书
本人及导师完全同意《中国博士学位论文全文数据库出版章程》、《中国优秀硕士学位论文全文数据库出版章程》(以下简称“章程”),愿意将本人的学位论文提交“中国学术期刊(光盘版)电子杂志社”在《中国博士学位论文全文数据库》、《中国优秀硕士学位论文全文数据库》中全文发表和以电子、网络形式公开出版,并同意编入****《中国知识资源总库》,在《中国博硕士学位论文评价数据库》中使用和在互联网上传播,同意按“章程”规定享受相关权益。
论文密级:
□公开□保密(___年__月至__年__月)(保密的学位论文在解密后应遵守此协议)
作者签名:
_______导师签名:
_______
_______年_____月_____日_______年_____月_____日
独创声明
本人郑重声明:
所呈交的毕业设计(论文),是本人在指导老师