版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
A/D转换器搭建测温电路项目二十1(1)理解模/数转换器ADC0808的工作过程。234项目指南(2)巩固LED与单片机的连接方法。(3)了解温度-电压-数字信号转换电路的结构和功能。(4)掌握取反指令CPL的功能和用法。5(5)掌握除法指令DIV的功能和用法。678项目指南(6)学会使用单片机控制模/数转换器ADC0808工作。(7)了解单片机ALE引脚的功能。(8)了解Proteus软件中激励源和虚拟仪表的功能和使用方法。用Proteus仿真运行模/数转换器与单片机组成的测温电路。(1)实践清单本项目练习使用温度传感器、模/数转换器、单片机和数码管组成温度测量和显示系统。系统的核心元件是单片机,单片机负责接收测量信号、进行计算、输出显示数据等工作。由于本项目所用温度传感器是热敏电阻,配合其他电路能把温度信号转变为电压或电流的模拟信号,而单片机处理的是数字信号,因此需要模/数转换器将代表温度信息的模拟信号转变为数字信号,再送入单片机进行处理。知识链接模/数转换器即A/D转换器、ADC,是将模拟信号转变为数字信号的电子元件。通常的模/数转换器是将一个输入电压信号转换为一个输出的数字信号。知识链接本项目仿真电路使用ADC0808模/数转换器。ADC0808是CMOS单片型逐次逼近式A/D转换器,它有8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器。ADC0808的额定电源电压为+5V,模拟输入范围为0~5V,最大不可调误差小于±1/2LSB,转换速度取决于芯片的时钟频率,当CLK=500kHz时,其转换速度为128μs。一、模/数转换器知识链接图20-1(a)为直插型ADC0808的引脚,图20-1(b)为ADC0808在Proteus软件中的图形符号,图中隐去了VCC和GND。INPUT0~7和IN0~IN7为模拟信号输入端,ADC0808可以输入8路模拟信号。2-1~2-8和OUT1~OUT8为数字信号输出端,其中“8”为最低位。选择哪一路模拟信号转换为数字量输出由地址输入引脚ADDRESSA、B、C即ADDA、B、C的数值决定,选择方式见表20-1。例如,当CBA为000时,选中0通道即INPUT0和IN0的信号进行转换。REF+和REF引脚为参考电压输入端,输出数字信号的最大值对应REF+,最小值对应REF-。ALE为地址锁存允许信号,高电平有效,设定完地址数值后ALE高电平时地址锁定,指定输入通道被选中。START为启动转换控制端,要求输入一个至少100ns宽的正脉冲,脉冲上升沿使0808复位,下降沿启动A/D转换。EOC为A/D转换结束信号输出端,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。OE为数据输出允许信号控制端,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。CLK为时钟脉冲输入端,脉冲频率与转换速度有关,其典型值为640kHz,最大值为1280kHz,最小值为10kHz。知识链接知识链接图20-1ADC0808知识链接表20-1输入信号选择方式知识链接如图20-2所示,热敏电阻是电阻值随温度变化而变化的元件,分为随温度升高电阻变大的正温度系数热敏电阻和随温度升高电阻变小的负温度系数热敏电阻,其温度和阻值的关系是非线性的。Proteus软件中的元件“PTC_NICKEL”是正温度系数热敏电阻,假设测温范围为0~50℃,其0℃时阻值为901Ω,50℃时阻值为1106Ω。图20-2热敏电阻二、热敏电阻知识链接热敏电阻的不同阻值对应了不同的温度,但是模/数转换芯片不能识别电阻变化,因此需要把热敏电阻的阻值转化为电压信号,再通过模/数转换芯片转化为数字信号输入单片机。图20-3是一种使用PTC_NICKEL、ADC0808的温度-电压-数字信号转换电路,最终数字信号输入单片机P1。需要注意的是,ADC0808的OUT引脚与P1的连接,OUT8连接至P1.0,以此类推。三、温度-电压-数字信号转换电路知识链接图20-3温度-电压-数字信号转换电路图20-3中左侧RT2为热敏电阻元件,它能显示当前模拟的温度,图中为42℃,通过数字下方的两个箭头可以在仿真运行过程中升降模拟温度,也可以在停止运行状态下通过修改元件属性来设置模拟温度。知识链接在本例中使用了4mA的恒流源给热敏电阻供电,从而使热敏电阻两端的电压变化与电阻的变化呈线性关系,以方便计算和减小误差。恒流源从软件左侧一列,即终端模式选择按钮所在那一列菜单图标中选出,它位于上数第12个图标,形状为,名字为“激励源模式”。单击图标后出现菜单如图20-4所示,选择其中“DC”放置到电路中,然后双击弹出图20-5所示“DCGeneratorProperties”对话框。勾选“电流源”复选框,然后在右上角设置电流源的电流,这里设置为4mA。知识链接选择4mA的主要原因是使温度测量范围内电阻两端的最大和最小电压在模/数转换芯片允许输入范围内(0~5V),且差值尽可能大,当然此处选择4.5mA也符合要求。热敏电阻下端接地,上端接ADC0808的IN0引脚,将热敏电阻电压输入模/数转换芯片。为了设计和调整电路,在热敏电阻两端并联了电压表,在热敏电阻下方串联了电流表,以观察系统运行时热敏电阻的电压和电流,设计完毕后可以移除。电流表和电压表在左侧一列菜单上数第15个图标,形状为,名字为“虚拟仪表模式”,单击图标后出现菜单后选择“DCVOLTMETER”为直流电压表,“DCAMMETER”为直流电流表,修改它们的属性可以选择其显示单位。知识链接图20-4激励源菜单图20-5“DCGeneratorProperties”对话框知识链接ADC0808的工作过程一般为先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码器选通8路模拟输入通道之一,将其信号送到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动A/D转换,之后EOC输出信号变为低电平,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。本例中只有一路模拟信号输入,所以输入地址可以固定为“000”不变,因此ADC0808中地址线ADDA、B、C均连接地线,地址锁存ALE接VCC。单片机通过ALE引脚向ADC0808提供时钟脉冲,通过P3.1向ADC0808提供开始转换脉冲,功能上需要ADC0808反复转换信号并传送给单片机。单片机无须检测EOC电平来判断模/数转换是否完毕,而是在输出开始转换脉冲信号后一段时间就接收转换数据,因此EOC引脚悬空,OE直接接VCC。本练习测温范围为0~50℃,通过模拟运行可以看到0℃时热敏电阻的电压为3.30V,50℃时电压为4.42V。为了获得最大分辨率,将ADC0808的VREF(+)用恒压源设置为4.42V,VREF(-)用恒压源设置为3.3V,此时ADC0808输出的0就对应0℃,输出的255就对应50℃。知识链接知识链接图中对VREF(+)稍作调整设置为4.44V,目的是使ADC0808在50℃时的输出值为250,这样输出0就表示0℃、输出5就表示1℃、输出10就表示2℃……方便编程时的计算,计算过程在后面编程算法中会讲解。需要说明的是,由于ADC0808输出的是8位二进制数,调整前50℃对应的输出是255,0~50℃会被255等分,即数字加1代表温度升高(50/255)℃;调整后50℃对应的输出是250,数字加1代表温度升高(50/250)℃,转换精度降低了。由于本项目只显示温度的整数部分,不过多考虑精度要求,因此采用50℃对应输出是250的方式来简化系统。知识链接此处特别说明单片机的ALE引脚。单片机在运行时会从ALE输出频率为晶振频率1/6的脉冲信号,ALE与单片机的程序写入和访问片外RAM的功能有关,当无须使用这两个功能时可将ALE作为脉冲信号源使用。在本例中,ALE被用于向模/数转换芯片提供时钟脉冲,这样既不用额外增加时钟电路及元件,也不用在单片机程序中编写脉冲程序。由于ADC0808的时钟脉冲最大允许值为1280kHz,因此本例的单片机晶振频率不能使用12MHz,可将晶振频率设置为6MHz,这样ALE的输出脉冲为1MHz=1000kHz,满足ADC0808的时钟频率要求。在Proteus软件中需要在修改单片机属性对话框中的“AdvancedProperties”下拉菜单中选中“SimulateProgramFetches”选项,并将其后的选项由默认的“No”修改为“Yes”,如图20-6所示,这样在仿真运行时ALE才能有脉冲输出。知识链接图20-6修改单片机属性以使用ALE脉冲知识链接图20-7测温系统电路测温系统电路如图20-7所示。其中单片机右侧的部分为温度显示电路,用两个数码管显示当前温度,其电路与项目十五相同,温度显示部分的编程方法可参考项目十五。四、系统电路知识链接查阅附录指令系统可以看到以下叙述:CPL
bit
;bit←(bit)该条指令的功能是将指定位中存储的数取反,即该位数值1变为0或0变为1。五、程序1.取反指令CPL查阅附录指令系统可以看到以下叙述:DIVAB
;A←(A)÷(B),B←(A)÷(B)的余数该条指令的作用是将A中的数值除以B中的8位无符号数,商存储在A中,余数存储在B中。2.除法指令DIV知识链接3.编程方法控制程序主要分为转换启动信号输出、温度信号处理和温度显示三个步骤,完整程序如【程序20-1】所示。程序中先使P3.1为低电平,然后在程序的循环体即“LOOP:”~“SJMPLOOP”程序段中使用“CPLP3.1”,“CPLP3.1”使P3.1引脚变为高电平,然后变为低电平。由于CPL指令的执行需要一个机器周期,因此P3.1引脚输出了一个机器周期的高电平,时长为2μs,这个高电平时长满足ADC0808对于START引脚至少100ns宽正脉冲的启动信号的需要,输出这个信号后ADC0808开始进行模/数转换。接下来是延时程序,这里要特别注意。ADC0808的START引脚由低电平变为高电平后会将ADC0808复位,由高电平变为低电平后会开始进行模/数转换,根据其数据手册模/数转换时间最短为90μs,最长为116μs。模/数转换完毕,将结果传输至输出引脚至少还需要2个时钟周期,ADC0808工作时序图如图20-8所示。如果START引脚变为低电平后,模/数转换还未完毕就再次变为高电平,ADC0808将不能完成转换,不能输出转换结果。知识链接知识链接本例中将延时程序部分的R1设定为20,则“DJNZ
R1,$”指令执行完毕需要40个机器周期,再加上其后直至“SJMP
LOOP”的程序段也占用机器周期时间,而每个机器周期时间为2μs,因此P3.1输出低电平至再输出高电平间隔的时间满足ADC0808的要求。在仿真中实测必需的START引脚低电平时间与ADC0808的时钟周期有关,在时钟频率1MHz时START引脚的必需低电平时间为68μs,此时R1数值为6,这与ADC0808的数据手册不一致,在实际制作电路时应依据数据手册来编程和调试。知识链接0~250代表0~50℃,两者的关系是非线性的。在只精确到个位的情况下,为了满足四舍五入的需要,将P1收到的模数转化数据+4再除以5,则商就是当前温度,实测采用这种计算方式在0~50℃的范围内显示整数部分的温度没有误差。最后将当前温度计算出十位数和个位数,将两数组合从P2输出至译码器就能使数码管显示正确的温度。知识链接【程序20-1】CPL
P3.1
;设置P3.1为低电平LOOP:
;循环体起始CPL
P3.1
;设置P3.1为高电平CPL
P3.1
;设置P3.1为低电平,开始模/数转换MOV
R1,#20
;设置延时时间为41个机器周期DJNZ
R1,$
;延时40个机器周期MOV
A,P1
;模/数转换数据赋予A,准备处理数据ADD
A,#4
;数据+4,修正误差知识链接【程序20-1】MOV
B,#5
;5代表1℃DIV
AB
;计算温度的整数部分MOV
B,#10
;准备计算温度的十位和个位DIV
AB
;A为十位数值,B为个位数值SWA
PA
;十位数值换到高4位ADD
A,B
;组合十位数值和个位数值MOV
P2,A
;显示当前温度SJMP
LOOP
;返回循环模/数转换和显示END知识链接图20-8ADC0808工作时序图知识链接六、精度问题分析本例中将温度信号转变为电阻信号,将电阻信号转变为电压信号,再将电压信号转变为数值,最后把数值转变为温度值,完成测量并可以进行显示及控制。虽然练习中在一定范围内测量和显示温度至个位数没有误差,但是恒流源不稳定会造成同一温度下热敏电阻的电压不同,从而使最终算得的温度值不同。ADC0808的基准电压不稳定会造成同一电压转换为不同的数值,从而使最终算得的温度值不同。可见,温度测量电路中基准电流和基准电压对测量值的精度有影响,基准电流和基准电压的准确和稳定很重要。计算当前温度值时,实际是按0℃时模/数转换数值为0,50℃时为250,任意模/数转换数值X时的温度值为T=0+X(50/250)=X/5来计算的,然后根据误差情况修正为T=0+(X+4)(50/250)=(X+4)/5。当需要的精度更高,如温度值需要精确到小数点后一位时,这种方法就不能满足要求了。知识链接此时可以将整个测温区间分段线性化。如图20-9所示,一条曲线123,如果以1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年叉车作业安全事故应急处置预案
- 7月1日期末综合考试试卷(含详细答案)
- 网络安全教育课件模板中小学
- 合规转利润:降本增效全指南(2026)《GBT 39366-2020皮革 色牢度试验 耐摩擦色牢度》
- 技术交底监理监督方法
- 合规转利润:降本增效全指南(2026)《GBT 39132-2020燃料电池电动汽车定型试验规程》
- 辽宁辽阳市第一中学2026-2027学年上学期八年级学期初练习数学学科试卷(含简单答案)
- 2026年浙江省公务员申论写作能力提升训练题库
- 2026年浙江省人教版初中数学下册第4章同步练习题
- 河南青桐鸣2026-2027学年高三上学期学情调研数学试卷(含答案)
- 护理安全风险评估及记录
- 控告申诉业务竞赛含答案
- 顾方舟课件教学课件
- 货币鉴定师(初级)职业资格认定参考试题库(附答案)
- 玉米远期销售合同范本
- 4.1人的认识从何而来 课件 2025-2026学年统编版高中政治必修四哲学与文化
- 江苏苏州市2025-2026学年七年级上学期期中阳光测试语文卷(无答案)
- 应急演练组织与实施方法
- 设备维修部门绩效考核与提成办法
- 2025北京市事业单位就业援藏专项招聘21人考试参考试题及答案解析
- 茶饮店店长职位聘用协议
评论
0/150
提交评论