单片机课程设计基于单片机的微波炉控制.docx
《单片机课程设计基于单片机的微波炉控制.docx》由会员分享,可在线阅读,更多相关《单片机课程设计基于单片机的微波炉控制.docx(15页珍藏版)》请在冰点文库上搜索。
单片机课程设计基于单片机的微波炉控制
河南城建学院
微机原理与接口技术课程设计报告
题目:
基于单片机的微波炉控制
******
学号:
*********
专业班级:
建筑电气与智能化
指导老师:
张洛花葛广军
所在院系:
电气与信息工程学院
2014年12月26日
摘要······················································1
第一章方案设计············································1
第二章硬件设计············································2
2.1单片机最小系统········································2
2.2LED彩灯控制电路······································2
第三章软件设计············································3
第四章系统仿真············································4
第五章总结················································7
第六章参考文献············································7
附录1·····················································8
附录2·····················································9
摘要
本文介绍了简易LED彩灯控制系统的软硬件设计过程,本方案以AT89C52单片机作为主控核心,按键控制电路、彩灯显示电路以及单片机最小系统等模块组成的核心主控制电路。
利用软件编程烧录程序到单片机来实现对LED彩灯进行控制。
本系统具有电路结构简单、易操作、硬件少、体积小、成本低、低能耗等优点。
一、方案设计
主要是通过对基于单片机的多控制、多闪烁方式的LED彩灯循环系统的设计,来达到本设计的要求。
其硬件构成框图如图所示,以单片机为核心控制,由单片机最小系统(时钟电路、复位电路、电源)、按键控制电路、LED发光二极管和5V直流电源电路组成。
此设计方案中单片机的P1口接5路按键控制电路,实现彩灯花型的切换功能;单片机的P3.7引脚接上一个按钮开关以实现对彩灯闪烁频率的控制,即实现了快慢两种节拍实现花型的变换;单片机上的P2口接八路LED发光二极管组成彩灯电路,显示彩灯循环情况。
二、硬件设计
2.1单片机最小系统
要使单片机工作起来,最基本的电路的构成由单片机、时钟电路、复位电路等组成。
单片机最小系统如图所示。
时钟电路:
本系统采用单片机内部方式产生时钟信号,用于外接一个12MHz石英晶体振荡器和2个30pF微调电容,构成稳定的的自激振荡器,其发出的脉冲直接送入内部的时钟电路。
复位电路:
确定单片机工作的起始状态,完成单片机的启动过程。
单片机系统的复位方式有上电自动复位和手动按键复位。
本设计采用手动按键复位,该复位方式同样具有上电自动复位功能。
电路如下图所示。
2.2LED彩灯显示电路
LED彩灯显示电路(如图所示)实际上是由8个发光二极管和8个电阻构成的电路。
发光二极管与电阻对应串联,然后接在与之相对应的P2口上。
通过软件编程对P2口输出高低电平来实现不同的闪烁花型。
由于发光二极管的导通电压一般为1.7V以上,另外,他的工作电流根据型号不同一般为1mA到30mA,电阻选择范围100欧姆~3000欧姆在此我们这里选用560欧姆的电阻。
三、软件设计
单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能看到多控制、多闪烁方式的LED灯系统循环点亮的现象,我们还需要告诉单片机怎么样进行控制,即编写程序控制单片机管脚电平的高低变化,来实现发光二极管的明灭。
软件编程是多控制、多闪烁方式的LED灯系统中的一个重要的组成部分,是本设计的重点和难点。
下面,我将阐述多控制、多闪烁方式的LED灯系统是如何实现8个LED灯的循环点亮,来介绍实现流水灯控制的软件编程方法。
本设计是以单片机AT89C52为核心控制8个发光二极管5种闪烁方式的变换。
硬件电路如图附录1所示,八个发光二极管D1-D8分别接在单片机的P2.0-P2.7接口上,当给P2.0口输出“0”时,发光二极管点亮,当输出“1”时,发光二极管熄灭。
可以运用输出端口指令MOVP0,A或MOVP0,#DATA,只要给累加器值或常数值,同理,接在P2.1~P2.7口的其他7个LED的点亮和熄灭的方法同LED1。
因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的成流水灯了。
在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到闪烁效果。
程序设计流程如图。
程序启动时跳转到键盘判断模块程序中,此程序里面包含Key1~Key5的按键情况判断,循环检测直到有按键按下的时候,程序转去相对应按键的彩灯显示的花型模块,与此同时,当按键Key6有闭合时,程序中调用延时程序程序时,给延时参数赋值上另一个值,是延时程序延时时间发生改变,以达到不同快慢节奏闪烁的彩灯。
具体程序流程如下图所示。
四、系统仿真
本设计使用的Keil软件来进行编程。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
Proteus的ISIS是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。
仿真电路图
仿真调试
本系统的调试是把在Keil里面写好的程序通过编译不出现任何错误后将生成的后缀名为.HEX的文件加载到AT89C52单片机中。
接下来我们将在PROTEUS软件进行软硬件结合的调试。
测试结果及状态分析
序号
测试项目
测试方法
测试结果
行状态分析
1
是否能正常工作
打开仿真电路图,加载程序,点击开始运行。
无任何错误提示
仿真电路正常
2
彩灯花型控制
运行仿真,随机按下任意按键,观察彩灯显示效果。
对应按键按下,彩灯出现不同花型。
本设计实现了多控制、多闪烁的LED彩灯循环。
3
节奏快慢控制
按闭合Key6,观察彩灯循跳动节奏
当闭合Key6是,彩灯循环闪烁变慢。
本设计实现了用快慢两种节拍实现花型交换。
经以上仿真上测试证实,能实现本设计系统要求的预期的功能。
五、总结
经过一周的不懈努,终于完成了课程设计任务。
通过本设计锻炼了动手能力,也对学习过程有了更深刻的理解。
在设计过程中遇到好多问题,通过查找资料解决了。
在这个过程中收获是很多的。
我知道课程设计的每一个环节都是通过老师的深思熟虑后,才给我们定下目标。
这是为了让我们得到更好的锻炼,充分发挥我们的动手能力。
所以,在这次课程设计中,认真对待每一个过程,希望自己的认真,自己最后的的成果能够回报老师的教导和奉献。
感谢老师的支持。
由于时间仓促,错误与不妥之处在所难免,敬请老师批评指正。
六、参考文献
[1] 罗印升.单片微机原理与应用北京:
机械工业出版社,2012.1
[2] 童诗白华成英.模拟电子技术基础.北京:
高等教育出版社,2012.12
[3] 陈正义.单片机控制实习[M].北京:
人民邮电出版社,2006
附录1:
运行中的LED彩灯控制系统仿真电路图
附录2:
LED彩灯控制程序代码
ORG0000H
LJMPMAIN
ORG0040H
MAIN:
MOVP1,#0FFH
MOVA,P1
CJNEA,#11111110b,S1
LCALLK1
S1:
CJNEA,#11111101b,S2
LCALLK2
S2:
CJNEA,#11111011b,S3
LCALLK3
S3:
CJNEA,#11110111b,S4
LCALLK4
S4:
CJNEA,#11101111b,MAIN
LCALLK5
LJMPMAIN
K1:
MOVA,#01111111b
C1:
RLA
MOVP2,A
LCALLDelay
JNBP1.1,K2
JNBP1.2,K3
JNBP1.3,K4
JNBP1.4,Z
LJMPC1
K2:
MOVP2,#0FEH
LCALLDelay
MOVP2,#0FCH
LCALLDelay
MOVP2,#0F8H
LCALLDelay
MOVP2,#0F0H
LCALLDelay
MOVP2,#0E0H
LCALLDelay
MOVP2,#0C0H
LCALLDelay
MOVP2,#80H
LCALLDelay
MOVP2,#00H
LCALLDelay
MOVP2,#80H
LCALLDelay
MOVP2,#0C0H
LCALLDelay
MOVP2,#0E0H
LCALLDelay
MOVP2,#0F0H
LCALLDelay
MOVP2,#0F8H
LCALLDelay
MOVP2,#0FCH
LCALLDelay
MOVP2,#0FEH
LCALLDelay
MOVP2,#0FFH
LCALLDelay
LJMPMAIN
Z:
LJMPK5
K3:
MOVP2,#55H
LCALLDelay
MOVP2,#0AAH
LCALLDelay
MOVP2,#0FFH
LJMPMAIN
K4:
MOVP2,#01111110B
LCALLDelay
MOVP2,#00111100B
LCALLDelay
MOVP2,#00011000B
LCALLDelay
MOVP2,#00000000B
LCALLDelay
MOVP2,#10000001B
LCALLDelay
MOVP2,#11000011B
LCALLDelay
MOVP2,#11100111B
LCALLDelay
MOVP2,#11111111B
LCALLDelay
LJMPMAIN
K5:
MOVP2,#01111110B
LCALLDelay
MOVP2,#10111111B
LCALLDelay
MOVP2,#01111110B
LCALLDelay
MOVP2,#10011111B
LCALLDelay
MOVP2,#01111110B
LCALLDelay
MOVP2,#10001111B
LCALLDelay
MOVP2,#01111110B
LCALLDelay
MOVP2,#10000111B
LCALLDelay
MOVP2,#01111110B
LCALLDelay
MOVP2,#10000011B
LCALLDelay
MOVP2,#01111110B
LCALLDelay
MOVP2,#10000001B
LCALLDelay
MOVP2,#00H
LCALLDelay
MOVP2,#0FFH
LCALLDelay
MOVP2,#00H
LCALLDelay
MOVP2,#0FFH
LCALLDelay
LJMPMAIN
Delay:
JNBP3.0,D1
movr5,#01h
LJMPD5
D1:
MOVr5,#04h
D5:
movr6,#0ffh
D6:
movr7,#0ffh
D7:
nop
djnzr7,D7
djnzr6,D6
djnzr5,D5
ret
END