彩灯控制器设计与制作.docx
《彩灯控制器设计与制作.docx》由会员分享,可在线阅读,更多相关《彩灯控制器设计与制作.docx(15页珍藏版)》请在冰豆网上搜索。
彩灯控制器设计与制作
金肯职业技术学院毕业设计报告
课题:
彩灯控制器设计与制作
班级电信1班学号29
学生姓名XXX
专业电子信息工程
系别计算机与移动通信
指导教师XXX
金肯职业技术学院
计算机与移动通信系
2013年1月
一、前言……………………………………………………………
(2)
1.1课题简介…………………………………………………………
(2)
1.2设计目的……………………………………………………………
(2)
二、总体设计……………………………………………………………(3)
2.1设计思路……………………………………………………………(3)
2.2原件清单……………………………………………………………(3)
三、硬件设计……………………………………………………………(4)
3.1AT89C51……………………………………………………………(4)
3.2系统框图……………………………………………………………(6)
3.3程序框图……………………………………………………………(6)四、软件设计……………………………………………………………(6)
4.1硬件设计……………………………………………………………(7)
4.2单片机时钟电………………………………………………………(7)
4.3复位电路……………………………………………………………(7)4.4控制电路……………………………………………………………(8)
4.5工作电路……………………………………………………………(8)
五、软件调试……………………………………………………………(9)
5.1设计要求……………………………………………………………(9)
5.2软件的流程图………………………………………………………(10)
5.3程序设计…………………………………………………………(10)
六、软件调试……………………………………………………………(12)
七、心得体会……………………………………………………………(13)
八、参考文献……………………………………………………………(14)
第一章前言
1.1课题简介
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机只缺少了I/O设备。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
它最早是被用在工业控制领域。
由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
1.2设计目的
1.学习基本理论在实践中综合运用的初步经验,掌握电路设计的基本方法、设计步骤,培养综合设计与调试能力。
2.掌握汇编语言程序设计方法。
3.培养实践技能,提高分析和解决实际问题的能力。
1.3设计任务及要求
利用AT89C51的P1口来控制8个LED,使8个LED灯完成8灯左移点亮,8灯右移点亮,8灯全灭,8灯全亮。
二、总体设计思路
2.1设计思路
本课题使用AT89C51单片机时无须外扩存储器。
因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。
如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。
因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。
同样的道理,可以让8个灯左移点亮,全灭、全亮。
在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。
元件名称
型号与规格
数量/个
用途
单片机
AT89C5112mhz
1
控制核心
石英震荡晶振
CRYSTAL12mhz
1
晶振电路
陶瓷电容
CAP30pF
2
晶振电路
电阻
220Ω
8
上位电阻
电阻
10k
4
开关电阻
电阻
10k
1
复位电路
电源
+5v
1
提供电源
拨码开关
BUTTON
4
发出信号
LED发光管
LED-Y220Ω
8
显示电路
2.2.原件清单
三、硬件设计
3.1AT89C51
1.芯片由UNTITLED—ISISPROFESSIONAL实验系统提供(AT89C51)
1)主要特性:
与MCS-51兼容
4K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
全静态工作:
0Hz—24Hz
三级程序存储器锁定
128*8位内部RAM
32可编程I/O线
5个中断源
可编程串行通道
低功耗的闲置和掉电模式
片内震荡器和时钟电路
2)管脚说明:
①电源引脚
Vcc(40脚):
典型值+5V。
Vss(20脚):
接低电平。
②外部晶振
XTAL1、XTAL2分别与晶振两端相连接。
③输入输出口引脚:
P0口:
I/O双向口。
作输入口时,应先软件置“1”。
P1口:
I/O双向口。
作输入口时,应先软件置“1”。
P2口:
I/O双向口。
作输入口时,应先软件置“1”。
P3口:
I/O双向口。
作输入口时,应先软件置“1”。
④控制引脚:
RST、ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51的控制总线。
RST(9脚):
复位信号输入端(高电平有效)。
ALE/-PROG(30脚):
地址锁存信号输出端。
第二功能:
编程脉冲输入。
-PSEN(29脚):
外部程序存储器读选通信号。
-EA/Vpp(31脚):
外部程序存储器使能端。
第二功能:
编程电压输入端(+21V)。
3)AT89C51单片机的P口特点:
P0口:
是一个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输入。
对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。
P2口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流(Iil)。
在访问外部程序存储器时和16位外部地址的外部数据存储器(如执行MOVX@DPTR)时,P2口送出高8位地址。
在访问8位地址的外部数据存储器(如执行MOVX@RI)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。
P3口:
P3口是一个带有内部上拉电阻的8位双向I/O端口。
P3口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。
P3口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流(Iil)。
(2)排阻的作用
所谓排阻就是若干个参数完全相同的电阻,它们的一个引脚都连到一起,作为公共引脚。
其余引脚正常引出。
所以如果一个排阻是由n个电阻构成的,那么它就有n+1只引脚,一般来说,最左边的那个是公共引脚。
它在排阻上一般用一个色点标出来。
排阻一般应用在数字电路上,比如:
作为某个并行口的上拉或者下拉电阻用。
使用排阻比用若干只固定电阻更方便。
3.2、系统框图
无输入
图1
3.3、程序框图
流水灯
四、设计步骤
4.1硬件设计
硬件系统是指构成微机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。
单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。
本设计选用以AT89S51单片机为主控单元。
显示部分:
8个LED灯循环亮灭。
4.2单片机时钟电路
时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。
在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚X1,输出端为引脚X2,在芯片的外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。
此电路采用12MHz的石英晶体。
时钟电路如下图:
图2
4.3复位电路
电阻的作用是用于上电复位的,VCC以上电,由于电容两端电压不能突变,所以RST上为高电平,然后电容放电,RST就为低电平了,还可以用手动复位,此电路应用自动复位。
图3
4.4控制电路
控制电路用于控制工作电路的工作情况,根据要求来控制电路,本电路的控制电路用来控制流水灯的工作情况,当按下1、2、3、4各个开关时,电路具有左移、右移、全灭、全亮的功能,具体的控制电路如下:
1
4
3
2
图4
4.5工作电路
1)工作电路就是根据总的电路的指令,来反应工作情况。
本电路的流水灯电路具体的如下:
图5
2)根据各个模块的功能及他们的信号传输,连接电路如下:
图6
五、软件设计
5.1设计要求
本系统的功能就时实现流水灯的循环点亮,主要有四个功能,第一,按下第一个按钮,彩灯向上点亮循环,按下第二个,彩灯向下循环点亮,按下第三个,彩灯全灭,按下第四个,彩灯全亮。
彩灯用8个发光二极管代替。
电路具有的控制彩灯点亮右移、左移、全亮及全灭的功能用按键切换彩灯状态,彩灯两点移动时间间隔为0.5秒。
5.2、软件的流程图:
无输入
图7
5.3、程序设计
ORG0000H;单片机上电后从00000H地址执行
AJMPSTART;跳转到主程序存放地指出
ORG0030H;设置主程序开始地址
START:
MOVSP,#60H;设置堆栈起始地址为60H
MOVDPTR,#TAB;把TAB表首地址送入DPTR
START1:
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;取数值表中的数
CJNE:
A,#11111111B,SHOW1;检查左移结束标志
AJMPSTART;左移结束重新检测开关状态
SHOW1:
MOVP1,A;将数据送到P1口
ACALLDELAY;调用延时子程序
INCDPTR;取数据表指针指向下一数据
AJMPLOOP1;继续查表取数据
LOOP2:
MOVA,#09H;设定累加器的初始值
MOVCA,@A+DPTR;取数值表中的数
CJNEA,#00000000B,SHOW2;检查右移结束标志
AJMPSTART;右移结束重新检查开关状态
SHOW2:
MOVP1,A;将数据送到P1口
ACALLDELAY;调用延时子程序
INCDPTR;取数据表指针指向下一数据
AJMPLOOP2;继续查表取数据
LOOP3:
MOVA,#08H;设定累加器初始值
MOVCA,@A+DPTR;取数值表中的数
MOVP1,A;将数据送到P1口
AJMPSTART;全灭结束重新检测开关状态
LOOP4:
MOVA,#11H;设定累加器初始值
MOVCA,@A+DPTR;取数值表中的数
MOVP1,A;将数据送到P1口
AJMPSTART;全灭结束重新检测开关状态
DELAY:
MOVR0,#10;延时一段时间
D0:
MOVR1,#200
D1:
MOVR2,#123
NOP
D2:
DJNZR2,D2
DJNZR1,D1
DJNZR0,D0
RET;子程序返回
TAB:
DB11111110B
DB11111101B
DB11111011B
DB11110111B
DB11101111B
DB11011111B
DB10111111B
DB01111111B
DB11111111B
DB01111111B
DB10111111B
DB11011111B
DB11101111B
DB11110111B
DB11111011B
DB11111101B
DB11111110B
DB00000000B
END;程序结束
六、软件调试
软件调试一般分为以下四个阶段:
1、编写程序并查错;2、在汇编语言的编译系统中编译源程序3、对程序进行编译连接,并及时发现程序中存在的错误;4、改正错误。
在软件调试过程中,对出现的错误进行了认真的分析和修改,多次调试成功后,能够很好的达到既定的设计效果。
此系统可以改进为可以通过对开关的调节来控制流水灯电路具有控制彩灯点亮右移、左移、全灭及全亮等功能。
七、心得体会
经过一段时间的努力,我们顺利的完成了这次单片机课设。
这是一个磨练意志的过程。
计算器的设计、硬件和软件系统的设计、到最后的Proteus软件仿真完成,这其中经历了很多困难,但是更重要的是在这个过程中我得到了很大的锻炼。
通过学习51单片机,让我熟练地掌握了keil、proteus、word等软件的使用。
一方面,我通过keil软件了解代码,熟知每行代码的作用及意义,另一方面,我通过proteus这个软件学习如何制图,了解各个元器件,探寻电路图的制作与仿真,最后,将这些这些成果都一一写进word中进行编辑,这个过程中让我掌握了计算机辅助的设计技术。
当然,这是一个需要不断的尝试,不断的校核,不断的修改,最后完成一个合理的设计的过程。
需要的是细心和耐心。
在很大程度上培养了我拼搏的工作精神。
使我受益匪浅,更加明确了自己专业的方向。
单片机课程很宽很广,而AT89C51更是其中的沧海一粟,通过这次的毕业论文设计,让我学到了在课本上没有学到的知识,也可以进行简单的代码编写和电路图制作了,但只有这些理论知识还是远远不够的,还得把所学的理论知识和实际操作相结合起来才行。
这里我要感谢实验室的指导老师,没有老师的细致讲解和耐心的检查,也就没有我的计算器出来,非常感谢!
八、参考文献
[1]单片机应用项目化教程。
顾亚文顾广寒彭丽萍缪武华2011.7
[2]杨恢先黄辉先著.单片机原理与应用.人民邮电出版,2009.7
[3]朱定华著.单片机原理与接口技术.电子工业出版社,2001.4
[4]王威著.HCS12微控制器原理及应用.北京航空航天大学出版社,2007.10
[5]龚运新著.单片机C语言开发技术.北京清华大学出版社,2006.10
[6]胡洪波著.单片机原理与应用实验教程.湘潭大学出版社,2009.7
[7]《单片机原理及其接口技术》胡汉才编著北京:
清华大学出版社
[8]《MCS-51单片机原理及应用》张毅刚编著哈尔滨:
哈尔滨工业大学出版社
[9]《51单片机C语言应用程序设计实例精讲》(第二版)戴佳刘博文编著电子工业出版社