第08章 单片机应用系统中的模拟量输入与输出 习题解答-精品文档资料整理.doc

上传人:安*** 文档编号:28606933 上传时间:2022-07-28 格式:DOC 页数:10 大小:122.50KB
返回 下载 相关 举报
第08章 单片机应用系统中的模拟量输入与输出 习题解答-精品文档资料整理.doc_第1页
第1页 / 共10页
第08章 单片机应用系统中的模拟量输入与输出 习题解答-精品文档资料整理.doc_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《第08章 单片机应用系统中的模拟量输入与输出 习题解答-精品文档资料整理.doc》由会员分享,可在线阅读,更多相关《第08章 单片机应用系统中的模拟量输入与输出 习题解答-精品文档资料整理.doc(10页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第8章 单片机应用系统中的模拟量输入与输出 习题解答一、填空题1. 模拟/数字(A/D)转换,是 模拟信号转换为数字信号 的过程, 数字/模拟(D/A)转换是 模拟信号转换为数字信号 的过程。2. ADC0832是 一个具有串行接口的8位分辨率、双通道A/D转换 芯片,DAC0832是 是一个8位D/A转换器 芯片。3. ADC0809的工作频率允许范围是 不高于640KHZ 。4. ADC0832的工作频率是 250KHZ 。5. DAC0832的工作电源电压是 +5V+15V 。二、简答题1 画出ADC0809典型应用电路,其中CLK引脚连接时应注意什么问题?EOC引脚连接在查询和中断工作

2、方式下应如何处理?答:ADC0809典型应用电路如题图1所示。CLK引脚接入的工作频率应不高于640KHZ。EOC引脚的连接在查询时可接到某个引脚上,编程时不断查询该引脚,一旦为1说明转换结束。在中断工作方式下应如题图1所示,接在某个外中断输入端,一旦转换结束,申请中断。题图1 ADC0809与80C51接口2设已知8051单片机的晶振频率为12MHz,ADC0809口地址为CFFFH,采用中断工作方式,要求对8路模拟信号不断循环A/D转换,转换结果存入以30H为首地址的内RAM中。请画出该8路采集系统的电路图,并编写相应程序。答:8路采集系统的电路图如题图2所示。 题图2 8路采集系统的电路

3、图汇编参考程序:ORG 0000H ; 上电后程序从00000H开始,在0000H单元存放转移指令LJMP START ;转移到主程序ORG 000BH ;定时器T0的中断入口地址LJMP INTT0 ;转到中断子程序ORG 0100H ; 主程序从0100H开始START: MOV R0,#30H ;设立数据存储区指针 MOV R2,#08H ;设置8路采样计数值 SETB IT0 ;设置外部中断0为边沿触发方式 SETB EA ;CPU开放中断 SETB EX0 ;允许外部中断0中断 MOV DPTR,#0CFF8H ;送入口地址并指向IN0LOOP: MOVX DPTR,A ;启动A/D

4、转换,A的值无意义HERE: SJMP HERE ;等待中断中断服务程序: INTT0: MOVX A,DPTR ;读取转换后的数字量 MOV R0,A ;存入片内RAM单元 INC DPTR ;指向下一模拟通道 INC R0 ;指向下一个数据存储单元 DJNZ R2,INT ;8路未转换完,则继续 MOV R2,#8 ;准备下一循环 MOV R0,#30H MOV DPTR,#0CFF8H RETI ;中断返回INT: MOVX DPTR,A ;再次启动A/D转换 RETI ;中断返回END C语言参考程序:#include /包含特殊功能寄存器库#include /包含定义绝对地址访问库#

5、define uchar unsigned char /定义uchar为无符号字符数据类型#define IN0 XBYTE0xcff8 /定义IN0为通道0的地址static uchar data x8; /定义8个单元的数组,存放结果uchar xdata *ad_adr; /定义指向通道的指针uchar i=0; /定义变量i, 初值为0void main(void) /主函数,完成初始化IT1=1; / 外中断INT1为边沿触发EX1=1; /开INT1中断EA=1; /开CPU中断ad_adr=&IN0; /指针指向通道0*ad_adr=i; /启动通道0转换for (;) ; /等

6、待中断void int_adc(void) interrupt 0 /中断函数xi=*ad_adr; /接收当前通道转换结果i+; /指向下一个单元ad_adr+; /指向下一个通道if (i8) /判循环8次否*ad_adr=i; /8个通道未转换完,启动下一个通道返回elsei=0; /8个通道转换完,准备下一轮ad_adr=&IN0; *ad_adr=i; /启动通道0转换3在图8-5中,ADC0809的转换时钟由单片机的ALE提供,由于ADC0809的典型转换频率为640KHz左右,如果单片机的晶振频率为12MHZ,则ALE的频率为2MHZ,不符合要求,需要分频。请画出分频电路。答:A

7、LE的输出通过4分频后得到500KHz的工作频率送ADC0809的CLK端。可采用2个由D触发器构成的T触发器实现。 4.简述DAC0832的直通工作方式、单缓冲工作方式、双缓冲工作方式的特点和用途。答:直通工作方式:5个控制端均有效,直接D/A转换,不需受控。单缓冲工作方式:两个输入寄存器中任意一个处于直通方式,另一个工作于受控方式。在只有一路模拟量输出,或虽有几路模拟量但并不要求同步输出时,可采用单缓冲方式。双缓冲工作方式:两个锁存器都处于受控状态,用于需两路模拟量同时输出的场合。5试利用DAC0832单缓冲方式,设计一个可以产生50Hz的矩形波发生电路,并编写相应程序(设晶振频率6MHZ

8、)。答:50Hz的矩形波,周期20ms,高低电平各延时10ms。产生矩形波的汇编语言参考程序如下:ORG 0000H ;上电后程序从00000H开始,在0000H单元存放转移指令LJMP BEGIN ;转移到主程序BEGINORG 0100H ;主程序从0100H开始BEGIN: MOV DPTR, #7FFFH ;输入寄存器地址,假定P2.7接LP: MOV A, #DATAH ;设置矩形波上限MOVX DPTR, A ;将A的内容送D/A转换LCALL DELAYH_10ms ;高电平延时时间, 延时子程序略。MOV A,#DATAL ;设置矩形波下限MOVX DPTR, A ;将A的内容

9、送D/A转换LCALL DELAYL_10ms ;低电平延时时间,延时子程序略。SJMP LP ;循环END矩形波C语言参考程序如下:#include /包含特殊功能寄存器库#include /该文件用于定义存储器空间的绝对地址#define uchar unsigned char /定义uchar为无符号字符数据类型#define DAC0832 XBYTE0x7FFF /定义DAC0832表示片外地址0x7FFFvoid delay() /延时函数void delay(void) unsigned char j ,m,n; for(m=0;m20;m+) for(n=0;n250;n+)

10、; /循环延时10ms void main() /主函数uchar i; /变量i为无符号字符数据类型while(1) /无限循环体DAC0832=0; /输出低电平delay(); /延时DAC0832=0xff; /输出高电平delay(); /延时三、Proteus仿真1.在Proteus下,完成8.4节内容。答:全自动洗衣机水量控制Proteus仿真 在全自动洗衣机控制系统中,常用压力传感器来检测进水量的多少。传感器将水的压力这一物理量转换成电信号,电信号通过模/数转换变成相应的数字量后送给单片机进行控制处理,单片机将检测到的水位信息和设定的信息进行判断,若水量不够,继续进水;若达到设

11、定水量,则停止进水并开启电机工作。为了仿真的方便,将传感器用可变电阻代替。仿真电路如图8-16所示。图中,用一个10K的电位器模拟压力传感器,进水量的多少将改变模/数转换器ADC0832输入电压的大小。开关S代表洗衣机启动开关,D1代表电机启动信号,灯亮为启动电机工作。D2代表进水控制信号,灯亮为正在进水,灯灭为停止进水。 图8-6 全自动洗衣机水量控制电路图图8-16电路工作过程:当按键S按下,启动洗衣机工作,开始进水,D2亮。调节电位器的中间抽头,可改变模/数转换器ADC0832输入电压的大小,以此来表示进水量的多少。变化的电压经ADC0832转换成相应的二进制数送给单片机,单片机对数据进

12、行比较后,判断是否要停止进水。如转换的数据(或变化的电压)超过了预设进水量的标准,则在单片机控制下停止进水(D2灯灭),并启动电机工作(D1灯亮),电机的速度调整,参考上一节内容。基于ADC0832的全自动洗衣机进水控制汇编语言参考程序:ORG 0000H ;在0000H存放转移指令AJMP MAIN ;转移到主程序ORG 0100H ;主程序从0100H开始MAIN:CLR P1.6 ;先关进水信号,D2灯灭 CLR P1.7 ;关电机启动信号,D1灯灭 MOV A,#00H ;累加器A清0,准备移位接收数据L1: JB P2.7, L1 ;判按键S是否按下,没按下循环等待 LCALL de

13、lay10ms ;若按键S按下,调延时子程序去抖动 JB P2.7, L1 ;再判按键S是否按下,没按下循环等待,按下顺序执行 SETB P1.6 ;表示开始进水,D2灯亮L2: LCALL A_D ;调用将模拟信号转换成数字信号子程序A_D CJNE R0,#128,L3 ;判转换的数据是否到了预设值L3: JC L2 ;没到,继续进水 CLR P1.6 ;到了,停止进水SETB P1.7 ;启动电机开始工作 SJMP L2;A/D转换子程序功能:将模拟信号转换成数字信号A_D: MOV R7, #8 ;设循环次数SEBT P3.4 ;置CS=1,一个转换周期开始 CLR P1.0 ;为第一

14、个脉冲作准备 CLR P3.4 ; CS置0,片选有效 SEBT P1.1 ; P1.1置1,规定的起始信号 SEBT P1.0 ;第一个脉冲 CLR P1.0 ; 第一个脉冲的下降沿,此前P1.1必须是高电平 SEBT P1.1 ; P1.1置1, 通道选择信号 SEBT P1.0 ; 第二个脉冲,第2、3个脉冲下降之前,DI必须分别输入两位数据用于选择通道,这里选通道CH0CLR P1.0 ;第二个脉冲下降沿 CLR P1.1 ;DI置0,选择通道0 SEBT P1.0 ; 第三个脉冲 CLR P1.0 ; 第三个脉冲下降沿 SEBT P1.1 ; 第三个脉冲下降沿之后,输入端DIO失去作

15、用,应置1RR: SEBT P1.0 ; 第四个脉冲 CLR P1.0 ; 第四个脉冲下降沿MOV C, P1.1 ;将DI输入数据送位累加器C,高位在前RLC A ;累加器A带进位左移一位,循环8次,将转换好的数据存在A中。DJNZ R7, RRSEBT P3.4 ;片选无效 MOV R0, A ;将转换好的数据送R0 RET ;子程序返回delay10ms: ;延时10ms子程序, (333+2)100=10100(微秒),可以认为是10毫秒MOV R2,#100 ;送大循环计数初值LL1: MOV R3,#33 ;送小循环计数初值LL2: DJNZ R3, LL2 ;循环延时 DJNZ

16、R2, LL1 ;循环延时 RET ;子程序返回END ;汇编结束C语言参考程序:#include /包含单片机寄存器的头文件sbit CS=P34; /将CS位定义为P3.4引脚sbit CLK=P10; /将CLK位定义为P1.0引脚sbit DIO=P11; /将DIO位定义为P1.1引脚sbit P1_6=P16; /将P1_6位定义为P1.6引脚sbit P1_7=P17; /将P1_7位定义为P1.7引脚sbit P2_7=P27; /将P2_7位定义为P2.7引脚/*函数功能:延时1ms(3j+2)*i=(333+2)100=10100(微秒),可以认为是10毫秒*/void d

17、elay10ms() unsigned char i,j; for(i=0;i100;i+) for(j=0;j33;j+) /*函数功能:将模拟信号转换成数字信号*/ unsigned char A_D() /A_D转换函数。功能:将模拟信号转换成数字信号 unsigned char i,dat; /设i和det为无符号字符变量 CS=1; /一个转换周期开始 CLK=0; /为第一个脉冲作准备 CS=0; /CS置0,片选有效 DIO=1; /DIO置1,规定的起始信号 CLK=1; /第一个脉冲 CLK=0; /第一个脉冲的下降沿,此前DIO必须是高电平 DIO=1; /DIO置1, 通

18、道选择信号 CLK=1; /第二个脉冲,第2、3个脉冲下降之前,DI必须分别输入两位数据用于选择/通道,这里选通道CH0 CLK=0; /第二个脉冲下降沿 DIO=0; /DI置0,选择通道0 CLK=1; /第三个脉冲 CLK=0; /第三个脉冲下降沿 DIO=1; /第三个脉冲下降沿之后,输入端DIO失去作用,应置1 CLK=1; /第四个脉冲 for(i=0;i8;i+) /高位在前 CLK=1; /第四个脉冲 CLK=0; /第四个脉冲下降沿 dat128)/等待进水到指定量 P1_6=0; /到指定量,停止进水 P1_7=1; /电机开始工作 2.在Proteus下,完成简答题第5题内容。答:请参考第5题答案。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com