基于单片机霓虹灯设计.docx
- 文档编号:10893999
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:17
- 大小:65.31KB
基于单片机霓虹灯设计.docx
《基于单片机霓虹灯设计.docx》由会员分享,可在线阅读,更多相关《基于单片机霓虹灯设计.docx(17页珍藏版)》请在冰豆网上搜索。
基于单片机霓虹灯设计
本科生毕业论文(设计)附件
题目基于单片机的霓虹
灯控制器设计
学生姓名朱盛春
学号200711020125
专业班级电信07101班
指导老师胡惟文
完成时间:
摘要…………………………………………………………………………………………3
引言…………………………………………………………………………………………5
1本论概述…………………………………………………………………………………5
1.1方案论证………………………………………………………………………………5-6
1.2主程序流程图…………………………………………………………………………6
2.1硬件结构简图…………………………………………………………………………6
2.2控制芯片AT89S52………………………………………………………………………6-7
3结论…………………………………………………………………………………………9
答谢……………………………………………………………………………………………9
参考文献………………………………………………………………………………………8-9
附件一程序源码……………………………………………………………………………9-19
基于单片机的霓虹灯控制器设计
电子信息科学与技术专业学生:
朱盛春
指导老师:
胡惟文
摘要:
基于单片机16路霓虹灯控制器设计;以AT89S52为单片机控制芯片,控制方式通过按键进行切换,闪烁花式至少5种以上;初始方式为轮流点亮;完成单片机电路设计及程序编写调试;绘制整设计电路图;对设计的电路进行一定的仿真,对仿真结果进行分析说明是否符合设计要求。
我采用单片机控制技术设计完成。
通过本课题的研究,我可以提高模拟、数字电子技术应用的方面能力,提高单片机设计与应用能力及新型电子器件的应用能力。
通过设计培养自己综合运用所学知识,独立分析问
关键字:
单片机霓虹灯控制器应用
Nihonglightcontrollerdesignbasedonsinglechip
ElectronicsandInformationScienceandTechnologyCandidate:
zhushengchun
Advisor:
huweiwen
Abstract:
16Nihonglightbasedonsinglechipcontrollerdesign;tothemicrocontrollercontrolchipAT89S52,controlswitchthroughthekey,flashingfancyatleast5ormore;theinitialwayforturnlight;completesinglechipdebugcircuitdesignandprogramming;drawthewholeschematicdesign;onacertaincircuitdesignsimulation,thesimulationresultsoftheanalysisindicatewhetherthedesignrequirements.IusedtheSCMcontroltechnologydesigniscompleted.Throughresearchofthissubject,Icanimprovethesimulation,theapplicationofdigitalelectronictechnologycapacity,improvethedesignandapplicationofSCMcapabilityandcapacityofnewelectronicdevicesapplications.Culture
Keywords:
SCMNihonglightApplications
引言
这是大学本科大四的毕业论文,以来考查一个本科生是否掌握了基本的理论知识与简单的运用能力,为将来的工作奠定基础,这个课题是指导老师胡惟文提出,他的要求是1、可控制16路霓虹灯的点亮;2、控制方式通过按键进行切换,闪烁花式至少5种以上;3、初始方式为轮流点亮;4、完成单片机电路设计及程序编写调试;5、绘制整设计电路图。
6、对设计的电路进行一定的仿真,对仿真结果进行分析说明是否符合设计要求。
意义:
我采用单片机控制技术设计完成。
通过本课题的研究,我可以提高模拟、数字电子技术应用的方面能力,提高单片机设计与应用能力及新型电子器件的应用能力。
通过设计培养自己综合运用所学知识,独立分析问题和解决问题的能力,培养学生的基本技能与创新能力,为以后从事相关工作打下良好的基础。
1本论概述
1.1方案论证
方案一:
采用目前流行用的AT89S52控制芯片的单片机,12MHz的晶振,对于目前来讲,市场生产普通单片机流水线化,各种性价比更为合理
方案二:
采用FPGA来设计,也能很好的完成课题,但经济成本太高,而作为毕业设计不合理
通过两种方案比较,第一方案为最优.
1.2主程序流程图
图一基于单片机的霓虹灯控制器设计流程图
2.1硬件结构简图:
图一硬件结构简图
2.2控制芯片AT89S52
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
图二AT89S52
2.3二极管的电路
这是共阳极的二极管电路,是低电平能够点亮,因而只要AT89S52芯片P1.0-P1.7赋给它低电平时,二极管可以导通了,此时就可以点亮了;当给它一个高电平时,二极管就截止了,此时灭了.
图三(左)P1.0-P1.7(右)P0.0-P0.7
2.4独立式按键
独立式按键就各按键相互独立,每个按键各接一根I/O接口口线,每根I/)接口线上的按键都不会影响其他的I/O接口线.因此,通过检测I/O接口线的电平状态就可以容易判断出是哪个按键被除数按下.当按键未按下时,开关处于断开状态,P3.0-P3.3都处于高电平,当只要有一个按键开关按下时,开关处于闭合状态,四个键中一个处于工作状态.
图独立式按键
2.5系统硬件连接图:
结论
在经过几周不懈努力,基本完成了毕业设计任务,通过本设计锻炼了我自己的理论与实践相结合的能力,也为以后的工作奠定了基石,21世纪的科技与信息快速发展时代,任何领域都要用到电子,而单片机是最基础,是步向其它复杂芯片的基石.基于单片机霓虹灯控制器的设计相对来讲简单些,但麻雀虽小,五脏俱全,但是应该认真对待,因为复杂是由简单不断组合而成。
整个毕业过程中每一步都是自己亲历亲为,在碰到问题,去查阅资料,网上查询,老师指导,这样培养了我的查找资料的能力,以及我的细心、耐心和专心,在这次毕业设计中学到很多的东西,有以前不太注意的细节,在这一次中是必须自己去注意的,也是四年来所学知识一个提升,我深深知道,每一次的理论与实践环节来之不易,而这些课题是指导老师深思熟虑,才给设计的课题.然后让我们通过所学来做.也让我们随着年龄的增长不断扩充自己的知识领域,明白老师为我们的奉献。
由于毕业在即,时间略为仓促,错误与不妥之处在所难免,恳请老师批评指正。
答谢:
在完成本系统的设计过程中,本人得到胡惟文老师的悉心指导和帮助,在此深表谢意。
主要参考资料:
[1]谢维成,杨加国单片机原理与应用及C51程序设计清华大学出版社.2006
[2]康华光.电子技术基础(数字部分)[M].北京:
高等教育出版社,2006
[3]谢自美.电子线路设计·实验·测试[M].武汉:
华中科技大学出版社,2000
[4]贾立新,王涌等.电子系统设计与实践[M].北京:
清华大学出版社.2007
[5]彭介华.电子技术课程设计指导湖南:
高等教育出版社2008.
1.5程序源代码
#include
#include
#defineuintunsignedint//宏定义
#defineucharunsignedchar//宏定义
sbitkey1=P3^0;//对独立按键的定义
sbitkey2=P3^1;
sbitkey3=P3^2;
sbitkey4=P3^3;
voiddelay(uintz)//延时函数,z的取值为这个函数的延时ms数,
{uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/************主函数***********/
voidmain()
{uchara,b,i,j;
a=0xfe;//AT89S52是低电平有效
for(i=0;i<8;i++)//初始方式轮流点亮
{P1=a;
delay(50);
a=_crol_(a,1);
}
b=0xff;
for(i=0;i<8;i++)
{
P1=b;
delay(50);
b=_crol_(b,1);
}
/**************按键1*********************/
if(!
key1)
{for(j=0;j<3;j++)//偶奇交替,循环三次
{
P1=0x55;P0=0x55;//点亮2,4,6,8,10,12,14,16小灯
delay(50);//延时50毫秒
P1=0xaa;P0=0xaa;//点亮1,3,5,7,9,11,13,15小灯
delay(50);
}
for(j=0;j<3;j++)
{
a=0xfe;//流水灯:
从左到右,循环八次
for(i=0;i<8;i++)
{
P1=a;
delay(50);
a=_crol_(a,1);//循环左移
}
b=0xff;
for(i=0;i<8;i++)
{
P0=b;
delay(50);
b=_crol_(b,1);
}
}
P1=0xff;
for(j=0;j<3;j++)//从两边往中间流
{
P1=0x7e;P0=0x7e;
delay(50);
P1=0xbd;P0=0xbd;
delay(50);
P1=0xdb;P0=0xdb;
delay(50);
P1=0xe7;P0=0xe7;
delay(50);
}
P1=0xff;
for(j=0;j<3;j++)//从中间往两边流
{
P1=0xe7;P0=0xe7;//点亮小灯
delay(50);
P1=0xdb;P0=0xdb;
delay(50);
P1=0xbd;P1=0xbd;
delay(50);
P1=0x7e;P1=0x7e;
delay(50);
}
P1=0xff;
for(j=0;j<6;j++)//全部闪烁
{
P1=~P1;P0=~P0;//点亮小灯
delay(50);
}
P1=0xff;
}
/**************按键2*********************/
if(!
key2)
{
for(j=0;j<3;j++)//偶奇交替,循环三次
{
P1=0x00;P0=0xff;//点亮1到8小灯,灭9,10,11,12,13,14,15,16小灯
delay(50);//延时50毫秒
P1=0xaa;P0=0xff;//点亮2,4,6,8小灯灭1,3,5,7,9,10,11,12,13,14,15,16小灯
}
for(j=0;j<3;j++)
{
a=0xfe;//流水灯:
从左到右,循环八次
for(i=0;i<8;i++)
{
P1=a;
delay(50);
a=_cror_(a,1);//循环右移
}
b=0xff;
for(i=0;i<8;i++)
{
P0=b;
delay(50);
b=_cror_(b,1);
}
}
P1=0xff;
for(j=0;j<3;j++)//从中间往两边流
{
P1=0xe7;P0=0xe7;//点亮小灯
delay(50);
P1=0xdb;P0=0xdb;
delay(50);
P1=0xbd;P1=0xbd;
delay(50);
P1=0x7e;P1=0x7e;
delay(50);
}
P1=0xff;
for(j=0;j<3;j++)//从两边往中间流
{
P1=0x7e;P0=0x7e;
delay(50);
P1=0xbd;P0=0xbd;
delay(50);
P1=0xdb;P0=0xdb;
delay(50);
P1=0xe7;P0=0xe7;
delay(50);
}
P1=0x00;
for(j=0;j<6;j++)//全部闪烁
{
P1=~P1;P0=~P0;//点亮小灯
delay(50);
}
P1=0xff;
}
/**************按键3*********************/
if(!
key3)
{
for(j=0;j<3;j++)//偶奇交替,循环三次
{
P1=0xaa;P0=0xaa;//点亮1,3,5,7,9,11,13,15小灯
delay(50);//延时50毫秒
P1=0x55;P0=0x55;//点亮2,4,6,8,10,12,14,16小灯
}
for(j=0;j<3;j++)
{
a=0xfe;//流水灯:
从左到右,循环八次
for(i=0;i<8;i++)
{
P1=a;
delay(50);
a=_cror_(a,1);//循环右移
}
b=0xff;
for(i=0;i<8;i++)
{
P0=b;
delay(50);
b=_cror_(b,1);
}
}
P1=0xff;
for(j=0;j<3;j++)//从中间往两边流
{
P1=0xe7;P0=0xe7;//点亮小灯
delay(50);
P1=0xdb;P0=0xdb;
delay(50);
P1=0xbd;P1=0xbd;
delay(50);
P1=0x7e;P1=0x7e;
delay(50);
}
P1=0xff;
for(j=0;j<3;j++)//从两边往中间流
{
P1=0x7e;P0=0x7e;
delay(50);
P1=0xbd;P0=0xbd;
delay(50);
P1=0xdb;P0=0xdb;
delay(50);
P1=0xe7;P0=0xe7;
delay(50);
}
P1=0x00;
for(j=0;j<6;j++)//全部闪烁
{
P1=~P1;P0=~P0;//点亮小灯
delay(50);
}
P1=0xff;
}
/**************按键4*********************/
if(!
key4)
{for(j=0;j<3;j++)//偶奇交替,循环三次
{
P1=0xaa;P0=0xaa;//点亮1,3,5,7,9,11,13,15小灯
delay(50);//延时50毫秒
P1=0x55;P0=0x55;//点亮2,4,6,8,10,12,14,16小灯
}
b=0xff;
for(i=0;i<8;i++)
{
P0=b;
delay(50);
b=_cror_(b,1);
}
for(j=0;j<3;j++)
{
a=0xfe;//流水灯:
从左到右,循环八次
for(i=0;i<8;i++)
{
P1=a;
delay(50);
a=_cror_(a,1);//循环右移
}
P1=0xff;
for(j=0;j<3;j++)//P1从中间往两边流,P0保持全亮
{
P1=0xe7;P0=0x00;
delay(50);
P1=0xdb;P0=0x00;
delay(50);
P1=0xbd;P1=0x00;
delay(50);
P1=0x7e;P1=0x00;
delay(50);
}
P1=0xff;
for(j=0;j<3;j++)//P0从两边往中间流,P1保持不变
{
P1=0x7e;P0=0x7e;
delay(50);
P1=0xbd;P0=0xbd;
delay(50);
P1=0xdb;P0=0xdb;
delay(50);
P1=0xe7;P0=0xe7;
delay(50);
}
P1=0x0f;
P0=0xf0;
for(j=0;j<6;j++)//全部闪烁
{
P1=~P1;P0=~P0;//点亮小灯
delay(50);
}
P1=0xff;
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 霓虹灯 设计