版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
工程7 学习A/D接口和D/A接口任务1用DAC0832实现方波、三角波、锯齿波波形发生器任务2用ADC0809实现数字电压表点击此处结束任务1 用DAC0832实现方波、三角波、锯齿波波形发生器点击此处结束任务分析任务实现相关知识任务分析图7.1 信号发生器波形点击此处结束任务实现步骤1—认识转换元器件图7.2
DAC0832芯片引脚图点击此处结束图7.3
DAC0832芯片的内部结构图点击此处结束步骤2—硬件电路设计图7.4 波形发生器电路图点击此处结束处结束步骤3—准备元器件并制作电路板波形发生器电路元器件清单如表7.1所示。表7.1 波形发生器电路元器件清单元器件名称参数数量元器件名称参数数量IC插座DIP401电阻10kW1单片机89C511电阻5.1kW1晶体振荡器12MHz1电解电容22µF2瓷片电容22pF2可变电阻10kW3集成运放LM3241IC插座DIP20点1击此图7.5 集成运放LM324芯片的引脚图点击此处结束图7.6 波形发生器电路板硬件实物点击此处结束锯齿波编程思路:先输出二进制最小值
00H,然后按+1规律递增,当输出数据到达最大值FFH时,再回到00H重复这一过程。源程序如下:点击此处结束步骤4—编写波形发生程序;************锯齿波程序
*******************;程序名:锯齿波程序PM7_1_1.asm;程序功能:产生锯齿波信号输出ORG
0000H点击此处结束AJMPSTARTSTART:MOVDPTR,#7FFFH;输入存放器地址AA:
MOVA,
#00H;送转换初值BB:
MOVX@DPTR,A;D/A转换NOP;延时NOPCJNEA,#0FFH,CC;判断最大值到否SJMPAACC:INCAAJMPBBEND正弦波编程思路:源程序如下:点击此处结束;**********正弦波程序
***************;程序名:正弦波程序PM7_1_2.asm;程序功能:产生正弦波输出,周期约256ms,幅度约2.5V0000HMAIN0100H#6FHR4,#00HDPTR,#TAB;确定表首地址A,R4A,@A+DPTR;查表取输出参数ORGLJMPORGMAIN:
MOV
SP,PUB0:MOVPUB1:MOVMOVMOVCMOVDPTR,
#7FFFHPUB2:
MOVX@DPTR,ALCALL
DELAY_1msINC
R4CJNE
R4,#00H,PUB1;判断一个周期到否LJMPPUB0TAB
:DB
80H,83H,86H,89H,8DH,90H,93H,96H,99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEHDB
1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H,0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H
0D8H
DB0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9H,0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5HDB0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDH,0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDH,0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6HDB0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EAH,0E9H,0E7H,0E5H,0E3H,0E1H,0DFH,0DDH,0DAHDB0D8H,0D6H,0D4H,0DlH,0CFH,0CCH,0CAH,0C7H,0C5H,0C2H,0BFH,0BCH,0BAH,0B7H,0B4H,0B1HDB
0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH,99H,96H,93H,90H,8DH,89H,86H,83H,80HDB
80H,7CH,79H,76H,72H,6FH,6CH,69H,66H,63H,60H,5DH,5AH,57H,55H,51HDB
4EH,4CH,48H,45H,43H,40H,3DH,3AH,38H,35H,33H,30H,2EH,2BH,29H,27HDB
25H,22H,20H,1EH,1CH,1AH,18H,16H,15H,13H,11H,10H,0EH,0DH,0BH,0AHDB
09H,08H,07H,06H,05H,04H,03H,02H,02H,01H,00H,00H,00H,00H,00H,00HDB
00H,00H,00H,00H,00H,00H,01H,02H,02H,03H,04H,05H,06H,07H,08H,09HDB
0AH,0BH,0DH,0EH,10H,11H,13H,15H,16H,18H,1AH,1CH,1EH,20H,22H,25HDB
27H,29H,2BH,2EH,30H,33H,35H,38H,点3AH击,3D此H,4处0H,结43H束,束,束45H,48H,4CH,4EH点击此处结束;**************延时1ms子程序
***************;程序名:DELAY_1ms;程序功能:延时1msDELAY_1ms:PUSH
ACC ;249×4µs+4µs
=1msNOPCLRAPD:NOPINCACJNEA,#0F9H,PD;#F9H
=
249DPOPACCRETEND方波编程思路:源程序如下:;************ 方波程序
*********;程序名:方波程序PM7_1_3.asm;程序功能:产生方波信号输出0000HSTARTDPTR,#7FFFH;A,
#00H;送ORG
AJMPSTART:MOV输入存放器地址AA:MOV转换最小值00H;MOVX
@DPTR,AD/A转换LCALL
D点E点E点L击A此Y此Y此_处1结m结ms束;延将硬件电路板和单片机开发系统连接好,进行以下操作。①
输入源程序。②
编译源程序。③ 将输出Vo与示波器连接。④
运行程序,用示波器观察输出电压波形。点击此处结束步骤5—调试并运行程序①
锯齿波、正弦波、方波程序的流程图如图7.7、图7.8、图7.9所示。步骤6—程序分析总结图7.7 锯齿波程序的流程图点击此处结束图7.8 正弦波程序的流程图点击此处结束图7.9 方波程序的流程图点击此处结束相关知识D/A转换器的性能指标〔1〕分辨率〔2〕建立时间D/A转换器芯片DAC0832功能图7.10 运算放大器接法点击此处结束3.接口方式与编程〔1〕直通方式图7.11 直通方式接线的原理示意图点击此处结束【例7.1】
DAC0832芯片直通方式下的信号发生器。用采用直通方式连接的DAC0832芯片产生一个周期为1kHz的方波信号。〔1〕题意分析在直通方式下,直接将要转换的二进制数输出即可获得相应的模拟电压。因此,先输出二进制最小值00H,延时
0.5ms,再输出二进制最大值FFH,延时0.5ms,然后不断重复这一过程即可产生方波。点击此处结束〔2〕程序设计用汇编语言实现的程序如下:;***********直通方式下的方波信号发生器*************;程序名:DAC0832芯片直通方式的方波信号发生器EX7_1.asm;程序功能:1kHz的方波信号发生器点击此处结束0000HSTARTP1,
#00H;送转ORG
AJMPSTART:MOV换最小值00HLCALL
DELAY1;延时;*************延时0.5ms子程序***************;程序名:DELAY1;程序功能:延时0.5msDELAY_1ms:PUSH
ACC ;124×4µs+4µs
=0.5msNOP点击此处结束A;#7BH
=
124DCLRPD:
NOPINC
ACJNE
A,#7BH,PDPOP
ACCRETEND〔2〕单缓冲方式图7.12
DAC
0832单缓冲方式接口1点击此处结束图7.13
DAC
0832单缓冲方式接口2点击此处结束〔3〕双缓冲方式图7.14
DAC
0832芯片双缓冲方式连接图点击此处结束【例7.2】
DAC0832芯片双缓冲方式下的信号发生器。假定图7.14所示的电路中输入存放器地址为FEH,DAC存放器地址为FFH。请利用该电路设计一个任意周期的锯齿波发生器。〔1〕题意分析先输出二进制最小值00H,然后按+1规律递增,当输出数据到达最大值FFH时,再回到
00H重复这一过程。由于输入存放器地址为FEH,DAC存放器地址为FFH,因此在程序中使用MOVX
@
R0,
A和MOVX
@
R1,A两条传送指令,才能完成一个数字量的模拟转换。点击此处结束〔2〕程序设计源程序如下:;**************
锯齿波程序**************;程序名:DAC0832芯片双缓冲方式的锯齿波程序EX7_2.asm;程序功能:产生锯齿波信号输出ORG
0000HAJMP
STARTR0,#0FEH;装入输R1,#0FFH;装入DACA,
#00H点击此处结束;送转换START:MOV入存放器地址MOV存放器地址AA:MOV初值任务2 用ADC0809实现数字电压表点击此处结束任务分析任务实现相关知识任务分析图7.15 数字电压表电路框图点击此处结束任务实现步骤1—认识转换元器件图7.16
ADC0809芯片的引脚图点击此处结束表7.2通道选择表点击此处结束ADDCADDBADDA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7表7.3 简易数字电压表元器件清单点击此处结束步骤2—硬件电路设计步骤3—准备元器件并制作电路板元器件名称参
数数
量元器件名称参
数数
量IC插座DIP401电阻10kW2IC插座DIP141电阻5kW(可调)1晶体振荡器12MHz1模数转换ADC08091瓷片电容22pF2双D触发器74LS741七段数码管2或非门74LS021单片机89C511图7.17 简易数字电压表电路图点击此处结束图7.18 数字电压表电路板硬件实物点击此处结束源程序如下:;************简易数字电压表程序
************;程序名:简易数字电压表程序PM7_2.asm;程序功能:显示0.0~5.0V测量电压值,分辨率0.1V点击此处结束0000HORGAJMPORGMAIN:
MOVMAIN0030HSP,#60HLP:
LCALL
ADCHNLCALLLCALLDATAPRDISP1;调用取A/D转换电压数据子程序;调用数据处理子程序;调用显示子程序LPAJMPEND步骤4—编写控制程序**********;*********
A/D转换子程序ADCHN;子程序名:ADCHN;功能:读取A/D转换电压值;入口参数:无;出口参数:A,存放转换后8位数字量P0.2P0.2;A/D转换器清0;A/D转换启动;查询转换是否结束?;允许读取转换结果ADCON:SETBNOPNOPCLRNOPNOPSETB
P0.2JB
P0.3,
$CLR
P0.2NOPNOPMOVMOV;从P1端口读取转换数据P1,
#0FFHA,
P1RET〔1〕单片机与A/D转换器接口子程序
ADCHN设计思路点击此处结束;********显示数据处理子程序
DATAPR
*************;子程序名:DATAPR;功能:将A中的数据转换成0.0~5.0之间的十进制数。;出口参数:显示数据存放在40H、41H单元中,40H单元存放整数,41H单元存放小数。〔2〕数据处理子程序设计思路点击此处结束HE:MOVR2,#00HMOVR3,AMOVR6,#00HMOVR7,#0AHLCALLMULDMOVR6,#00HMOVR7,#33H;把51送到R7LCALLDIVDMOVA,
R3LCALLHBCDMOV41H,AANL41H,
#0FH;把个位的数送到40H单元SWAPAANLA,#0FHMOV40H,
A;把十位的数送到40H单元RET点击此处结束;************双字节乘法子程序MULD*****************;子程序名:MULD;功能:双字节二进制无符号数乘法;入口参数:被乘数在R2、R3中,乘数在R6、R7中。;出口参数:乘积在R2、R3、R4、R5中。点击此处结束MULD:
MOVA,
R3;计算R3乘R7MOVB,R7MULABMOVR4,B;暂存局部积MOVR5,AMOVA,R3;计算R3乘R6MOVB,R6MULABADDA,R4;累加局部积MOVR4,ACLRAADDCA,BMOVR3,AMOVA,R2;计算R2乘R7MOVB,R7MULABADDA,R4;累加局部积MOVR4,
AMOVA,R3ADDCA,B点击此处结束;计算R2乘R6;累加局部积MOV
R3,ACLR
ARLC
AXCH
A,R2MOV
B,R6MUL
ABADD
A,R3MOV
R3,AMOV
A,R2ADDC
A,BMOV
R2,ARET*********双字节除法子程序DIVD*********************;子程序名:DIVD;功能:双字节二进制无符号数除法;入口参数:被除数在R2、R3、R4、R5中,除数在R6、R7中。;出口参数:OV=0时,双字节商在R2、R3中,OV=1时表示溢出。点击此处结束;比较被除数和除数;溢出DIVD:
CLR
CMOV
A,R3SUBB
A,R7MOV
A,R2SUBB
A,R6JC
DVD1SETB
OVRETDVD1:
MOVB,#10H;计算双字节商DVD2:
CLRC;局部商和余数同时左移一位MOVA,R5RLCAMOVR5,AMOVA,R4RLCAMOVR4,AMOVA,R3RLCAMOVR3,AXCHA,R2RLCAXCHA,R2MOVF0,C;保存溢出位点击此处结束CLRCSUBBA,R7;计算R2R3-R6R7MOVR1,AMOVA,R2SUBBA,R6ANLC,/F0;结果判断JCDVD3MOVR2,A;存放新的余数MOVA,R1MOVR3,AINCR5DVD3:
DJNZB,DVD2;是否计算完十六位商MOVA,R4;将商移至R2R3中MOVR2,AMOVA,R5MOVR3,ACLROVRET点击此处结束********将十六进制数转换成BCD码子程序HBCD*********;子程序名:HBCD;功能:将单字节十六进制整数转换成单字节BCD码整数;入口参数:单字节十六进制整数在A中;出口参数:转换后的BCD码十位和个位整数存在A中,百位点击此处结束存在R3中HBCD:
MOVB,#100;别离出百位,存放在R3中DIVABMOVR3,AMOVA,#10;余数别离为十位和个位XCHA,BDIVABSWAPAORLA,B;将十位和个位拼成压缩BCD码RET*************数码管动态显示子程序DISP1***********;子程序名:DISP1;功能:用两位数码管显示0.0~5.0数字;入口参数:40H、41HDISP1:MOVDPTR,#TAB;设置不含小数点显示字符表首地址MOVA,
41HMOVCA,@A+DPTR ;取显示字符SETBP0.7 ;屏蔽十位显示CLRP0.6 ;选择个位显示MOVP2,A ;送个位显示字符LCALLDELAYLCALLDELAY〔3〕分析显示程序设计思路点击此处结束MOV
DPTR,#EVER;设置含小数点显示字符表首地址点击此处结束;屏蔽个位显示;选择十位显示;送十位显示字符A,
40HA,
@A+DPTRP0.6P0.7P2,ADELAYDELAYMOVMOVCSETBCLRMOVLCALLLCALLRETTAB:DB80H,90HEVER:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,;显示字符40H,79H,24H,30H,19H,12H,02H,078H,00H,10HR6,#10R7,#250R7,DEL1R6,DEL2DELAY:MOVDEL2:
MOVDEL1:
NOPNOPDJNZDJNZRETEND① 按照工程1建立起单片机开发环境,连接目标板和仿真器。② 在MedWin界面下输入汇编语言程序
PM7_2.asm。③
保存程序到指定的路径下。④
编译上述程序。⑤
用单步运行、断点运行等方法调试程序,当程序运行无误后,在连续运行状态下观察初始显示状态是否正确。点击此处结束步骤5—调试并运行程序⑥当改变输入被测电压时,观察显示是否跟随变化。用万用表测量一下实际电压并与显示电压值对照,如果有很大的误差,分析可能产生误差的原因。点击此处结束① 数字电压表程序流程图如图7.19所示。② 在完成0.0~5.0V数字电压表的根底上,做一个分辨率为0.01V的电压表或制作一个最大量程为12V的电压表。思考硬件和软件应做如何改动。点击此处结束步骤6—程序分析总结图7.19 数字电压表程序流程图点击此处结束相关知识1.ADC0809的内部结构图7.20
ADC0809内部逻辑结构点击此处结束2.MCS-51单片机与ADC0809接口图7.21
ADC0809芯片与8031单片机的连接点击此处结束因此该ADC0809的通道地址确定如下:〔1〕8路模拟通道选择点击此处结束8031A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0809×××××××ST×××××CBA×××××××0×××××000……×××××××0×××××111【例7.3】 中断方式的A/D转换应用。某冷冻厂需对8个冷冻室进行温度巡回检测。要求利用图7.21设计一个用单片机控制的巡回检测系统,使其能对各冷冻室的温度巡回检测并加以处理。〔2〕转换数据的传送点击此处结束〔1〕题意分析本例需要实现如下3个功能。温度采集:由温度传感器实现,可选用热敏电阻或集成温度传感器DS18B20等芯片,在每个冷冻室的适宜位置安放,传感器的输出可分别送到IN0~IN7。巡回检测:8路信号同时输入到各相应的通道,但ADC0809一个时刻只能转换一个通道的数据,可分时转换8路通道的数据,程序设计时可通过修改通道地址选择线来实现。中断控制:翻开外部中断1,每转换完一个通道的数据就中断一次,在中断处理程序中保存转换后的数据,并修改通道地址选择线,实现下一通道的信息转换。点击此处结束〔2〕程序设计用汇编语言
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 骨干教师读书笔记和心得7篇
- 闽教版信息技术三年级下册《第二单元 我是计算机小画家 7 多种形状展创意》教学实录
- 一周个人的工作总结有感10篇
- 七年级体育 体育与健康教育第12课教学实录 人教新课标版
- 个人简历自我评价(集锦15篇)
- 应用暴露限值法评估中国花生黄曲霉毒素风险
- 经纪人管理办法(试行)
- 电影《泰坦尼克号》中英文字幕
- 2022年小学英语教研组工作总结5篇
- 北师大版八年级上册数学期末考试试卷含答案
- 2023-2024学年浙江省慈溪市小学语文五年级期末模考试卷详细参考答案解析
- 轧机作业指导书
- GA/T 2002-2022多道心理测试通用技术规程
- 一年级体育教学质量报告
- 菜籽预处理压榨车间工艺设计教材
- 中式面点技艺智慧树知到答案章节测试2023年东营市东营区职业中等专业学校
- 说专业模板完整版
- 个人所得税经营所得纳税申报表C表
- 2023-2024学年广东省东莞市小学数学四年级上册期末提升测试题
- GB/T 20946-2007起重用短环链验收总则
- GB/T 20793-2015苎麻精干麻
评论
0/150
提交评论