电子项目竞赛样题带proteus仿真和程序的完全版本.docx
《电子项目竞赛样题带proteus仿真和程序的完全版本.docx》由会员分享,可在线阅读,更多相关《电子项目竞赛样题带proteus仿真和程序的完全版本.docx(14页珍藏版)》请在冰豆网上搜索。
![电子项目竞赛样题带proteus仿真和程序的完全版本.docx](https://file1.bdocx.com/fileroot1/2023-4/17/4260a563-0d20-4398-8450-c2c75626be0b/4260a563-0d20-4398-8450-c2c75626be0b1.gif)
电子项目竞赛样题带proteus仿真和程序的完全版本
一、
局部电路设计(6分)
1、根据给定TL431芯片及若干电阻电容设计一个3.6V恒压电路,输出电压供AD转换芯片使用。
要求补充完善已给出的电路原理图,实现要求的功能,在右边表中画出自己设计的局部电路图,标出元件编号和参数值。
2、焊接、调试电路,使电路工作正常。
给定元件:
TL431;电阻:
100R、330R、470R、1K、3.3K、5K;
电位器:
2K;电容:
1uF、0.1uF。
图1恒压电路
二、原理图的绘制与PCB板的设计(20分)
要求:
考生在F盘根目录下建立一个文件夹。
文件夹名称为:
2009EJ××(2位数字,竞赛队工位号)。
考生的所有文件均保存在该文件夹下。
各文件的主文件名:
原理图文件:
sch+××
原理图元件库文件:
slib+××
Pcb文件:
pcb+××
Pcb元件封装库文件:
plib+××
其中:
××为考生工位号的后两位。
如sch96
注:
如果保存文件的路径不对,则无成绩。
1、在自己建的原理图元件库文件中添加如下图所示的光电耦合器元件,各管脚号如图所示。
(2分)
图2光电耦合器
2、将附录2所示电路原理图完善后,在自己建的原理图文件中将整体原理图完整的绘制出来,并在原理图下方注明自己的工位号。
(5分)
3、在自己建的元件封装库文件中,绘制一个连接件的封装。
(1分)
要求:
焊盘直径尺寸:
120mil;焊盘孔径尺寸:
60mil
焊盘间距见图3。
图3连接件封装示意图
4、绘制双面电路板图(12分)
要求:
(1)电路板面积不大于:
170mm(长)×120mm(宽);(1分)
(2)所有元件均放置在TopLayer;(1分)
(3)信号线宽不小于14mil,VCC主线线宽不小于40mil,接地主线线宽不小于40mil;(2分)
(4)元件布局合理。
(6分)
(5)PCB布线完整、合理、美观。
(1分)
(6)在电路板边界外侧注明自己的工位号。
(1分)
三、电路焊接(15分)
要求电子产品的焊点大小适中,无漏、假、虚、连焊,焊点光滑、圆润、干净,无毛刺;连线正确、美观;引脚加工尺寸及成形符合工艺要求;导线长度、剥头长度符合工艺要求,芯线完好,捻头镀锡。
疵点:
少于5处扣1分;
5~10处扣5分;
10~15处扣10分;
15处以上扣15分。
四、程序设计与调试(30分)
附录2原理图所示的是单片机温度检测系统。
设计完成后应具有以下功能:
在按下S1后,显示测量的温度值,分辨力:
0.1℃(上电复位后显示);按下S2后,数码管轮流显示ADC通道1和2的AD值,切换时间2S。
1、单片机电路组装正确并能正常工作(5分)。
2、显示电路组装正确并能正常工作(5分)。
3、放大电路组装正确并工作正常(5分)。
4、电源电路组装正确并工作正常(3分)。
5、按键S1编程正确,工作正常(6分)。
6、按键S2编程正确,工作正常(3分)。
7、按键反应灵敏,整个系统工作顺畅(3分)。
五、电路检测(5分)
(使用双踪示波器测量测试点1和测试点2的峰值电压和波形图,并在下图中同时标出同相位的两波形图)
检查电路无误后,接通电源,分别测量检测点1和检测点2的峰值电压值及波形,并在同一坐标中画出同相位的检测点1和检测点2的波形图。
测量点
峰值电压(V)(2分)
同相位坐标波形图(3分)
测试点1
V
测试点2
六、电路装配(4分)
要求元器件在顶面上安装,元器件摆放平整,高度合理、底面各管脚留有的长度不超过2.5毫米;焊盘上的焊锡量要饱满,表面光亮,浸锡要充分,没有虚焊现象。
接插件、紧固件安装可靠牢固,电路板无烫伤和划伤处,整机清洁无污物。
装配不符合工艺要求:
少于2处扣1分;2~5处扣3分;5处以上扣4分。
七、技术文件(10分)
(提交电子文档,保存在F盘根目录下,选手建立的名称为:
2009EJ××的文件夹内)
1、绘出恒压电路原理图,工作原理说明以及元件参数分析、选择。
(2分)
2、分析说明温度检测电路的工作原理,包括测量电路中每级运放的工作方式及放大倍数,总放大倍数;分析在给定原理图中元件参数的情况下温度测量范围分析说明。
(4分)
3、选手设计的程序流程图。
(2分)
4、完整单片机的控制程序。
(1分)
5、使用操作说明书。
(1分)
八、安全、文明操作(10分)
选手有下列情形,需从参赛成绩中扣分:
1、违反比赛规定,提前进行操作的,由现场评委负责记录,扣1-5分。
2、选手应在规定时间内完成比赛内容。
在赛程中,均有评委记录每位参赛选手违规操作,依据情节扣1-5分。
3、现场操作过失未造成严重后果的,由现场评委负责记录,扣1-5分。
4、发生严重违规操作或作弊,经确认后,由主评委宣布终止该选手的比赛,以0分计算。
注:
以上各项累计扣分,扣完本项分值为止。
附录1:
电路元器件选择表
PartType
Designator
Footprint
30P
C6,C7
RAD-0.1
103
C3
RAD-0.1
104
C002,C8,C9,C10,C11,C12,C13,C14
RAD-0.1
0.33uF
C001
RAD-0.1
1uF
C5,C15,C61
RAD-0.1
220uF/25V
C1
RB.2/.4
470u25V
C23
RB.2/.4
0R
R47
AXIAL0.4
100R(0.1%)
R62
AXIAL0.4
100R
R1,R5
AXIAL0.4
330R
R4,R13,R15,R16,R17,R18,R19,R20,R21,R22,R24,R25,R26,R27,R28,R29,R30,R31,R32,R33,R34,R35,R36,R37,R38
AXIAL0.4
1K
R69,R612
AXIAL0.4
1.2k(0.1%)
R61,R63
AXIAL0.4
4.7K
R14
AXIAL0.4
10K
R2,R3,R6,R7,R11,R12,R23,R39,R40,R41,R42,R43,R44,R45,R46,R48,R49,R50,R51,R65,R66
AXIAL0.4
20k
R611
AXIAL0.4
100K(0.1%)
R67,R68,R610
AXIAL0.4
7SEG
LED1,LED2,LED3
SMGY08
IN5819
D1,D2,D3,D4,D10
DIODE0.4
LED
D9
LED2.5
LM258
U6,U1
DIP8
PT100
R64
AXIAL0.4
AT89S52
U3
DIP-40
74HC595
U5,U7,U8
SOP16
ADC0809
U2
DIP28
7805
U00
TO220H
AC9V
J1电源插座
POWER3.5
12M
X1
XTAL1
SW-PB
S5,S1,S2
SW-PB6
10针插座
J4
IDC10
附录2:
电路原理图
图4温度检测部分
图5显示电路
图6微处理部分
图7电源电路
图8AD转换电路
图9下载线电路
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitST=P2^0;
sbitEOC=P2^1;
sbitOE=P2^2;
sbitCLOCK=P2^3;
sbitALE=P2^4;
sbitADD1=P2^5;
sbitADD2=P2^6;
sbitADD3=P2^7;
sbitDATA=P3^0;
sbitCLK=P3^1;
sbitST_CP=P3^2;
sbitkey1=P3^3;
sbitkey2=P3^4;
ucharled[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x90};
uintaa;
uchark,num,m;
uintresult[3]={0};
voiddelayms(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=125;y>0;y--);
}
voidTimer_Init(void)
{
TMOD=0X12;
TH0=245;
TL0=245;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
ET0=1;
TR0=1;
ET1=1;
TR1=0;
EA=1;
}
/*voiddisplay()
{
}*/
voiddisplay()
{
uchari;
ST=0;
ST=1;
ST=0;
while(EOC==0);
OE=1;
aa=P0;
OE=0;
aa=aa*20;
result[0]=aa%1000%100/10;
result[1]=aa%1000/100;
result[2]=aa/1000;
ST_CP=0;
for(i=0;i<3;i++)
{
SBUF=led[result[i]];
while(TI==0);
TI=0;
}
ST_CP=1;
delayms(5);
}
voidkeyscan()
{
if(key1==0)
{
delayms(5);
if(key1==0)
{
while(key1==0);
k=1;
TR1=0;
P2=0x1f;
}
}
if(key2==0)
{
delayms(5);
if(key2==0)
{
while(key2==0);
k=2;
TR1=1;
}
}
}
voidmain()
{
Timer_Init();
while
(1)
{
keyscan();
display();
}
}
voidT0_timer()interrupt1
{
CLOCK=~CLOCK;
}
voidT1_timer()interrupt3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
num++;
if(num<=40)
{
P2=0x3f;
}
if(num>40&&num<80)
{
P2=0x5f;
}
if(num==80)
num=0;
}