多台设备自动循环控制系统单片机课程设计报告.docx
- 文档编号:28208551
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:17
- 大小:734.08KB
多台设备自动循环控制系统单片机课程设计报告.docx
《多台设备自动循环控制系统单片机课程设计报告.docx》由会员分享,可在线阅读,更多相关《多台设备自动循环控制系统单片机课程设计报告.docx(17页珍藏版)》请在冰豆网上搜索。
多台设备自动循环控制系统单片机课程设计报告
1.课题目的和意义
目的:
本课题为“多台设备自动循环控制”,目的在于用发光二极管模拟工厂里的机器设备,通过编程控制8052系列单片机,让这些设备按照要求循环运行。
意义:
1有助于加深我们对操作系统这门课程的理解,我们在课堂上学的都是基础理论知识,对于如何用程序语言来描述所学知识还是有一定难度。
通过课程设计,我们可以真正理解其内涵。
2.有利于我们逻辑思维的锻炼,程序设计能直接有效地训练学生的创新思维、培养分析问题、解决问题能力。
即使是一个简单的程序,依然需要学生有条不理的构思。
3.有利于培养严谨认真的学习态度,在程序设计过程里,当我们输入程序代码的时候,如果不够认真或细心,那么可能就导致语法错误,从而无法得出运行结果。
那么,这个我们反复调试,反复修改的过程,其实也是对我们认真严谨治学的一个锻炼。
2.方案的论证
设计任务
用单片机控制二极管(代替现实设备),使其按要求循环运行。
设计要求
1.用8只发光二极管代替8台设备,接在P1口上。
和为控制口,用导线连接开关,用开关控制设备的运行与停止。
3.没有按钮按下时,8台设备全部运行,按钮按下时8只发光二极管以0、1、23、4、5、6、7、5、3、1、7、5、3、1、7为一个过程开始循环运行,当按钮按下时8只发光二极管全部点亮。
创新部分
用一只8段LED数码管同步显示正在运行的设备的编号。
各部分元器件选用方案论证
单片机的选用
本课题由于要求使用8052系列单片机,故在此系列中选择。
市场上现使用较多的52系列单片机有Atmel公司生产的AT89C52、AT89S52,以及STC公司生产的STC89C52、STC89S52,对比两家公司的产品可知,STC公司的产品可多次擦写,一个机械周期只要6个时钟周期,且支持USB在线读写,处理速度优于Atmel公司生产的产品。
所以对比后选择使用STC89C52单片机芯片。
显示元器件的选用
通过学习和调查市场行情,我们发现,能够用来做显示器使用的有8段数码管、液晶显示屏以及点阵模块等。
其中,八段数码管成本低廉、使用方便、显示明亮,适合显示位数少、线路不复杂的电路;液晶显示屏价格较高,引线较多,不但可以显示数字还能显示文字,可显示范围广,一般多用于需要显示文字或字母的电路;点阵模块不适合做静态显示。
因为本课题只需要控制8台设备,位数少且用数码管显示方便,所以我们的显示元器件选用8段LED数码管。
限流电阻的选用
由于本课题要求在P1口控制8只LED发光二极管,故需要选用限流电阻来限制流过发光二极管的电流,若选用电阻过小,则二极管容易因过流而烧掉,若选用电阻过大,则二极管容易因电流过小而发光暗淡,所以选用电阻不能太大或太小。
查阅发光二极管各项参数后发现,发光二极管正常发光时电流约为10mA,发光二极管导通电阻很小可忽略不计,则根据公式R=(E-U)/I-R0可算出,限流电阻阻值在500Ω左右。
故选用阻值为510Ω的电阻。
电源的选用
要想使单片机正常运行,可靠、稳定的电源必不可少,在以往的电子设计中,我们一般制作5V电源,这样可以选择用变压器降日常所用220V电压降至5V供我们所用,但此方法耗时且需要更多成本故放弃。
因为我们一般都用到笔记本做课程设计,所以我们选择USB烧录器作为电源。
其他元器件的选用
在确定了单片机芯片、8段LED数码管、限流电阻、电源后,我们还确定选用8只直径3mm的LED发光二极管、3只按钮、排针、排阻、导线若干以及用于单片机最小系统的电容、晶振、电阻等。
3.系统硬件设计
总体设计
总体设计框架图如图3-1所示:
图3-1
本设计采用STC89C52RC单片机作为系统控制芯片,单片机接收INT0、RXD传来的中断信号并转变为对8台设备的控制,以8段LED数码管为显示模块,将正在运行的设备编号同步地显示出来,在控制电路中,主要是由两个按钮来指挥设备的运行方式。
单片机最小系统
最小系统包括晶振电路、复位电路和电源部分。
图3-2为单片机最小系统。
图3–2单片机最小系统电路图
中断控制模块
中断控制模块如图3-3所示。
图3–3中断控制模块
该模块主要由两个按钮组成,其中一个按钮与口相连,另一按钮与口相连,两个按钮的公共端接地。
当按钮被按下时,与该按钮所接的单片机端口变为低电平,信号传入单片机内,申请中断。
单片机将响应中断,根据中断程序控制8台设备的运行方式。
设备模块
设备模块如图3-4所示。
图3–4设备模块
设备模块主要由8只LED发光二极管代替工业现场的8台设备,通过控制发光二极管的亮暗方式从而达到模拟控制工业现场8台设备的目的。
8只发光二极管分别于一只500Ω的电阻串联,电阻起限流作用,防止发光二极管因电流过大而烧掉,也防止可能因电流过小而无法正常显示。
每只电阻除与发光二极管相连外,另一端与单片机对应P0口相连,从而被单片机所控制。
8只发光二极管有一公共端,且接高电平。
当P0口输出低电平时,对应的发光二极管点亮。
显示模块
显示模块如图3-5所示。
图3–5显示模块
该模块主要由102排阻和一只8段LED数码管组成。
P0口为双向I/o口,要想保证端口能正确地输出高电平,需要在外部加上拉电阻,故使用102排阻作为上拉电阻。
在单片机处于输出状态时排阻将P0口电位拉高。
由于共阳极数码管使用时需加驱动电路,增加了电路的复杂度和成本,故我们选用共阴极数码管,其公共端接地。
在实际使用时,共阳、共阴极数码管需要用万用表进行区分,且编程时显示代码亦不相同,在这里须注意。
整体电路
系统整体电路如图3-6所示。
图3–6整体电路图
4.系统软件设计
主程序流程图及程序
主程序如下:
#include<>
硬件联调
软硬件调试中出现的问题及解决措施
◎问题1:
将USB烧写器尾部的短路帽子摘掉后插上电脑,程序无法烧写进芯片。
解决措施:
将烧写器的RX线与芯片上的TXD相连,TX线与芯片上RXD相连后,程序即可烧写进去。
◎问题2:
数码管焊接在万能板上后,在8只LED发光二极管正常运行情况下,数码管无法同步正常显示。
解决措施:
用万用表重新测量数码管的参数后发现勿用了共阳极数码管,在重新换上共阴极数码管后即可。
◎问题3:
数码管显示出的数字是乱码。
解决措施:
检查程序后发现参考代码是用于共阳极数码管的,在更改为共阴极数码管程序后即可。
◎问题4:
LED发光二极管发光暗淡。
解决措施:
自己原配的限流电阻过大,换用学校发的500Ω电阻后,发光强度刚好。
◎问题5:
使用AltiumDesigner软件画PCB时找不到目标元件如排针、排阻、STC89C52单片机、晶振相对应的元件库或封装。
解决措施:
用其他元件库代替目标元件,实在无法代替的自己制作元件库或封装。
◎问题6:
将PCB图中的导线加粗后始终显示绿色错误状态。
解决措施:
在菜单栏的Design下点击Rules→Routing→Width→Width,在Constraints栏中修改MaxWidth和PreferredWidth两个值即可。
实物图
万能板搭电路并测试正确后的实物图如图5-1、图5-2所示。
图5–1实物图(正面)图5–2实物图(背面)
运行结果
运行效果如图5-3所示。
图5–3运行效果图
结束语
经过10多天的设计与制作,我终于较圆满地完成了《多台设备自动循环控制》这一课题。
虽然整体看来,一个不怎么复杂的电路花了10多天时间,效率比较低下,但对于第一次经历这种完整的过程的我来说,其结果还是令人欣慰的。
从设计电路到仿真,再到购买元器件,在万能板上搭电路模拟,到用软件画PCB图,再到发送原理图给印制电路板厂家生产PCB板,最终再在做好的PCB板上焊元器件直至完工,其中的艰辛只有我们团队的同学们能够体会得到。
我们首先要感谢陆广平老师对我们的悉心指导,她对我们的课题给予了较为详细的讲解,对我们的元器件选择给予了帮助,作为个人,我要感谢我的同学,正是由于每一个人的共同努力才有了我们最终的结果。
单片机是很重要的一门课程,老师和一些工作的朋友都曾说过,如果学好一门单片机,就凭这个技术这门手艺找一个好工作也不成问题。
尽管我们在课堂学到的内容很有限,但在以后的学习中单片机还需要好好的深入研究和学习,学好了单片机也就多了一项生存的本钱。
最后感谢老师对我们的精心指导和帮助,感谢同学们对我的帮助。
课题终究会结束,但我们的单片机生涯才刚刚开始,今后一定还将遇到更复杂的课题和更难以解决的问题,我相信,只有依靠团队的力量,我们才能取得成功,只有依靠坚忍不拔的毅力我们才能战无不胜!
参考文献
1.《单片机控制实训指导及综合应用实例》张大明主编机械工业出版社
2.《单片机原理及应用技术》陈益飞主编国防工业出版社
3.《AltiumDesigner原理图与PCB设计》周润景张丽敏王伟编著电子工业出版社
4.《电工电子实习教程》(第3版)宋学瑞主编中南大学出版社
5.《基于Proteus的8051单片机实例教程》李学礼主编电子工业出版社
6.《Proteus教程——电子线路设计、制版与仿真》朱清慧张凤蕊翟天嵩王志奎编著清华大学出版社
7.《21天学通C语言》王正仲等编著电子工业出版社
8.《新概念51单片机C语言教程——入门、提高、开发、拓展全攻略》郭天翔编著电子工业出版社
9.《电子线路CAD实用教程》(第3版)潘永顺沙河编著西安电子科技大学出版社
附录
附录一:
多台设备自动循环控制系统设计电路原理图(图附录-1)
图附录–1多台设备自动循环控制系统设计电路原理图
附录二:
Proteus仿真效果图(图附录-4)
图附录–4Proteus仿真效果图
附录三:
多台设备自动循环控制系统设计C语言程序清单
#include<>//包含52系列单片机头文件
#include<>//包含左右移函数的头文件
#defineucharunsignedchar
ucharcodeDSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴0~9显示
uchardataflag;//设标志位
inti,y;
sbitaa=P3^0;//口为循环控制位,低电平时各设备循环运行
sbitbb=P3^2;//口为全部工作位,低电平时所有设备均运行
voiddelay(y)//延时子程序
{
intz;
while(y--)
{
for(z=120;z>0;z--)
if(flag==0)break;//主程序运行过程中当产生中断时跳出延时子程序
}
}
voidint0()interrupt0//外部中断0
{
P1=0x00;
P0=0x7f;
flag=0;
while(aa);//只有口为低电平时才跳出中断
}
voidmain()
{
uchark;
IE=0x81;//EA=1开总中断;Ex0=1开外部中断0;
P1=0x00;
P0=0x7f;
SP=0x7B;//堆栈指针复位
while(aa);//当所接按钮按下时开始对设备循环控制
while
(1)//若外部中断不产生,则一直不跳出该部分
{
flag=1;
if(flag==0)
{break;}
P1=0x7f;
for(i=8;i>0;i--)
{
P1=_crol_(P1,1);//左移函数
k=P1;
switch(k)//数码管显示正在运行的设备编号
{
case0xfe:
P0=0x06;break;
case0xfd:
P0=0x5b;break;
case0xfb:
P0=0x4f;break;
case0xf7:
P0=0x66;break;
case0xef:
P0=0x6d;break;
case0xdf:
P0=0x7d;break;
case0xbf:
P0=0x07;break;
default:
P0=0x7f;break;
}
delay(500);
}
for(i=8;i>0;i--)
{
P1=_cror_(P1,2);
k=P1;
switch(k)
{
case0xfe:
P0=0x06;break;
case0xfd:
P0=0x5b;break;
case0xfb:
P0=0x4f;break;
case0xf7:
P0=0x66;break;
case0xef:
P0=0x6d;break;
case0xdf:
P0=0x7d;break;
case0xbf:
P0=0x07;break;
default:
P0=0x7f;break;
}
delay(500);
}
}
}
附录四:
多台设备自动循环控制系统设计元器件目录表
序号
元器件名称
数量
1
STC89C52单片机
1块
2
8段1位LED数码管
1个
3
红色蓝光LED发光二极管
8只
4
510Ω限流电阻
8只
5
1kΩ电阻
1只
6
102排阻
1个
7
12M晶振
1个
8
30pF电容
2只
9
10μF电解电容
1只
10
排针、导线
若干
11
轻触按钮
3个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设备 自动 循环 控制系统 单片机 课程设计 报告