PCB电路板绘制和单片机设计文档格式.docx
- 文档编号:22618681
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:11
- 大小:302.30KB
PCB电路板绘制和单片机设计文档格式.docx
《PCB电路板绘制和单片机设计文档格式.docx》由会员分享,可在线阅读,更多相关《PCB电路板绘制和单片机设计文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
参
数
设计参数:
能够用AD按照给定的参数的要求要求绘制元器件图库和封装图原理图库,误差精确的0.01mm。
实际单片机程序,利用计时器实现小灯1S、2S的闪烁,而且能够在数码管上实现时钟计时。
要
求
利用印刷电路板(简称PCB)绘图软件AltiumDesigner(简称AD)绘制单片机系统印刷电路板,学会利用51单片机开发板对I/O口控制、数码管显示、中断、定时器和串口等基本功能调试。
工
作
量
10个工作日
划
2014.7.5-2014.7.8学习绘制PCB电路板
2014.7.9-2014.7.9焊接PCB板
2014.7.10-2014.7.12学习单片机编程,设计单片机程序
2014.7.13-2014.7.13绘制PCB电路板与单片机设计测试
2014.7.14-2014.7.14课设结题,实验总结
考
资
料
[1]周冰主编.《Altium_Designer_Summer_09从入门到精通》.机械工业.2011
[2]彦龙.PCB教学PPT.2014
[3]单片机教学PPT.2014
[4]郭天祥.《新概念51单片机C语言教程+入门、提高、开发、拓展全攻略》.电子工业.2012
指导教师签字
基层教学单位主任签字
年月日
理学院12级电子信息科学与技术一班
摘要:
本文主要分为两个部分,分别是PCB板的绘制和对单片机程序的编译与调试。
本次课设,我们需要利用软件AD9以及相应硬件说明书,完成对指定PCB电路板的绘制,后期使用Keil单片机编程软件,完成了指定功能的单片机程序的设计。
关键词:
PCB、单片机、AD软件、Keil软件
ThePCBcircuitboarddrawingandchipdesign
Abstract:
Thispaperisdividedintotwoparts,whicharedrawnonthePCBboardandmicrocontrollerprogramcompilationanddebugging.Theclass-based,weneedtousetheappropriatehardwareandsoftwareAD9instructionstocompletethedesignatedPCBdrawingboard.AndlaterweuseKeilmicrocontrollerprogrammingsoftwaretocompletedthedesignspecifiedfunctionmicrocontrollerprogram.
Keywords:
PCB、AD9、Singlechipmicrocomputer、Keilsoftware
一、学习目的
1.更正学习习惯,端正学习态度,建立一个良好的学习氛围。
2.在AD软件中完成元件原理图和原理图库的建立,完成元件的封装和PCB图;
完成PCB电路板的焊接。
3.对单片机有一个系统的了解,掌握简单的单片机程序的变成设计,并在STC_ISP_V483进行下载调试。
二、学习软件
AltiumDesigner、KeiluVision、STC_ISP_V483
三、学习容
●在AD中进行PCB的绘制
1、根据提示在电脑中正确安装AltiumDesigner软件,打开软件,对软件的各操作项有个简单的了解。
2、在该软件下建立一个工程,在工程下新建一个空白原理图图纸,对新建的图纸按照要求进行参数设置。
注意的是一个工程对应一个文件夹,文件夹最好建立在桌面上,原理图图纸必须建立在之前所建立的工程下。
3、将原理图库在library下分解出来,方便在建立自己的原理图库中使用。
4、建立一个自己的原理图库,可以将软件中自带的元器件图复制到自己建的库中,对于那些没有的元器件,我们可以按照原理图自己绘制,如1364372-1USB端口。
图3-11364372-1USB元器件图
5、对原理图中的所有元器件进行按照图纸进行摆放,为了使电路图清晰保持Ctrl键按下,滚动鼠标的滑轮可以放大或缩小。
在放置元器件是也按下Tap键,对元器件的各参数进行修改。
原理图中利用连线工具对所有器件按照原理图进行连线,最后保存原理图。
6、对原理图进行编译,编译项目可以检查设计文件中的设计草图和电气规则的错误,并提供给设计者一个排除错误的环境。
例如,要编译51Board项目,选择Project→CompilePCBProject51Board.PrjPcb,当项目被编译后,任何错误都将显示在Messages面板上,如果电路图有严重的错误,Messages面板将自动弹出,否则Messages面板不出现。
根据Messag提示的信息对原理图进行改正,并最终保存,如图3-2是完成的原理图。
3-2原理图
7、元器件的封装,如果将元器件焊接在板子上,所以元器件需要封装,同样我们可以新建一个元器件封装图库。
我们了可以利用软件自带的元器件封装,在library下分解出来即分装库。
在自带的分装库下对元器件分装进行复制,粘贴到自己的元器件封装图库中。
对于那些图库中没有的元器件封装图我们可以自己进行绘制,首先新建一个元器件封装图库,绘制元器件封装图可以有两种方法,一种是利用软件中的封装向导,按照参数要求绘制封装图,一般使用PCBComponentWizard创建封装,如图3-3所示的CH340T_SSOP20封装图;
第二种方法是自己绘制,同样是按照元器件的基本参数利用绘图工具进行绘制(Tap键设置参数),如图3-4所示的SW-6分装封装图。
图3-3CH340T_SSOP20图3-40603R
8、将原理图设计转换为PCB设计,在将原理图设计转换为PCB设计之前,需要创建一个有最基本的板子轮廓的空白PCB。
在AltiumDesigner中创建一个新的PCB设计的最简单方法是使用PCB向导,它可让设计者根据行业标准选择自己创建的PCB板的大小。
在向导的任何阶段,设计者都可以使用Back按钮来检查或修改以前页的容。
按照要求自定义一个空白板子。
在将原理图信息导入到新的PCB之前,确保所有元件都添加了它的封装。
在原理图编辑器,执行Tools→FootprintManager命令,显示封装管理器检查对话框,检查是否所有元件都有封装图。
9、在所有元件都有封装图的条件下,导入元件,在主菜单中选“Design”→“ImportChangesFrom51.PrjPcb”命令,按照向导执行操作,将原理图中的元件和连接关系导入到PCB板中,至此PCB板文件的容与原理图文件就完全一致了。
图3-5PCB工作区容
10、单击PCB图中的元件,将其一一拖放到PCB板中的“Keep-Out”布线区域。
单击元件U1,将它拖动到PCB板中靠左边靠上的区域;
在拖动元件到PCB板中的“Keep-Out”布线区域时,可以一次拖动多个元件,如选择3个元件DS1-DS3(鼠标单击DS1元件的左下角,然后单击DS3元件的右上角),按住鼠标左键将它拖动到PCB板中部用户需要的位置时放开鼠标左键。
放置元件时,选择于其它元件连线最短,交叉最少的原则,可以按Space键,让元件旋转到最佳位置,才放开鼠标左键。
布置完成后的PCB板如图3-6所示。
图3-6手动布局完成后的PCB板
11、交互式布线,交互式布线并不是简单地放置线路使得焊盘连接起来。
交互式布线工具能直观地帮助用户在遵循布线规则的前提下取得更好的布线效果,包括跟踪光标确定布线路径、单击实现布线、推开布线障碍或绕行、自动跟踪现有连接等。
当进入交互式布线模式后,光标便会变成十字准线,单击某个焊盘开始布线。
当单击线路的起点时,当前的模式就在状态栏或在悬浮显示。
此时向所需放置线路的位置单击或按Enter键放置线路。
把光标的移动轨迹作为线路的引导,布线器能在最少的操作动作下完成所需的线路。
光标引导线路使得需要手工绕开阻隔的操作更加快捷、容易和直观。
也就是说只要用户用鼠标创建一条线路路径,布线器就会试图根据该路径完成布线,这个过程是在遵循设定的设计规则和不同的约束以及走线拐角类型下完成的。
在布线的过程中,在需要放置线路的地方单击然后继续布线,这使得软件能精确根据用户所选择的路径放置线路。
如果在离起始点较远的地方单击放置线路,部分线路路径将和用户期望的有所差别。
按照PCB设计图将所有的元件连接起来。
12、最后对PCB图进行覆铜,连线完成之后,切换到顶层,使用快捷键P-G,按红线部分绘制,同理在底层绘制。
运行设计规则检查:
Tools→DesignRuleCheck给出错误报告。
最后进行保存,敷完铜之后的现象如图11-1所示。
图3-7覆铜的PCB板
●焊接PCB板
准备好焊接板子所需要的元器件,将元器件引脚插到板子的洞中,利用焊锡将所有的元器件焊接到板子上,注意焊接的时候不要有虚焊,烙铁不能在板子上呆的时间太长,以免焊坏板子,更要注意不能烫到人,将元器件按照一定顺序焊接到板子上,最后检测板子是否焊的成功。
将板子用数据线连接到电脑上,检查是否能够下载进程序,以及下载进程序后能否使数码管亮起来,小灯也能够亮起来,否则表示焊接不成功,需要检查是否有焊接不良的地方,对有问题的地方进行修改,直至满足要求。
●软件调试
1、软解调试是单片机设计的最后一个环节,通过软件调试能够使单片机表达出设计者的意图。
与以前所学的知识关联很少,只需要掌握很基本的数电模电知识,如二进制、十进制、十六进制之间的转换,与、或、非逻辑关系等,对各种器件的概念基本上是从0开始,如果要用C语言编程,需具备简单的C语言基础。
首先需要了解单片机,在一片集成电路芯片上集中央处理单元(CPU)、存储器、I/O接口电路,从而构成了单芯片微型计算机,即单片机或微控制器。
2、单片机主要掌握以下几点,电源、晶振、复位电路是使系统能够运行起来的必要条件。
单片机任意IO口的随意操作
(1)控制电平高低;
(2)输出检测电平高低。
定时器:
重点掌握最常用的方式。
中断:
外部中断、定时器中断、串口中断。
串口通信:
单片机之间、单片机与计算机间。
3、实现定时功能,比较方便的办法是利用单片机部的定时/计数器。
定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。
TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能;
TCON是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。
定时/计数器的工作原理:
加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;
一个是T0或T1引脚输入的外部脉冲源。
每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时/计数器中断允许时)。
如果定时/计数器工作于定时模式,则表示定时时间已到;
如果工作于计数模式,则表示计数值已满。
可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。
4、最开始编写程序比较困难,我们可以先记住一些子程序,将其套在主程序中即可。
a)普通的延迟函数:
voiddelay(unsignedints)
{unsignedinti,j;
for(i=0;
i<
s;
i++)
{for(j=0;
j<
1000;
j++);
}}
b)1s的延迟函数:
voiddeply_1s()
{unsignedchari=0;
100;
{while(TF1!
=1);
TH1=(65536-9216)/256;
TL1=(65536-9216)%256;
TF1=0;
//}}
5、首先实现一个小灯常亮,程序如下所示:
#include<
reg52.h>
//头文件一般无需改动sbitled0=P1^7;
//led口通过此口控制led0voidmain(){led0=0;
//点亮led0while
(1);
}
6、利用单片机的定时功能实现1s流水灯的操作,程序如下:
#include<
sbitled1=P1^0;
voiddelay_1s(){unsignedchari=0;
i++){while(TF1!
TH1=(65536-9216)/256;
//存储的初值高八位TL1=(65536-9216)%256;
TF1=0;
}voidmain(){unsignedcharj;
/*定时器初始化*/TMOD=0x010;
//定时器1工作工作方式TH1=(65536-9216)/256;
//存储的初值高八位TL1=(65536-9216)%256;
//存储的初值低八位TR1=1;
for(j=0;
8;
j++){P1=~(1<
<
j);
delay_1s()}}
7、单片机中的CPU在每个程序周期都会检查中断源(比如说外部中断,计时器溢出)一旦发现有中断,马上停止当前的程序(一般情况是,高级的单片机要仲裁中断等级),并保护现场(寄存器的值入栈),然后调用中断程序。
中断程序结束后,恢复现场(刚刚入栈的值出栈),继续刚刚的程序。
例如下例利用中断实现按键打开小灯,并使小灯能够按照及时实现亮灭:
sbitkey1=P3^2;
voiddelay(unsignedints){unsignedinti,j;
led1=1;
for(i=0;
i++)for(j=0;
}voiddelay_1s(){unsignedchari=0;
i++){while(TF0!
TH0=(65536-9216)/256;
//存储的初值高八位TL0=(65536-9216)%256;
TF0=0;
}led1=~led1;
}voidmain(){IT0=0;
EX0=1;
//外部中断0使能EA=1;
while
(1);
}voidkey()interrupt0//中断服务入口{delay(5);
//防抖if(key1==0){while(key1==0);
//松手检测{delay_1s()}}}
8、调试数码管,是数码管能够实现定态的现实某个数,例如下例实现第一位数显示1:
#defineuintunsignedint#defineucharunsignedcharsbitwei=P2^7;
sbitduan=P2^6;
sbitA1=P0^3;
voidmain(){wei=0;
duan=0;
wei=1;
A1=0;
//打开位选芯片//选中第一位数码管wei=0;
//关掉位选芯片duan=1;
P0=0x5f;
duan=0;
while
(1);
}
9、最后实现数码管能够按照分秒的方式显示,其中用到了计时器和中断,程序如下:
#defineuint16unsignedintsbitwei=P2^7;
sbitduan=P2^6;
uint8duanxuan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uint8weixuan[4]={0x0e,0x0d,0x0b,0x07};
uint16pause=0;
uint16num=0;
uint16jishi=0;
uint16min=0;
voiddelayms(uint16num);
#definegewei0#defineshiwei1#definebaiwei2#defineqianwei3voidmain(){uint8ge=0,shi=0,bai=0,qian=0,i=0;
TMOD=0x01;
TH0=(65536-9216)/256;
TL0=(65536-9216)%256;
TR0=1;
ET0=1;
EA=1;
while
(1){if(jishi==100){jishi=0;
num++;
if(num==60){num=0;
min++;
}if(min==60)min=0;
ge=num%10;
shi=(num/10)%10;
bai=min%10;
qian=(min/10)%10;
}wei=1;
P0=weixuan[gewei];
wei=0;
duan=1;
P0=duanxuan[ge];
duan=0;
delayms
(1);
wei=1;
P0=weixuan[shiwei];
P0=duanxuan[shi];
P0=weixuan[baiwei];
P0=duanxuan[bai];
P0=weixuan[qianwei];
P0=duanxuan[qian];
}}voidT0_time()interrupt1{jishi++;
TH0=(65536-9216)/256;
}voiddelayms(uint16num){uint16i,j;
num;
110;
四、总结
通过对PCB和单片机的学习,我们对单片机有了更深的认识,尤其是对单片机的工作原理以及单片机的设计有深入了解。
通过这次课设,不仅让我在学习方面端正了自己的学习态度,明确了学习目标,认识到自己的不足,而且在学习交流的过程中也认识许多朋友,与他们有了进一步的了解,大家一起学习,一起进步,很开心。
这段时间,大家明显和平时的学习情况不同,学习热情高涨,共同建立了一个良好的学习氛围。
希望在以后的学习中继续保持。
参考文献
1.郭天祥51单片机C语言教程;
2.周冰田胡仁喜AltiumDesignerSummmer09从入门到精通;
3.科技8051系列单片机C程序设计完全手册
4.光东、性初单片微型计算机原理与接口技术
5.广兴图解单片机功能与应用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PCB 电路板 绘制 单片机 设计