嵌入式实践一刘博文.docx
《嵌入式实践一刘博文.docx》由会员分享,可在线阅读,更多相关《嵌入式实践一刘博文.docx(13页珍藏版)》请在冰豆网上搜索。
嵌入式实践一刘博文
课程设计报告
(嵌入式技术实践
(一))
学院:
电气工程与自动化学院
题目:
基于74HC595的TinyHMI电路设计与制作
专业班级:
自动化123班
学号:
16
学生姓名:
刘博文
指导老师:
王祖麟
2013年4月7日
摘要
我们生活在信息与科技高速发展的信息时代,高科技产品的更新的换代也是越来越快。
作为21世纪的大学生,我们身处这样的环境中,就必须使自己能够适应这个社会所需。
自动化作为处在科技前沿的专业,我们学生就要打好基础,跟上时代的步伐。
为了让同学们在做中学。
同学们自己设计和制作TinyHMI键盘显示板,并从中深入了解和理解自动化嵌入式。
从而为进一步实现人机对话,测量以及控制这些自动化的基本控制做基础。
从理论到实践,让同学们更好的理解嵌入式,增长同学的实践和设计能力。
关键字:
自动化;TinyHMI;PCB制板;嵌入式;人机对话;实践;能力
目录
第一章绪论5
1.1课题背景5
1.2课题概述5
1.3设计要求5
第二章系统的设计6
2.1实践原理6
2.2实践器材6
2.3实践目的6
第三章软件设计7
3.1硬件开发的软件介绍7
3.1.1AltiumDesigner097
3.1.2PCB的绘制过程7
3.2编程环境介绍7
第四章系统实现8
4.1硬件实现8
4.1.1系统PCB板的制作8
4.12系统硬件调试8
4.2软件实现9
4.3实现效果11
结束语:
12
致谢12
参考文献13
第一章绪论
1.1课题背景
自动化专业要求学生不仅通晓软件编程,在硬件设计方面也有要求——硬件够硬,软件不软。
通过上个学期的学习我们已经能熟练的通过软件编程来控制数码管的显示(通过直接对单片机的管口的操作来控制断码和位码),也弄清楚了数码管显示的原理。
但不足的地方在于通过直接控制IO口输出相应的断码位码太占用管脚。
故通过在数码管显示板上添加相应的芯片可达到节省管脚的目的,也可达到高效管理的效果。
制版的方法有很多种,手工制作数量少时选择PCB制版是相对经济的,其制作流程也易于掌握,适合初学者学习实践。
1.2课题概述
PCB技术,在如今这个时代是一门至关重要的技术是我们作为一门电子工程师必须掌握和运用的科学技术。
而电子电路设计制作方面也同样极为重要,同时掌握着两种技术,我们便可以制作出自己漂亮实用的电子产品。
有时候我们可能找不到符合设计要求的电子电路板,因此需要自行设计出符合设计和软件要求的腐蚀电路板。
计算机作为现代化的科学工具,必须熟练掌握,我们制作的8位8键串行键盘显示板中的TinyHMI电路设计和PCB便要借助这个平台完成。
所以,本次课题便是基于74HC595的TinyHMI电路设计与制作。
1.3设计要求
要求运用AD9软件制作TinyMHI键盘显示板的原理图和PCB图,经过热转移并腐蚀出电路板,钻孔并将元件焊接好,最后调试至实验要求的效果。
第二章系统的设计
2.1实践原理
通过单片机I/O口控制两片74HC595驱动2个共阴极LN3461AS数码管与8个按键的TinyHMI键盘显示板。
74HC595芯片内部的移位寄存器在CP上升沿的作用下保证将加载D端的二进制数据依次送入到移位寄存器中。
当数据移位完成之后在STR上升沿的作用下移位寄存器中的数据将一次性的送入数据存储锁存器输出(串行并出)从而保证在移位的过程中输出端的数据保持不变。
进而使数据能够实现“串进并处”。
其基本原理为首先通过DATA引脚发送要显示数据的断码然后再通过DATA引脚发送显示数据在哪一位即位码。
两个74HC595芯片是分开工作的其中右边595芯片是负责传送断码的左边595芯片是负责传送位码的。
这也是为什么要先传送断码后传送位码的原因所在。
检测按键是通过KEY引脚来检测其中8个按键分别跟8个数码显示管连在一起。
在按键的过程中通过扫描哪一位为低电平就可以确定是哪个按键按下,然后再通过是哪个按键按下做出相应的功能操作。
2.2实践器材
74HC595可将单片机D引脚的串行数据转为8位并行并一并输出。
595有两种:
贴边和直插,贴片595虽然小,但对于初学者不易操作(焊接时难度大),故芯片选择595。
CPS03641AR4位共阴数码管。
2.3实践目的
此次课程实践,目的是为了通过亲身经历整个PCB板个各个制作过程——从软件布局布线到硬件组装(打印、热转移、腐蚀、钻孔、焊接、调试)——熟悉电子设计制作的各个流程,培养工程意识。
一块595数码管PCB板虽然简单,但其中投射出的是今后工程实践的大部分思想。
或许这次制作所获得的思想和经验会远远重于这么一块小小的板子。
第三章软件设计
3.1硬件开发的软件介绍
3.1.1AltiumDesigner09
原理图中的规范:
1、原理图中各个电器元件必须有编号,否则生成PCB时会发生冲突。
2、各个元器件之间的连线必须是有电器属性的线。
3、应注意元件的封装,分清楚贴片式和直插式。
4、若相应的元件库中没有需要的元件,可自行画封装,或下载需要的元件库。
3.1.2PCB的绘制过程
1、原理图
原理图布局应整齐、有序,各元器件放置必须准确无误与实际相符。
网络标号应放置在相应的连线上,不能直接标在器件的引脚上。
原理图中的器件时为了让软件生成PCB图,若引脚与器件大小相同,则其参数对后面的步骤影响不大,只是为了方便读图。
选用器材时应注意设置贴片式和直插式。
2、PCB布线
生成PCB图时,应把红色的背景删除。
并用keep-outlayer线框出规定范围。
整体的布局应做到美观大方。
其中电源线必须选择30mil的线,其它线的最小宽度不得小于10mil。
布线为了将来不影响信号的传输,铜线的夹角都应该是135°。
TinyMHI数码显示板是双面板,在选择布线时应劲量使用蓝线(背面),减少红线(正面)。
在不知如何布线的时候可以使用自动布线来启发,但在使用自动布线之前需要规定一块封闭的区域,不然在自动布线的时候会导致死机。
当所有的牵引线(白线)都连完的时候,即画好PCB图。
3.2编程环境介绍
TKStudio_09IDE是广州致远电子有限公司开发的一个微处理软件开发平台,是一款具有强大内置编辑器的多内核编译/调试环境,支持8051、ARMv4/v5/v7、AVR等内核,可以完成从工程建立和管理、编译、连接、目标代码的生成,到软件仿真、硬件仿真等完整的开发流程。
第四章系统实现
4.1硬件实现
4.1.1系统PCB板的制作
1、打印:
打印时应将上层(红线)进行镜像。
再在打印属性里将多余属性的层线删除。
在打印预览页面确认无误之后选择1:
1比例打印。
打印时应选用油性纸,以防纸张在热转移时因过热而燃烧。
2、热转移:
将打印好的纸紧贴铜板,再包上一层油纸进行热转移。
最好过三次。
在第二面进行热转移时应仔细对齐以防焊盘错位。
(可以用铁丝加已固定)转移三次拆纸时,应注意将纸全部拆除,否则会导致下一步的腐蚀不彻底。
3、腐蚀:
腐蚀选择三氯化铁或浓盐酸与双氧水的混合液。
建议选择前者(不会产生刺激性气体、但成本较高)。
在腐蚀过程中,应将板子在液体中来回漂动以加快腐蚀效率。
腐蚀时注意安全。
4、钻孔:
打孔应垂直,一气呵成。
在打孔打磨好后建议先用万用表测试相应的钻孔是否都联通,减小后续调试的难度。
5、焊接:
建议先焊接高度低的原件再焊接高度高的原件(易于操作)。
注意正反面。
焊接时的正确操作应该是:
将焊锡靠在引脚与焊盘上,再将烙铁靠在焊锡上,待焊锡化开后用烙铁将其弄成锥形。
焊接时动作应劲尽量快并保持整个板子的美观。
4.12系统硬件调试
对于我们初学者来说,大多数同学焊接好了的板子不能立刻有相应的效果,应该进行调试。
在调试时建议使用万用表二极管档或200欧档,若能有导通时鸣叫的万用表最好。
若数码管的某一位不亮,对照PCB原理图检测相应的位码引脚及相应的连线。
若不同位码的相同段码不亮,对照PCB原理图检测相应的段码引脚及相应的连线。
芯片的引脚编码是从昨上开始编码的,编码为”U”型,从1开始的。
调试过程漫长又枯燥,需要极大的耐性。
调试时应保持良好的心态。
4.2软件实现
TinyHMI键盘显示板调试程序:
#include"595_cfg.h"
#include"595.h"
#include"delay100us.h"
#include<8051.h>
#include"Port.h"
#ifndefTinyHMI_cfg
#defineTinyHMI_cfg
#defineucharunsignedchar
#defineuintunsignedint
#defineSck_CPP0_0
#defineRCK_STRP0_1
#defineDAT_DP0_2
#defineKEYP0_3
#define_nop_();
staticcodeTinyHMI_duan[]={{0x00},{0x3f},{0x06},{0x5b},{0x4f},{0x66},{0x6d},{0x7d},{0x07},{0x7f},{0x6f}};
staticcodeTinyHMI_wei[]={{0x00},{0x01},{0x02},{0x04},{0x08},{0x10},{0x20},{0x40},{0x80}};
uintkeyvalue;
voidTinyHMI_STR(void)
{
RCK_STR=1;//STR开解锁控制字
_nop_();
RCK_STR=0;
}
voidTinyHMI_CP(void)
{
Sck_CP=1;//CP方波移位控制字
_nop_();
Sck_CP=0;
}
chardelay100us(unsignedintuiDly)
{
unsignedchark;
do{
k=46;
do{
}while(--k!
=0);
}while(--uiDly!
=0);
return0;
}
voidTinyHMI_Display(unsignedcharData)//8位串入并出带锁存送数子程序
{
unsignedchari;
for(i=0;i<8;i++){
DAT_D=Data&0x80;
Data<<=1;
TinyHMI_CP();
}
}
voidTinyHMI_Show(unsignedi,unsignedj)
{
TinyHMI_Display(TinyHMI_duan[i+1]);
TinyHMI_Display(~TinyHMI_wei[j+1]);
TinyHMI_STR();
delay100us(22);
}
voidTinyHMI_Scan(void)
{
unsignedi;
for(i=0;i<9;i++){
TinyHMI_Display(TinyHMI_duan[i]);
TinyHMI_Display(~TinyHMI_wei[i]);
TinyHMI_STR();
if(KEY==0)keyvalue=i;
if(keyvalue==1)TinyHMI_Show(1,0);
if(keyvalue==2)TinyHMI_Show(2,1);
if(keyvalue==3)TinyHMI_Show(3,2);
if(keyvalue==4)TinyHMI_Show(4,3);
if(keyvalue==5)TinyHMI_Show(5,4);
if(keyvalue==6)TinyHMI_Show(6,5);
if(keyvalue==7)TinyHMI_Show(7,6);
if(keyvalue==8)TinyHMI_Show(8,7);
delay100us(22);
}
}
voidmain(void)
{
while
(1)
{
TinyHMI_Scan();
}
}
4.3实现效果
初始时八位依次显示
按相应位的按键,相应位亮。
结束语:
本次课程实践是我们第一次制作PCB腐蚀电路板,在上学期我们的实践多为软件编程对单片机的操控。
本学期的PCB实践是我们宝贵的硬件实践。
自动化专业对软件和硬件的要求都很高,本次实践将软件画图、硬件调试整合,是很好的一次软件和硬件的结合。
致谢:
感谢王祖麟老师为我们提供器材,罗龙老师的多次亲临指导,学长们帮我们悉心调试板子。
大一的器材管理员钟荣春同学在本次实践中身挑重任,勇于奉献,特表感谢!
自动化121马正保123徐杨杰对我的大力支持。
心得
PCB制板说易不易说难不难。
刚开始学习AD9的使用的时候,初学咋练,处处敬小慎微,有时候花了大时间把元件摆好把线连完还不能生成正确的PCB图层。
经过累加器PCB图的绘制,积累了经验,渐渐发现PCB绘图其实没有太多的限制要求,只要能生成符合要求的PCB图,如何布线排版都是自己的经验和发挥。
从本次的制作中,PCB图绘制有以下几点心得:
1、双面板PCB布线时应尽量多使用底层线(蓝线),正面的顶层线(红线)应尽量减少,以减少后期焊接时出现的不必要的麻烦。
2、布线应尽适当的粗,以免影响信号的传递,为减少后期焊接的压力,走线应尽量减少从焊盘中间穿过。
3、在连接芯片的引脚的时候应简洁明了。
4、打印的时候注意镜像对称。
得到一张好的PCB图是一个好的开始,也是成功的一半,一张好的PCB图会省去后期的很多麻烦。
腐蚀(泡板子)的时候氯气的味道很不好闻……注意不要吸入太多。
在打孔的时候应注意孔洞和焊盘的对齐,若无对齐,在焊接的时候极易造成虚焊。
因为是第一次制作PCB板,其中遇到的问题太多太多。
以上的步骤都做完,看似板子即将大功告成,其实不然,焊接是一门技术活,说白了就是一门手艺,焊接技术的好坏直接影响到板子的成功与否。
最后说一说从焊接中习得的心得。
焊接时最好有一块海绵,将板子放在海绵上焊接,海绵可以将元器件压实,利于焊接。
焊接二脚元件(电阻、电容等)时,可先将一边焊好,再调整一下元件的位置,再将另一个脚焊好,这样焊出的板子美观。
最后说下制作时的心态问题,制作板子的时候问题总是一个接着一个的出现,再加上技术上的缺陷,很容易导致在一个问题上过不去,这时就是考验人的时候,要不就是调整好心态继续将板子调整好,要不就索性先将其丢一边,待心情平稳的时候再将其调试好。
心态其实很影响板子的制作的。
参考文献
周立功.计算机基础教程.北京航空航天大学出版社