电子电路CAD温度控制.docx
《电子电路CAD温度控制.docx》由会员分享,可在线阅读,更多相关《电子电路CAD温度控制.docx(26页珍藏版)》请在冰豆网上搜索。
![电子电路CAD温度控制.docx](https://file1.bdocx.com/fileroot1/2022-12/12/5e3c9b7b-b388-4679-b23c-0bd0166f79e6/5e3c9b7b-b388-4679-b23c-0bd0166f79e61.gif)
电子电路CAD温度控制
《电子电路CAD》
课程设计报告
学院:
电力学院
专业:
电子科学与技术
学期:
2013-2014第一学期
学号:
XXXXXXXXX
姓名:
XXX
指导老师:
XXXXXXXXX
第一章设计概述……………………………………………………………2
1.1使用软件简介……………………………………………….2
1.2设计目的及要求…………………………………………….2第二章原理分析……………………………………………………………3
2.1温度控制器的结构…………………………………………3
2.2各电路的原理分析…………………………………………3
第三章原理图绘制………………………………………………………6
3.1原理图设计的一般步骤……………………………………6
3.2元件库的设计………………………………………………..7
第四章PCB图的绘制……………………………………………………84.1创建该项目下的PCB文件………………………………84.2绘制PCB………………………………………………….,,,,,9
4.3设计规则检查…..………………………………………..…...9
第五章软件设计..............................................10
总结………………………………………………………………15
附录(图纸和清单)
第一章设计概述
1.1使用软件简介
a.使用汇编语言或C语言要使用编译器,以便把写好的程序编译为机器码,才能把HEX可执行文件写入单片机内。
KEILuVISION是众多单片机应用开发软件中最优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,甚至ARM,它集编辑,编译,仿真等于一体,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。
因此很多开发51应用的工程师或普通的单片机爱好者,都对它十分喜欢。
KEILuVision5是uVision4的升级版本,页面有了进一步的优化,使用起来更加的人性化。
b.DXP软件
Altiumdesignersummer13是Altium公司推出的新版本的电路设计软件,是在Protel99SE的基础上,应用最先进的软件设计方法,它不仅可以进行电路原理图和PCB电路板的设计之外,还提供了FPGA设计、嵌入式软件设计、信号仿真分析、3D仿真等多种设计仿真平台,是所有设计工具集于一身的板级设计系统。
1.2设计目的及要求
a、设计要求
(1)设计一个温度控制器电路;
(2)根据性能指标,计算元件参数,选好元件,设计电路并画出电路图;对设计电路进行模拟与测试。
(3)撰写设计报告。
b、技术指标
温度测量范围0—99℃,精度误差为0.1℃;LED数码管直读显示;温度报警指示灯;
第二章原理分析
2.1温度控制器的结构
运用protues软件进行仿真,keil软件与其调试
2.2各电路的原理分析
本设计采用上电按钮复位电路:
首先经过上电复位,当按下按键时,RST直接与VCC相连,为高电平形成复位,同时电解电容被电路放电;按键松开时,VCC对电容充电,充电电流在电阻上,RST依然为高电平,仍然是复位,充电完成后,电容相当于开路,RST为低电平,单片机芯片正常工作。
其中电阻R2决定了电容充电的时间,R2越大则充电时间长,复位信号从VCC回落到0V的时间也长。
本设计晶振电路采用12M的晶振。
晶振的作用是给单片机正常工作提供稳定的时钟信号。
单片机的晶振并不是只能用12M,只要不超过20M就行,在准许的范围内,晶振越大,单片机运行越快,还有用12M的就是好算时间,因为一个机器周期为1/12时钟周期,所以这样用12M的话,一个时钟周期为12us,那么定时器计一次数就是1us了,电容范围在20-40pF之间,这里连接的是20pF的电容。
机器周期=10*晶振周期=12*系统时钟周期
第三章原理图绘制
3.1原理图设计的一般步骤
1.创建一个工程文档:
file,new,project,pcbproject(创建工程文档很重要,为后面原理图的检错,产生网络表和PCB设计奠定基础,否则不能进行设计);
2.创建一个原理图文件:
file,new,schematic,并且保存全部文件;
3.设置图纸的大小:
右击图纸,options,documentoptions,standardstyles选择图纸大小;
4.放置元件图符号:
libraries,选择miscellaneousdevices原理图库,寻找原理图元件图符号,并且,注意元件的封装(一般都带有封装,没有的话,可以按TAB键进行选择合适的封装后再放置元件,这样每放一个元件,就有相应的封装了),可以先放置好一类符号元件,然后放另外一类的元件,直至一一放完所有的元件,例如,放置完所有的电阻元件等等);在放置元件图符号时,对于已经装载的库中没有的,或找不到的元件,必须查找。
查找元件图:
点击原理图纸空白处,在弹出的下拉菜单中,选择findcomponent,在librariessearch中,输入要查找的元件名称,选中clearexistingquery,scope中,选择librariesonpath,path定位于安装2004的文件夹,按查找即可进行查找中;
5.给元件规划流水号(系统给元件自动编号,注意一般不手动编号,否则容易发生错误!
):
tools,annotatequiet(如果没有规划好,可以复位后重来规划:
tools,resetdesignators);
6.元件布局与电气连接:
手工拖放布局。
布局的优劣以方便电气连接为佳(电气连接有两种方式:
用导线连接和NET连接。
导线连接一定要从元件脚端点开始连线,连接不能重叠,否则会出来多余的点),放置导线与网络电气连接;
7.检查错误:
右击原理图的空白处,workspacepanels,designcompilers,compile
errors,在弹出的compileerrors卡上没有错误,说明编译通过。
保存全部文档;
8.元件的选择,旋转,删除、排列和元件相关参数的修改等等在元件的布局或修改时,经常要用到;
9.产生网络表:
design,netlistfordocument,protel.项目文件夹中可以看到网络表文件,打开,可以看到元件的说明与电路原理图的电连接网络情况;
10.保存并且打印输出原理图纸。
3.2元件库的设计
1.创建一个工程文档:
file,new,project,pcbproject(创建工程文档很重要,为后面原理图的检错,产生网络表和PCB设计奠定基础,否则不能进行设计);
2.创建一个原理图文件:
file,new,schematic,并且保存全部文件;
3.设置图纸的大小:
右击图纸,options,documentoptions,standardstyles选择图纸大小;
4.放置元件图符号:
libraries,选择miscellaneousdevices原理图库,寻找原理图元件图符号,并且,注意元件的封装;在放置元件图符号时,对于已经装载的库中没有的,或找不到的元件,必须查找。
5.给元件规划流水号:
tools,annotatequiet;
6.元件布局与电气连接:
手工拖放布局。
布局的优劣以方便电气连接为佳(电气连接有两种方式:
用导线连接和NET连接。
导线连接一定要从元件脚端点开始连线,连接不能重叠,否则会出来多余的点),放置导线与网络电气连接;
7.检查错误:
右击原理图的空白处,workspacepanels,designcompilers,compile
errors,在弹出的compileerrors卡上没有错误,说明编译通过。
保存全部文档;
8.元件的选择,旋转,删除、排列和元件相关参数的修改等等在元件的布局或修改时,经常要用到;
9.产生网络表:
design,netlistfordocument,protel.项目文件夹中可以看到网络表文件,打开,可以看到元件的说明与电路原理图的电连接网络情况;
10.保存并且打印输出原理图纸。
第四章PCB图的绘制
1.创建一个PCB文档:
file,new,PCB,SAVEALL;
2.PCB参数设置:
右击PCB的空白处,选择options,boardoptions,选择测量单位;在keepoutlayer层,选择place,dimension,dimension画标尺的长度,以规划电路版的长宽大小,再选择place,line,画版的大小;再右击PCB的空白处,选择design,rules,在弹出的卡中点击routing,width进行设置连接导线的宽度,和布线板层的层数routinglayers,单面板,只选择bottomlayer,双面板,还要选择toplayer;
3.将原理图中各元件的电气连接关系,导入PCB文档中各元件封装的连接关系,为元件布局的连线提供保证。
步骤:
在PCB文档中,选择design,updateschematicinPCBproject.prjpcb,在弹出的confirm中选择YES,在弹出的differencesbetweenschematicdocumentandPCBdocument卡中右击,点击updateallinPCBdocument,再点击createengineeringchangeorder,再点击validatechanges,STATUS栏全部打勾后,说明基本没有问题,最后点击executechanges,在PCB板中导入了连接;
4.将元件选中并拖入PCB板框内,检查元件的封装是否合适后,手工布局。
布局时要用到元件封闭的选择、旋转、排列和封装的更换与查找。
为布线提供良好的环境,使布线布通的概率提高,尽量少用跳线;
5.规划焊盘的大小与打孔孔径大小:
选择相似的焊盘:
右击该焊盘,findsimilarobjects,在弹出的卡中,在该焊盘尺寸的X和Y座标栏中选择SAME,点击OK,再在Inspector卡中,修改X和Y座标相关焊盘参数和holesize参数后,点击左键,系统即会对相关参数进行修改。
6.手工布线:
对哪层布线前,就要先选择该层后进行布线:
interactivelyroute
connections;
7.保存并且输出PCB板图;
总结:
通过这次课程设计对EDA设计有了更深的了解。
在设计的时候会出现些错误,培养了自己运用科学的方法分析问题、解决问题的能力。
第五章软件的设计
本课程设计使用的软件为keil,通过不断的调试,最后完成了软件的设计:
#include
#defineuintunsignedint
#defineucharunsignedchar
#defineM1
sbitDQ=P0^0;
sbitspeak=P0^7;
sbitduan=P3^0;
sbitwei=P3^1;
sbitcool=P3^2;
sbitlow=P3^3;
sbitnormal=P3^4;
sbithot=P3^5;
unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0x39};
uinttemp,tc;
floatf_Temp;
voiddelay(uintx)
{
uinti,j;
for(i=0;ifor(j=0;j<110;j++);
}
voidTemp_initial()//DS18B20初始化
{
uinti;
DQ=0;
i=0;
while(i<100)
i++;
DQ=1;
i=0;
while(i<4)
i++;
}
bitTemp_readbit()
{
uinti;
bitdat;
DQ=0;
i++;
DQ=1;
i++;
i++;
dat=DQ;
i=0;
while(i<8)
i++;
return(dat);
}
ucharTemp_read()
{
uchari,j,dat;
dat=0;
for(i=0;i<8;i++)
{
j=Temp_readbit();
j=j<
dat=dat|j;
}
return(dat);
}
voidTemp_write(uchardat)
{
uinti;
bittestb;
ucharj;
for(j=0;j<8;j++)
{
testb=dat&0x01;
dat=dat>>1;
if(testb)
{
DQ=0;
i++;
i++;
DQ=1;
i=0;
while(i<8)
i++;
}
else
{
DQ=0;
i=0;
while(i<8)
i++;
DQ=1;
i++;
i++;
}
}
}
voidTemp_change()
{
Temp_initial();
delay
(1);
Temp_write(0xcc);
Temp_write(0x44);
}
uintget_Temp()
{
uchara,b;
Temp_initial();
delay
(1);
Temp_write(0xcc);
Temp_write(0xbe);
a=Temp_read();
b=Temp_read();
temp=b;
temp=temp<<8;
temp=temp|a;
f_Temp=temp*0.0625;
temp=f_Temp*10+0.5;
returntemp;
}
voiddis_Temp(uintt)
{
uchargw,sw,bw;
bw=t/100;
sw=t%100/10;
gw=t%100%10;
duan=1;
P2=table[bw];
duan=0;
P2=0x00;
wei=1;
P2=0xfe;
wei=0;
P2=0x00;
delay(M);
duan=1;
P2=table[sw+10];
duan=0;
P2=0x00;
wei=1;
P2=0xfd;
wei=0;
P2=0x00;
delay(M);
duan=1;
P2=table[gw];
duan=0;
P2=0x00;
wei=1;
P2=0xfb;
wei=0;
P2=0x00;
delay(M);
duan=1;
P2=table[20];
duan=0;
P2=0x00;
wei=1;
P2=0xf7;
wei=0;
P2=0x00;
delay(M);
tc=bw;
}
voidTemp_check()
{
if(tc>2)
{
hot=1;
speak=0;
normal=0;
low=0;
cool=1;
dis_Temp(get_Temp());
}
if(tc<2)
{
hot=0;
speak=1;
normal=0;
low=1;
cool=0;
dis_Temp(get_Temp());
}
if(tc==2)
{
hot=0;
speak=1;
normal=1;
low=0;
cool=0;
dis_Temp(get_Temp());
}
}
voidmain()
{
duan=0;
wei=0;
hot=0;
speak=1;
normal=0;
low=0;
cool=0;
while
(1)
{
Temp_change();
dis_Temp(get_Temp());
Temp_check();
}
}
总结:
通过本次课程设计,逐渐的掌握了keil、protues、dxp等软件的应用方法及温度传感器DS18B20的读取和写入。
进一步的了解51单片机的应用。
在模拟仿真的过程中,学到了在课堂上不会学习到的知识,有的时候虽然原理是可行的,但是,在实际当中却相差很远,比如蜂鸣器、电机的使用,虽然说在原理仿真上是可行的,但是在实际过程中要考虑它的功率以及驱动电流。
此外在制作的PCB的时候要考虑诸多的因素,之前要考虑封装的可行性,再到后来的板子大小,器件的布局,布线的方法等等。
总而言之,经过老师的严格要求下,使我有了制作PCB的基本经验,对今后的自己制作以及毕业设计有很大的帮助。
附录:
温度控制器仿真图:
温度控制器原理图:
温度控制器PCB:
温度控制器网络表
[
*
P4-source
P4-source
]
[
C1
RAD0.2
Cap
]
[
C2
RAD0.2
Cap
]
[
C3
CAPR5-4X5
Cap2
]
[
C4
RAD0.2
Cap
]
[
C5
RAD0.2
Cap
]
[
C6
RAD0.2
Cap
]
[
D1
LED-0
LED0
]
[
D2
LED-0
LED0
]
[
D3
LED-0
LED0
]
[
DS1
TO92
DS18b20
]
[
LS1
CD9
Speaker
]
[
Q1
TO92
NPN
]
[
R1
AXIAL-0.3
Res
]
[
R2
AXIAL-0.3
Res
]
[
S1
AN12
΢¶¯¿ª¹Ø
]
[
SEG£¿
4BIT_8SEG_LED
7SEG
]
[
T£¿
dianji
dianji
]
[
U1
DIP-40
AT89C51
]
[
U2
DIP-20
74HC573
]
[
U3
DIP-20
74HC573
]
[
Y1
R38
XTAL
]
(
A0
U1-21
U2-2
U3-2
)
(
A1
U1-22
U2-3
U3-3
)
(
A2
U1-23
U2-4
U3-4
)
(
A3
U1-24
U2-5
U3-5
)
(
A4
U1-25
U2-6
)
(
A5
U1-26
U2-7
)
(
A6
U1-27
U2-8
)
(
A7
U1-28
U2-9
)
(
D0
SEG£¿-0
U2-19
)
(
D1
SEG£¿-1
U2-18
)
(
D2
SEG£¿-2
U2-17
)
(
D3
SEG£¿-3
U2-16
)
(
D4
SEG£¿-4
U2-15
)
(
D5
SEG£¿-5
U2-14
)
(
D6
SEG£¿-6
U2-13
)
(
D7
SEG£¿-7
U2-12
)
(
DUAN
U1-10
U2-11
)
(
GND
*-2
*-3
C1-1
C2-1
C4-2
C5-2
C6-2
D1-2
D2-2
D3-2
DS1-1
R2-2
T£¿-2
U1-20
U2-1
U2-10
U3-1
U3-10
)
(
NetC1_2
C1-2
U1-19
Y1-1
)
(
NetC2_2
C2-2
U1-18
Y1-2
)
(
NetC3_2
C3-2
R1-2
R2-1
U1-9
)
(
NetDS1_2
DS1-2
U1-39
)
(
NetLS1_2
LS1-2
U1-32
)
(
NetQ1_3
Q1-3
T£¿-1
)
(
NetR1_1
R1-1
S1-2
)
(
NetQ1_2
Q1-2
U1-1
)
(
NetD1_1
D1-1
U1-2
)
(
NetD2_1
D2-1
U1-3
)
(
NetD3_1
D3-1
U1-4
)
(
VCC
*-1
C3-1
C4-1
C5-1
C6-1
DS1-3
LS1-1
S1-1
U1-40
U2-20
U3-20
)
(
VDD
*-4
Q1-1
)
(
W0
SEG£¿-8
U3-19
)
(
W1
SEG£¿-9
U3-18
)
(
W2
SEG£¿-10
U3-17
)
(
W3
SEG£¿-11
U3-16
)
(
WEI
U1-11
U3-11
)
温度控制器元件清单:
Comment
Designator
Footprint
Quantity
Cap
C1,C2,C4,C5,C6
RAD0.2
5
Cap2
C3
CAPR5-4X5
1
LED0
D1,D2,D3
LED-0
3
DS18b20
DS1
TO92
1
Speaker
LS1
CD9
1
P4-source
POWER
P4-source
1
NPN
Q1
TO92
1
Res
R1,R2
AXIAL-0.3
2
微动