单片机LED灯课程设计报告文档格式.docx
《单片机LED灯课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《单片机LED灯课程设计报告文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
系统以采用MCS-51系列单片机Intel8051为中心器件来设计LED流水灯系统,实现8个LED霓虹灯的左、右循环显示,并实现循环的速度可调。
一、课程设计的目的和要求1.1设计目的1.学习基本理论在实践中综合运用的初步经验,掌握电路设计的基本方法、设计步骤,培养综合设计与调试能力。
2.掌握汇编语言程序设计方法。
3.培养实践技能,提高分析和解决实际问题的能力。
1.2课程设计题目单片机的LED流水灯系统设计1.3设计任务及要求1.彩灯用8个发光二极管代替。
2.电路具有控制彩灯点亮右移、左移、全亮及全灭等功能(用按键切换彩灯状态)3.彩灯两点移动时间间隔为1秒。
1.4设计方案本课题使用AT89C51单片机时无须外扩存储器。
因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。
如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;
相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;
同理,接在P1.1P1.7口的其他7个LED的点亮和熄灭的方法同LED1。
因此,要实现流水灯功能,我们只要将发光二极管LED1LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。
同样的道理,可以让8个灯左移点亮,全亮、全灭。
在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。
在此基础上,增加外扩设备,利用74LS373和8255扩展成24个LED灯循环显示。
二、总体设计本课题使用AT89C51单片机时无须外扩存储器。
三、硬件设计3.1单片机最小系统要使单片机工作起来,最基本的电路的构成由单片机、时钟电路、复位电路等组成。
单片机最小系统如下图2-2所示。
图3-1单片机最小系统AT89C51的管脚说明:
电源引脚Vcc(40脚):
典型值5V。
Vss(20脚):
接低电平。
外部晶振XTAL1、XTAL2分别与晶振两端相连接。
输入输出口引脚:
P0口:
I/O双向口。
作输入口时,应先软件置“1”。
P1口:
P2口:
P3口:
控制引脚:
RST、ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51的控制总线。
RST(9脚):
复位信号输入端(高电平有效)。
ALE/-PROG(30脚):
地址锁存信号输出端。
第二功能:
编程脉冲输入。
-PSEN(29脚):
外部程序存储器读选通信号。
-EA/Vpp(31脚):
外部程序存储器使能端。
编程电压输入端(+21V)。
(3)AT89C51单片机的P口特点:
是一个8位漏极开路输出型双向I/O端口。
作为输出端口时,每位能以吸收电流的方式驱动8个TTL输入,对端口写1时,又可作高阻抗输入端用。
在访问外部程序或数据存储器时,它是时分多路转换的地址(低8位)/数据总线,在访问期间将激活内部的上拉电阻。
P1口:
P1口是一个带有内部上拉电阻的8位双向I/O端口。
P1口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。
P2口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流(Iil)。
P2口:
P2口是一个带有内部上拉电阻的8位双向I/O端口。
P2口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
在访问外部程序存储器时和16位外部地址的外部数据存储器(如执行MOVXDPTR)时,P2口送出高8位地址。
在访问8位地址的外部数据存储器(如执行MOVXRI)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。
P3口:
P3口是一个带有内部上拉电阻的8位双向I/O端口。
P3口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
P3口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流(Iil)。
(4)排阻的作用所谓排阻就是若干个参数完全相同的电阻,它们的一个引脚都连到一起,作为公共引脚。
其余引脚正常引出。
所以如果一个排阻是由n个电阻构成的,那么它就有n+1只引脚,一般来说,最左边的那个是公共引脚。
它在排阻上一般用一个色点标出来。
排阻一般应用在数字电路上,比如:
作为某个并行口的上拉或者下拉电阻用。
使用排阻比用若干只固定电阻更方便。
3.2单片机时钟电路时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。
在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚X1,输出端为引脚X2,在芯片的外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。
此电路采用12MHz的石英晶体。
时钟电路如下图:
图3-2时钟电路3.3复位电路电阻的作用是用于上电复位的,VCC以上电,由于电容两端电压不能突变,所以RST上为高电平,然后电容放电,RST就为低电平了,还可以用手动复位,此电路应用自动复位。
图3-3复位电路3.4控制电路控制电路用于控制工作电路的工作情况,根据要求来控制电路,本电路的控制电路用来控制流水灯的工作情况,当按下1、2、3、4各个开关时,电路具有左移、右移、全亮、全没的功能,具体的控制电路如下:
图3-4控制电路3.5工作电路
(1)工作电路就是根据总的电路的指令,来反应工作情况。
本电路的流水灯电路具体的如下:
图3-5工作电路
(2)根据各个模块的功能及他们的信号传输,连接电路如下:
图3-6硬件连接图表3-7所用元器件清单:
元件名称型号数量/个用途单片机AT89S511控制核心晶振12MHZ1晶振电路电容30pF2晶振电路电阻Respack88上位电阻电阻10k4开关电阻电阻10k1复位电路电源+5v1提供电源拨码开关BUTTON4发出信号数码管7SEG-MPX1-CC8显示电路四、软件设计4.1程序框图图4-1程序框图4.2软件流程图:
图4-2软件的流程图4.3程序设计ORG0000H;
单片机上电后从00000H地址执行AJMPSTART;
跳转到主程序存放地指出ORG0030H;
设置主程序开始地址START:
MOVSP,#60H;
设置堆栈起始地址为60HMOVDPTR,#TAB;
把TAB表首地址送入DPTRSTART1:
JNBP0.0,LOOP1;
判断P0.0处开关是否闭合JNBP0.1,LOOP2;
判断P0.1处开关是否闭合JNBP0.2,LOOP3;
判断P0.2处开关是否闭合JNBP0.3,LOOP4;
判断P0.3处开关是否闭合AJMPSTART1;
如果没有开关闭合重新检测LOOP1:
CLRA;
累加器清零MOVCA,A+DPTR;
取数值表中的数CJNEA,#11111111B,SHOW1;
检查左移结束标志AJMPSTART;
左移结束重新检测开关状态SHOW1:
MOVP1,A;
将数据送到P1口ACALLDELAY;
调用延时子程序INCDPTR;
取数据表指针指向下一数据AJMPLOOP1;
继续查表取数据LOOP2:
MOVA,#09H;
设定累加器的初始值MOVCA,A+DPTR;
取数值表中的数CJNEA,#00000000B,SHOW2;
检查右移结束标志AJMPSTART;
右移结束重新检查开关状态SHOW2:
取数据表指针指向下一数据AJMPLOOP2;
继续查表取数据LOOP3:
MOVA,#08H;
设定累加器初始值MOVCA,A+DPTR;
取数值表中的数MOVP1,A;
将数据送到P1口AJMPSTART;
全灭结束重新检测开关状态LOOP4:
MOVA,#11H;
全灭结束重新检测开关状态DELAY:
MOVR0,#10;
延时1sD0:
MOVR1,#200D1:
MOVR2,#249NOPD2:
DJNZR2,D2DJNZR1,D1DJNZR0,D0RET;
子程序返回TAB:
DB11111110BDB11111101BDB11111011BDB11110111BDB11101111BDB11011111BDB10111111BDB01111111BDB11111111BDB01111111BDB10111111BDB11011111BDB11101111BDB11110111BDB11111011BDB11111101BDB11111110BDB00000000BEND;
程序结束五、使用keil、proteus软件调试仿真说明5.1系统仿真本设计使用的KeilC51软件来进行编程。
KeilC51提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
Proteus的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。
图5-1仿真电路图5.2仿真调试本系统的调试是把在Keil里面写好的程序通过编译不出现任何错误后将生成的后缀名为.HEX的文件加载到AT89C51单片机中。
接下来我们将在PROTEUS软件进行软硬件结合的调试。
六、心得体会经过一段时间的努力,顺利的完成了这次单片机课设。
从课题的选择开始,流水灯的设计、硬件和软件系统的设计、到最后的Proteus软件仿真完成,这其中经历了很多困难,但是更重要的是在这个过程中我得到了很大的锻炼。
一方面通过C51单片机等一些器件的设计让我学习和掌握了单片机技术的基础知识和技术要点,也使以前学的很多知识都得到了运用;
另一方面在用Proteus软件画电路图时,然后再转换成一维的WORD中进行编辑,这个过程中让我掌握了计算机辅助的设计技术。
当然,这是一个需要不断的尝试,不断的校核,不断的修改,最后完成一个合理的设计的过程。
需要的是细心和耐心。
在很大程度上培养了我拼搏的工作精神。
使我受益匪浅,更加明确了自己专业的方向。
通过本次课设,我不仅学到了关于单片机技术方面的许多专业知识,同时也让我感觉到团队合作的重要性。
其实如何有效和快速的找到资料也是课设给我的启发,利用好图书馆和网络,是资源的到最好的利用。
与他人交流思想是取得成功的关键,在交流中,不仅强化了自己原有的知识体系,也扩展了自己的思维。
课设是一个通过思考、发问、自己解惑并动手、提高的过程。
我会在以后的学习中不断学习,积累经验,完善自己。
对于这次单片机课程设计不仅巩固了以前所学过的知识,而且学到了很多在书本上没有学到过的知识,掌握了一种系统的研究方法,可以进行一些简单的编程。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。
同时在设计的过程中发现了自己的不足之处,例如对以前所学过的知识理解得不够深刻,掌握得不够牢固,学习了单片机C语言。
七、参考文献1徐爱钧编著智能化测量控制仪表原理与设计(第二版)北京航天航空大学出版社,2004.92杨恢先黄辉先著单片机原理与应用人民邮电出版,2009.73朱定华著单片机原理与接口技术电子工业出版社,2001.44王威著HCS12微控制器原理及应用北京航空航天大学出版社,2007.105龚运新著单片机C语言开发技术北京清华大学出版社,2006.106胡洪波著单片机原理与应用实验教程湘潭大学出版社,2009.77胡汉才编著单片机原理及其接口技术清华大学出版社8张毅刚编著MCS-51单片机原理及应用哈尔滨工业大学出版社