电子设计竞赛通信选拔题目.docx
《电子设计竞赛通信选拔题目.docx》由会员分享,可在线阅读,更多相关《电子设计竞赛通信选拔题目.docx(13页珍藏版)》请在冰豆网上搜索。
电子设计竞赛通信选拔题目
电子设计竞赛题目
一.简易数字温度计
1.设计一种简易数字温度计(不得使用专门温度传感器,例如DS18B20,可以使用热敏电阻或热电偶),可以实时采集环境温度并通过数码管或LCD显示;
2.温度测量误差≤0.5℃;
3.可以通过按键设立一种温度范畴,实际测量温度不大于或不不大于该范畴时有报警提示,报警方式自定。
温度设立范畴自定,但是所设立温度范畴必要可以演示;
4.提高温度测量精度,测量误差≤0.1℃;
5.报告。
通过A/D转换吧电压转换成数字型号;在用软件计算出此时温度
6.数显温度计设计与制作
7.欧伟民
8.
9. 低温测量常采用品有玻璃外壳酒精温度计和水银温度计,此类温度计具备价格低廉、性能稳定、直观性强长处,但也具备易破碎且只能在现场观测缺陷,水银温度计还易导致污染而有害健康。
当前,应用最为广泛是温度敏感元件和二次仪表组合,既可用于远程显示,也可进行调节控制,还可做到自动记录。
惯用温度敏感元件有热电偶、热电阻、二极管、IC温度传感器等。
本文简介数显温度计是以半导体二极管作为温度传感器数字显示温度计,其测温范畴为-50℃~+150℃,测温精度达0.1℃。
一、测温探头工作原理
在附图所示电路中,电阻R1~R3、二极管VD1~VD3、三极管V1构成温度传感器电路。
其中,VD1、VD2串接作为测温探头;R1~R3、VD3、V1构成恒流源电路,给测温探头提供恒定正向电流。
人们懂得,半导体二极管正向压降决定于正向电流大小和温度,当正向电流一定期,正向压降随温度升高而下降。
对于普通硅二极管1N4148而言,具备约-2?
1mV/℃温度系数,当两个1N4148串接时,总正向压降与温度关系约为-4?
2mV/℃。
理论和实践都已证明,在-50℃~+150℃范畴内,二极管测温精度可达±0?
1℃,与其她温度传感器比较,二极管温度传感器具备敏捷度高、线性好、简便特点,并且当二极管正向电流和温度一定状况下,其正向压降是非常稳定。
通过计算可以懂得,恒流源提供应VD1、VD2恒定电流约为0?
5mA。
二极管VD3起温度补偿作用,保证恒流源能提供稳定电流。
二、测量显示原理
测量探头把待测温度转换为相应电压后,由于要实现温度数字显示,就必要有模仿/数字转换装置。
在附图中,IC1、IC2、IC3及其周边元件构成A/D转换、数字显示电路,这一某些电路以美国Motorola公司生产A/D转换器MC14433为核心。
MC14433是单片CMOS3位双积分型A/D转换器,该A/D转换器转换精度高,达±0?
05%±1字;转换速率为2~25次/秒;输入阻抗不不大于1000MΩ;外围元件少,电路构造简朴;量程为1?
999V和199?
9mV两挡;输出8421BCD代码,经译码后实现LED动态扫描显示。
MC14433第2脚为外接基准电压Vref输入端;第3脚为被测电压Vin输入端;第1脚为模仿地,此端为高阻输入端,是被测电压和基准电压地;第{15}脚为过量程输出标志端OR,平时OR为高电平,当|Vin|>Vref即超过量程时,OR为低电平。
被测电压Vin与基准电压Vref成下列比例关系(当小数点定位于4个LED数码管十位数时):
输出读数=×199?
9
在附图中,IC2(译码器MC14511)把IC1(MC14433)输出BCD码译成十进制数显示,由于MC14433以扫描方式输出数据,因此只需要用一种译码器就能驱动4只共阴极LED数码管,其中千位数数码管(最左边一种LED数码管)只接b、c两段。
4只LED数码管公共阴极分别由IC3(MC1413)中4个达林顿复合晶体管驱动。
负号由千位数LED数码管之“g段”来显示,显示负号“g段”由MC14433Q2控制,当输入负电压时(相应温度为0℃如下),Q2=“0”,显示负号“g段”通过R15点亮;当输入正电压时(相应温度为0℃以上),Q2=“1”,使MC1413另一种达林顿复合晶体管把流过R15电流旁路到地,使显示负号“g段”熄灭。
小数点固定在十位数LED数码管,通过R16给小数点“dp”提供电流,使小数点“dp”点亮。
在附图中,设立电位器RP1和RP2,其中RP1用于调节沸点(100℃);RP2用于调节冰点(0℃)。
整个电路直流电源由IC4(LM7809)提供,直流电源电压为+9V。
三、元器件选取
IC1为MC14433,可直接代换有TSC14433、TC14433、5G14433等。
IC2为七段译码/驱动CMOS数字逻辑电路,可选用MC14511、HD14511、CD4511等。
IC3为七路达林顿复合晶体管,可选用MC1413、5G1413、ULN等。
其她元器件按图示进行选取即可。
四、制作
电路很简朴,便于在业余条件下制作。
由于MC14433和MC14511是CMOS集成电路,且最多只有24个引脚,因此宜使用IC插座。
先焊接好IC插座和其她元器件后,再将MC14433、MC14511、MC1413插入到相应IC插座上即可。
五、调试办法
焊接、安装好电路后,该数显温度计需要通过调试方可正常使用。
调试前,先准备好0℃冰水和100℃沸水各1000ml。
调试环节如下:
(1)将RP1调到最上端,使Vref为最高电压,把二极管测温探头置于0℃冰水中,调节RP2,使四只LED数码管显示读数为“00.0”。
(2)将二极管测温探头置于100℃沸水中,调节RP1,使得四只LED数码管显示读数为“100.0”,且IC1(MC14433)第{15}脚OR为高电平。
经上述调试后,该数显温度计就可以正常工作了,其测温范畴是-50~+150℃。
该数显温度计测温范畴仅受二极管测温探头限制,若改用其她温度传感器,则无需变动附图所示电路其她某些,就可获得不同测温范畴数显温度计。
▲
我五年前按照这图纸做电路,但没有成功,显示数字在不断跳,不稳定在一种数值上,不知是什么因素,由于其中考虑更换MC14433,但我那价格要30元贵啊,如果不是这个问题我就不懂得怎么办了。
一方面电路安装对的,别的MC1413和MC14511已更换多次没用,请高手指教。
1.DS18B20基本知识
DS18B20数字温度计是DALLAS公司生产1-Wire,即单总线器件,具备线路简朴,体积小特点。
因而用它来构成一种测温系统,具备线路简朴,在一根通信线,可以挂诸多这样数字温度计,十分以便。
1、DS18B20产品特点
(1)、只规定一种端口即可实现通信。
(2)、在DS18B20中每个器件上均有独一无二序列号。
(3)、实际应用中不需要外部任何元器件即可实现测温。
(4)、测量温度范畴在-55。
C到+125。
C之间。
(5)、数字温度计辨别率顾客可以从9位到12位选取。
(6)、内部有温度上、下限告警设立。
2、DS18B20引脚简介
TO-92封装DS18B20引脚排列见图1,其引脚功能描述见表1。
(底视图)图1
表1 DS18B20详细引脚功能描述
序号
名称
引脚功能描述
1
GND
地信号
2
DQ
数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源。
3
VDD
可选取VDD引脚。
当工作于寄生电源时,此引脚必要接地。
3.DS18B20用法
由于DS18B20采用是1-Wire总线合同方式,即在一根数据线实现数据双向传播,而对AT89S51单片机来说,硬件上并不支持单总线合同,因而,咱们必要采用软件办法来模仿单总线合同时序来完毕对DS18B20芯片访问。
由于DS18B20是在一根I/O线上读写数据,因而,对读写数据位有着严格时序规定。
DS18B20有严格通信合同来保证各位数据传播对的性和完整性。
该合同定义了几种信号时序:
初始化时序、读时序、写时序。
所有时序都是将主机作为主设备,单总线器件作为从设备。
而每一次命令和数据传播都是从主机积极启动写时序开始,如果规定单总线器件回送数据,在进行写命令后,主机需启动读时序完毕数据接受。
数据和命令传播都是低位在先。
DS18B20复位时序
DS18B20读时序
对于DS18B20读时序分为读0时序和读1时序两个过程。
对于DS18B20读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传播到单总线上。
DS18B20在完毕一种读时序过程,至少需要60us才干完毕。
DS18B20写时序
对于DS18B20写时序依然分为写0时序和写1时序两个过程。
对于DS18B20写0时序和写1时序规定不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20可以在15us到45us之间可以对的地采样IO总线上“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。
4.实验任务
用一片DS18B20构成测温系统,测量温度精度达到0.1度,测量温度范畴在-20度到+100度之间,用8位数码管显示出来。
5.电路原理图
6.系统板上硬件连线
(1).把“单片机系统”区域中P0.0-P0.7用8芯排线连接到“动态数码显示”区域中ABCDEFGH端子上。
(2).把“单片机系统”区域中P2.0-P2.7用8芯排线连接到“动态数码显示”区域中S1S2S3S4S5S6S7S8端子上。
(3).把DS18B20芯片插入“四路单总线”区域中任一种插座中,注意电源与地信号不要接反。
(4).把“四路单总线”区域中相应DQ端子连接到“单片机系统”区域中P3.7/RD端子上。
7.C语言源程序
#include
#include
unsignedcharcodedisplaybit[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};
unsignedcharcodedisplaycode[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,0x00,0x40};
unsignedcharcodedotcode[32]={0,3,6,9,12,16,19,22,
25,28,31,34,38,41,44,48,
50,53,56,59,63,66,69,72,
75,78,81,84,88,91,94,97};
unsignedchardisplaycount;
unsignedchardisplaybuf[8]={16,16,16,16,16,16,16,16};
unsignedchartimecount;
unsignedcharreaddata[8];
sbitDQ=P3^7;
bitsflag;
bitresetpulse(void)
{
unsignedchari;
DQ=0;
for(i=255;i>0;i--);
DQ=1;
for(i=60;i>0;i--);
return(DQ);
for(i=200;i>0;i--);
}
voidwritecommandtods18b20(unsignedcharcommand)
{
unsignedchari;
unsignedcharj;
for(i=0;i<8;i++)
{
if((command&0x01)==0)
{
DQ=0;
for(j=35;j>0;j--);
DQ=1;
}
else
{
DQ=0;
for(j=2;j>0;j--);
DQ=1;
for(j=33;j>0;j--);
}
command=_cror_(command,1);
}
}
unsignedcharreaddatafromds18b20(void)
{
unsignedchari;
unsignedcharj;
unsignedchartemp;
temp=0;
for(i=0;i<8;i++)
{
temp=_cror_(temp,1);
DQ=0;
_nop_();
_nop_();
DQ=1;
for(j=10;j>0;j--);
if(DQ==1)
{
temp=temp|0x80;
}
else
{
temp=temp|0x00;
}
for(j=200;j>0;j--);
}
return(temp);
}
voidmain(void)
{
TMOD=0x01;
TH0=(65536-4000)/256;
TL0=(65536-4000)%6;
ET0=1;
EA=1;
while(resetpulse());
writecommandtods18b20(0xcc);
writecommandtods18b20(0x44);
TR0=1;
while
(1)
{
;
}
}
voidt0(void)interrupt1using0
{
unsignedcharx;
unsignedintresult;
TH0=(65536-4000)/256;
TL0=(65536-4000)%6;
if(displaycount==2)
{
P0=displaycode[displaybuf[displaycount]]|0x80;
}
else
{
P0=displaycode[displaybuf[displaycount]];
}
P2=displaybit[displaycount];
displaycount++;
if(displaycount==8)
{
displaycount=0;
}
timecount++;
if(timecount==150)
{
timecount=0;
while(resetpulse());
writecommandtods18b20(0xcc);
writecommandtods18b20(0xbe);
readdata[0]=readdatafromds18b20();
readdata[1]=readdatafromds18b20();
for(x=0;x<8;x++)
{
displaybuf[x]=16;
}
sflag=0;
if((readdata[1]&0xf8)!
=0x00)
{
sflag=1;
readdata[1]=~readdata[1];
readdata[0]=~readdata[0];
result=readdata[0]+1;
readdata[0]=result;
if(result>255)
{
readdata[1]++;
}
}
readdata[1]=readdata[1]<<4;
readdata[1]=readdata[1]&0x70;
x=readdata[0];
x=x>>4;
x=x&0x0f;
readdata[1]=readdata[1]|x;
x=2;
result=readdata[1];
while(result/10)
{
displaybuf[x]=result;
result=result/10;
x++;
}
displaybuf[x]=result;
if(sflag==1)
{
displaybuf[x+1]=17;
}
x=readdata[0]&0x0f;
x=x<<1;
displaybuf[0]=(dotcode[x]);
displaybuf[1]=(dotcode[x])/10;
while(resetpulse());
writecommandtods18b20(0xcc);
writecommandtods18b20(0x44);
}
}
二.简易信号检测仪
1.设计一种简易正弦信号测试仪,可以实时测量输入正弦信号频率和峰值,并通过数码管或LCD显示,信号源采用现成信号源,不用再设计;
2.正弦信号频率范畴100Hz~100KHz,峰值100mV~1V;频率测量误差≤5%,峰值测量误差≤10%;
3.提高频率测量范畴10HZ~200KHz,测量误差≤2%;
4.提高峰值测量范畴50mV~2V,测量误差≤5%;
5.报告。
三.简易直流电机控制
1.设计一种简易直流电机控制电路,直流电机自选。
可以通过数码管或者LCD实时显示电机每分钟转数;
2.可以通过按键控制电机启动,正转,反转,停止;
3.通过键盘设定一种转动速度,范畴0~1000r/min,步进20。
电机恒定在设定速度下运营,误差≤5%;
4.报告。
所有题目不得使用任何现成开发板、学习板、模块(特别要注意不得使用任何别人开发制作模块),必要所有自己设计焊接电路。
可以制作pcb,但是必要在pcb板子上添加自己标记,例如姓名学号等。
否则按违规解决,取消比赛资格。
参赛所用元器件,费用,场地由参赛队员自行解决。
比赛期间,教师不负责答疑。
每个参赛队必要针对题目提交一份纸质报告,报告格式和内容按每届全国大学生电子竞赛规定完毕,由参赛队自行上网查找格式规定。
学院有权保存制作得比较好得作品,如果不批准这点,则取消比赛资格并退回作品给参赛队员。