本文目录一览:
- 1、温度测量系统设计:用51单片机控制热敏电阻和电桥电路测量,信号经过放大送0809转换数字信号,LED显示。
- 2、用单片机430做 温度测量系统设计
- 3、急!作业: 设计一个温度测量电路。-不是画电路图,而是设计一个简单系统(帮帮忙)
- 4、基于MSP430温度测量系统设计
温度测量系统设计:用51单片机控制热敏电阻和电桥电路测量,信号经过放大送0809转换数字信号,LED显示。
你需要一个基准电压,把这个基准电压接在一个分压电阻和这个热敏电阻串联的电路上,然后用一个运放做一个电压跟随器测量热敏电阻上的电压。送到0809,然后用51单片机实时读取模拟信号,在51单片机内要提前按照热敏电阻的温度与电阻阻值变化对照参数表做成固定的数据,方便单片机读取到模拟信号计算热敏电阻阻值后查找当前温度。有了温度值之后,再把数据送到LED显示,或者七段码数据管,或者LCD。
建意使用单片机分时复用的程序设计方法:
先定义一个定时器中断,用这个定时器中断来做软件分时复用的系统进程。比如刷新数码管显示当前温度每一个数码管。其他时间用来读ADC和分析当前温度。
程序和原理图,你要自已画了。
用单片机430做 温度测量系统设计
单片机430做 温度测量系统设计
同学,你好 学哥之前做过的,可以给你参考
急!作业: 设计一个温度测量电路。-不是画电路图,而是设计一个简单系统(帮帮忙)
设计思路:
(1)对温度进行测量、控制并显示,首先必须将温度的度数(非电量)转换成电量,然后采用电子电路实现题目要求。可采用温度传感器,将温度变化转换成相应的电信号,并通过放大、滤波后送A/D转换器变成数字信号,然后进行译码显示。
(2)恒温控制:将要控制的温度所对应的电压值作为基准电压VREF,用实际测量值与VREF进行比较,比较结果(输出状态)自动地控制、调节系统温度。
(3)报警部分:设定被控温度对应的最大允许值Vmax,当系统实际温度达到此对应值Vmax时,发生报警信号。
(4)温度显示部分采用转换开关控制,可分别显示系统温度、控制温度对应值VREF,报警温度对应值Vmax。
原理框图:
三、单元电路设计与参数计算
⑴ 传感器可以采用铂电阻R10、精密电阻和电位器R20组成测量电桥,电桥的输出电压作为运放构成的差动放大器双端输入信号,将信号放大后由低通滤波器将高频信号滤去。如图1所示。
在0oC,调节R20,使显示器显示0oC。在50oC时,调节放大器的增益(调节电位器R21),使显示器显示50oC 。注意放大的输出电压不允许大于A/D转换器的最大输入电压值。
⑵ 被测温度信号电压加于比较器(Ⅰ)与控制温度电压VREF进行比较,比较结果通过调温控制电路控制执行机构的相应动作,使被控系统升温或降温。
⑶ 当控制电路出现故障使温度失控时,使被控系统温度达到允许最高温度对应值,用声、光报警电路发出警报,值班人员将采取相应的紧急措施。
⑷ 开关S1可分别闭合系统温度、控制温度电压VREF和报警温度电压,通过A/D转换器将模拟量转换成数字量,显示器显示出相应的温度数值。
单元电路分析:
1.测量温度电路:传感器采用铂电阻、精密电阻和电位器组成测量电桥,电桥的输出电压作为运放构成的差动放大器双端输入信号,通过放大然后输出。
2.滤波电路:低通滤波器将高频干扰虑去,稳定电压值。
3.译码显示电路:因为在EWB10的软件中找不到直接十进制的译码器,AD转换器是十六进制,而设计要求是十进制显示。所以我们在此分为两种方案
方案一:AD转换器将模拟电压信号转化为数字信号并直接通过LED数字译码显示器显示。
方案二:AD转换器将模拟电压信号转化为数字信号,通过加法器、比较器、与非门接连成十进制译码器通过LED数字译码显示器显示。
电路说明:
(1)、 AD转换的高4位输出到比较器(U12)的A0~A3,低4位放到比较器(U13)的A0~A3。
(2)、十六进制计数器(U8)输出端QA~QD接到比较器(U12)的B0~B3,十六进制计数器(U4)输出端QA~QD接到比较器(U13)的B0~B3,低位的十六进制计数器(U4)经过与门接脉冲XFG2。
(3)、十进制计数器U9、U10、U11按从低位到高位连接,低位经过与门接与十六进制计数器(U4)接的脉冲XFG2。
(4)、通过两个比较器之后,当B大于A的时候,通过与门和非门的组合输出一个低电平,把脉冲截止,停止计数。
(5)、所得的数就是十六进制转换成的十进制数。
(6)、脉冲XFG3控制十进制计数器U17,当计数器输出都为高电平时通过或非门得到一个高电平,控制十进制计数器U9、U10、U11和十六进制计数器U4、U8同时清零,重复计数。
通过两个方案比较,因为EWB10软件的限制,找不到一个可以直接把八位二进制数转换成8421BCD的芯片,另外方案二电路比较复杂,它是通过计数器把十六进制转换成十进制,译码显示速度比较慢,有可能看到数字计数时比较混乱,不能时时看到温度变化,所以最后选取方案一进行实验。
4.两个开关J1、J2分别控制3个输入端,随时查看实时温度、报警温度和控制温度。
5.电压通过比较器与特定值比较,高于额定值时发出蜂鸣与报警。
6.电压通过比较器与特定值比较,低于特定值时发热,高于特定值时制冷。
四、总原理图及元器件清单
1.总原理图
2.元件清单
元件序号
型号
主要参数
数量
备注
R1、R2、
电阻
100欧
2
R10
铂电阻
100欧
1
R20
滑动电阻
100欧
1
R3、R4、R5、R6、R7、R8、R9、R11、R21
电阻
1000欧
8
C1、C2
电容
2
Vcc
电源
+9V
7
Vdd
电源
+3V
4
Vee
电源
-9V
2
R18
电阻
709欧
1
R12
电阻
847欧
1
R13、R22
电阻
750欧
2
R19、R23
电阻
70欧
2
R16、R17
电阻
933欧
2
R14、R15
滑动电阻
847欧
2
D1
二极管
1N1202C
1
T1、T2、T3、T4
三极管
BC548B
4
U7
放大器
741
1
U1、U2、U3
集成运放
OPAMP
3
XFG1、XFG2、XFG3
信号发生器
XFG
3
A1
A/D转换器
ADC
1
U5、U6
7段LED
DCD_HEX
2
LED1、LED2、LED3、LED4
发光二极管
LED
4
J1、J2
开关
开关
2
U09、U10、U11、U17
十进制加法器
74192
4
U12、U13
比较器
7485N
2
U4、U8
十六进制加法器
74161N
2
U18A、U19A、U21A
与门
74HC08D_2V
3
U20A
与非门
74HC01D_2V
1
U22
非门
NC7ST04_5V
1
U23A
四输入或非门
BC548B
1
五、安装与调试
1、使用仿真软件 EWB 10进行仿真。
2、各部分单元电路进行测试。
3、测试成功后,把各部分单元电路连接起来。
4、开始仿真,按要求调节各项参数。
5、通过R18、R12串联分压把温度控制在120 oC之内,使系统符合设计要求。
6、将开关J2拨到A端,调节滑动变阻器R10、R20使译码器显示0oC。在50oC时,调节放大器的增益(调节电位器R21),使显示器显示50oC 。测试表明,系统符合要求,能实现测量温度功能。
7、将开关J2拨到D端,将开关J1拨到B端,通过可调变阻器R15调节控制报警温度,再通过可调变阻器R14调节报警温度,当调到高于控制报警温度,报警指示灯LED1、LED2就会亮,测试表明,系统符合要求,能实现报警功能。
8、将开关J2拨到D端,将开关J1拨到C端,调节控制温度,当控制温度高于现时温度时,发热指示灯LED4亮,制冷LED3灭;控制温度低于现时温度时,发热指示灯LED4灭,制冷指示灯LED3亮。
六、性能测试与分析
1、传感器可以采用铂电阻、精密电阻和电位器组成测量电桥,电桥的输出电压作为运放构成的差动放大器双端输入信号,将信号放大后由低通滤波器将高频信号滤去。
2、A/D转换器以+9V作为基准电压VREF , 差动放大器输出的电压与基准电压VREF 进行比较,输出相应的二进制数。
3、比较器,将传感器可以采用铂电阻、精密电阻和电位器组成测量电桥,电桥的输出电压作为运放构成的差动放大器的输出电压与控制电压或者报警电压通过比较器进行比较,输出高低电平,控制报警或者发热制冷。
4、 测量温度为0~1200C,精度为±0.50C;整体调试无错误,但受软件限制,代表热敏电阻的滑动电阻R10难以微调,所以精确度受限于现实中热敏电阻。
5、将开关J2拨到D端,将开关J1拨到C端,控制滑动变阻R15,温度连续可调,精确度可以控制在±1OC的范围,不过滑动变阻受限于软件难以微调,控制范围可能会有偏差。
6、假设报警温度400C,当现实温度大于或等于400C的时候比较器会输入一个电压值控制三极管导通,使报警系统触发。滑动变阻器R14可以连续控制报警温度,不过也受限于软件,难以微调。
七、结论与心得
本实验基本上是成功的,能达到设计要求。通过本实验,学会了EWB10.0仿真软件的应用,通过搜寻资料,对模电、数电的知识进行很好的巩固,综合应用了数电、模电译码、AD转换器、运放等方面的知识,通过本实验对两门课程很好进行了综合应用。学会了采用铂电阻、精密电阻和电位器组成测量电桥,学会了通过调节电压来调节温度,学会了通过使用比较器对输出(表示温度的)电压进行比较,本实验让我获益匪浅。
基于MSP430温度测量系统设计
void main()
{
int i;
long int degc;
WDTCTL=WDTPW+WDTHOLD;
FLL_CTL0|=XCAP18PF; //设置晶振电容,如果你的板子有电容.忽略
for(i=0;i1000;i++);
SD16CTL=SD16REFON+SD16VMIDON+SD16SSEL0;
SD16CCTL0|=SD16SNGL+SD16DF;
SD16INCTL0 |= SD16INCH_6;
for(i=0;i500;i++);
BTCTL=0;
LCD_INIT();
while(1)
{
SD16CCTL0|=SD16SC;
while((SD16CCTL0SD16IFG)==0)
degc=(long int )ADCresult*9000)/65536-2730;
LCD_displayDecimal(degc,1);
LCD_Insertchar(dt);
LCD_Insertchar(cc);
for(i=0;i30000;i++);
}
}
发布于 2022-09-24 21:28:55 回复