单片机DA转换实验报告
- 格式:pdf
- 大小:577.16 KB
- 文档页数:8
实验二D/ A转化实验一、实验目的:(1)掌握D/A转换与单片机的接口方法。
(2)了解D/A芯片PCF8591转换性能及编程方法。
(3)了解单片机系统中扩展D/ A转换芯片的基本方法二、实验内容利用实验仪上的PCF8591做D/A转换实验,写入DA的数模值,然后累加该值,显示该值到数码管,延时100m后循环写入变化后的DA值,观察LED9的变化。
三、实验说明A/ D转换器大致分有三类:一是双积分A/ D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近式A/ D转换器,精度、速度、价格适中;三是并行A/ D 转换器,速度快,价格也昂贵。
PCF8591属第二类,PCF8591是一个单片集成、单独供电、低功耗、8-bit CMOS数据获取器件。
PCF8591具有4个模拟输入、1个模拟输出和1个串行I²C总线接口。
PCF8591的3个地址引脚A0, A1和A2可用于硬件地址编程,允许在同个I2C总线上接入8个PCF8591器件,而无需额外的硬件。
在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I2C总线以串行的方式进行传输。
四、实验步骤(1)单片机P0口与J3相连,用作数码管显示(2)单片机P2.2与J2(B)相连,P2.2与J2(A)相连。
(3)跳帽J50 连接,给数码管供电。
(4)单片机P2.0与J8(SCL)相连,最为时钟输出,单片机P2.1与J8(SDL)相连最为数据输入输出。
(5)J31中AD0与W4用跳帽相连,选择AD通道。
(6)利用keil软件编写程序,并且用STC程序下载工具下载程序。
(7)观察LED9的变化。
一、实验目的1、掌握单片机与DAC0832的接口设计方法。
2、掌握Proteus软件与Keil软件的使用方法。
二、设计要求1、用Proteus软件画出电路原理图,在单片机的外部扩展片外三总线,并通过片外三总线与0832接口。
2、在单片机的外部扩展一个4个按键的键盘。
3、按下K0,产生连续方波信号。
4、按下K1,产生连续锯齿波信号。
5、按下K2,产生连续三角波信号。
6、按下K3,产生连续正弦波信号。
7、通过外接示波器观察波形。
三、电路原理图六、实验总结通过本次实验电路的设计,掌握了基本的DA转换电路单缓冲的设计;参考电压的选择;0832的片选;集成运放芯片的选择及接线;尤其是运放的反馈电阻,从而能够产生正常的波形。
七、思考题1、编程实现产生连续梯形波信号。
答:程序见程序清单。
四、实验程序流程框图和程序清单ORG 0000H/***********起始程序***********/START: LJMP MAINORG 0100H/***********监控程序***********/MAIN: MOV SP, #60HLOOP: LCALL KEYSSLJMP LOOPKEYSS: LCALL KEYJB ,KEYAAJB ,KEYBBJB ,KEYCCJB ,KEYDDJB ,KEYEERET/***********键功能程序*********/KEYAA: MOV R2 ,#00H ;锯齿波LOOP1: MOV DPTR ,#0000HMOV A ,R2MOVX @DPTR ,ADEC R2LCALL KEYSSLJMP LOOP1KEYBB: MOV DPTR ,#0000H ;矩形波LOOP2: MOV R3 ,#0FFHMOV A ,R3MOVX @DPTR ,ALCALL DELAYLCALL KEYSSMOV R3 ,#00HMOV A ,R3MOVX @DPTR ,ALCALL DELAYLCALL KEYSSLJMP LOOP2KEYCC: MOV R2 ,#00H ;三角波 MOV DPTR ,#0000HLOOP3: MOV A ,R2MOVX @DPTR ,AINC R2LCALL KEYSSCJNE R2 ,#0FFH ,LOOP3 LOOP4: MOV A ,R2MOVX @DPTR ,ADEC R2LCALL KEYSSCJNE R2 ,#00H ,LOOP4LJMP LOOP3KEYDD: MOV R2 ,#00H ;正弦波LOOP5: MOV DPTR ,#SINMOV A ,R2MOVC A ,@A+DPTRMOV DPTR ,#0000HMOVX @DPTR ,AINC R2LCALL KEYSSLJMP LOOP5KEYEE: MOV R2 ,#00H ;梯形波 MOV DPTR ,#0000HLOOP6: MOV A ,R2MOVX @DPTR ,AINC R2LCALL KEYSSCJNE R2 ,#0FFH ,LOOP6LCALL DELAY20msLOOP7: MOV A ,R2MOVX @DPTR ,ADEC R2LCALL KEYSSCJNE R2 ,#00H ,LOOP7LCALL DELAY20msLJMP LOOP6/*******常数表格***********/SIN:DB07FH ,082H ,085H ,088H ,08BH ,08FH ,092H ,095H ,098H ,09BH ,09EH ,0A1 H ,0A4H ,0A7H ,0AAH ,0ADHDB0B0H ,0B3H ,0B6H ,0B8H ,0BBH ,0BEH ,0C1H ,0C3H ,0C6H ,0C8H ,0CBH ,0CD H ,0D0H ,0D2H ,0D5H ,0D7HDB0D9H ,0DBH ,0DDH ,0E0H ,0E2H ,0E4H ,0E5H ,0E7H ,0E9H ,0EBH ,0ECH ,0EE H ,0EFH ,0F1H ,0F2H ,0F4HDB0F5H ,0F6H ,0F7H ,0F8H ,0F9H ,0FAH ,0FBH ,0FBH ,0FCH ,0FDH ,0FDH ,0FE H ,0FEH ,0FEH ,0FEH ,0FEHDB0FEH ,0FEH ,0FEH ,0FEH ,0FEH ,0FEH ,0FDH ,0FDH ,0FCH ,0FBH ,0FBH ,0FA H ,0F9H ,0F8H ,0F7H ,0F6HDB0F5H ,0F4H ,0F2H ,0F1H ,0EFH ,0EEH ,0ECH ,0EBH ,0E9H ,0E7H ,0E5H ,0E4 H ,0E2H ,0E0H ,0DDH ,0DBHDB0D9H ,0D7H ,0D5H ,0D2H ,0D0H ,0CDH ,0CBH ,0C8H ,0C6H ,0C3H ,0C1H ,0BE H ,0BBH ,0B8H ,0B6H ,0B3HDB0B0H ,0ADH ,0AAH ,0A7H ,0A4H ,0A1H ,09EH ,09BH ,098H ,095H ,092H ,08FH ,08BH ,088H ,085H ,082HDB07FH ,07CH ,079H ,076H ,073H ,06FH ,06CH ,069H ,066H ,063H ,060H ,05D H ,05AH ,057H ,054H ,051HDB04EH ,04BH ,048H ,046H ,043H ,040H ,03DH ,03BH ,038H ,036H ,033H ,031 H ,02EH ,02CH ,029H ,027HDB025H ,023H ,021H ,01EH ,01CH ,01AH ,019H ,017H ,015H ,013H ,012H ,010 H ,00FH ,00DH ,00CH ,00AHDB009H ,008H ,007H ,006H ,005H ,004H ,003H ,003H ,002H ,001H ,001H ,000 H ,000H ,000H ,000H ,000HDB000H ,000H ,000H ,000H ,000H ,000H ,001H ,001H ,002H ,003H ,003H ,004 H ,005H ,006H ,007H ,008HDB009H ,00AH ,00CH ,00DH ,00FH ,010H ,012H ,013H ,015H ,017H ,019H ,01A H ,01CH ,01EH ,021H ,023HDB025H ,027H ,029H ,02CH ,02EH ,031H ,033H ,036H ,038H ,03BH ,03DH ,040 H ,043H ,046H ,048H ,04BHDB04EH ,051H ,054H ,057H ,05AH ,05DH ,060H ,063H ,066H ,069H ,06CH ,06F H ,073H ,076H ,079H ,07CH/***********键扫子程序*********/KEY: LCALL KEYCHULIJZ EXITLCALL DELAYLCALL KEYCHULIJZ EXITMOV B ,20HKEYSF: LCALL KEYCHULIJZ KEY1POP PSWRET/*******延时子程序**********/ DELAY: MOV R7 ,#01H ;延时1ms DL1: MOV R6 ,#8EHDL0: MOV R5 ,#02HDJNZ R5 ,$DJNZ R6 ,DL0DJNZ R7 ,DL1RETDELAY20ms: MOV R6,#0D7H ;20ms DL2: MOV R5,#2DHDJNZ R5,$DJNZ R6,DL2NOPNOPRETEND五、实验结果(波形图)。
单片机c语言程序设计---D/A转换实验报告课程名称:单片机c语言设计实验类型:设计型实验实验项目名称: D/A转换实验一、实验目的和要求1.掌握数模转换的概念2.掌握D/A转换芯片DAC0832的功能及特点,掌握与单片机的接口3.掌握D/A转换芯片DAC0832的c语言编程实例二、实验内容和原理实验1.信号发生器功能:使用DAC0832用作信号发生器,编写产生锯齿波、三角波和方波的程序。
本次项目中,DAC0832采用单缓冲单极性的线选法接线方式,其选通地址为7FFFH。
(1)硬件设计使用P1口接3个独立的按键S01、S02、S03,当按下S01时输出锯齿波,按下S02时输出三角波,当按下S03时输出方波。
电路原理图如下仿真所需元器件(2)proteus仿真通过Keil编译后,利用protues软件进行仿真。
在protues ISIS 编译环境中绘制仿真电路图,将编译好的“xxx.hex”文件加入AT89C51。
启动仿真,观察仿真结果。
三、实验要求:1.完成信号发生器实验。
具体包括绘制仿真电路图、编写c源程序、进行仿真并观察仿真结果,需要保存原理图截图,保存c源程序,总结观察的仿真结果。
完成思考题。
四、操作方法与实验步骤1.按照硬件设计在protues上按照所给硬件设计绘制电路图。
2.在keil上进行编译后生成“xxx.hex”文件。
3.编译好的“xxx.hex”文件加入AT89C51。
启动仿真,观察仿真结果。
五、实验结果与分析void main(){while(1){while( K01==0 ) //生成锯齿波{for(cDigital=0;cDigital<=250;cDigital++){TransformData(cDigital);//进行数模转换}}while( K02==0 ) //生成三角波{for(cDigital=0;cDigital<=250;cDigital++){TransformData(cDigital);//进行数模转换}for(cDigital=250;cDigital>=0;cDigital--){TransformData(cDigital);//进行数模转换}}while( K03==0 ) //生成方波{TransformData(0);//进行数模转换Delay(500);TransformData(250);//进行数模转换Delay(500);}}}六、讨论和心得。
单片机DA转换实验报告实验九d/a实验报告㈠实验目的1.2.3.4.掌握单片机与d/a的接口及编程方法;通过d/a动态波形输入进一步认知d/a的工作原理;融合实验六中的a/d去检验软硬件的正确性。
进一步介绍单片机系统地址分配概念。
㈡实验器材1.2.3.4.5.g6w仿真器mcs―51实验板pc机信号发生器示波器一台一台一台一台一台㈢实验内容及要求dac0832就是附带双锁存器且可以与单片机8051轻易USB的8十一位d/a,从实验板的电原理图可知,当0832管脚ile为低,cs2为高时,8051对0832载入等待切换的8十一位数字量,当对0832载入任一数(wr、cs2都为高)时,8051启动d/a切换。
把具有一定规律变化的数据连续送到0832,可用示波器在运放741输出端看到一定规律的动态波形。
将实验六中a/d所余数据轻易送至0832,在d/a输入端的也需用示波器观测至还原成后的a/d输出端的信号。
注意:在实验前,应先检查dac0832的参考电压是否正确。
(建议dac0832的参照电压值vref=-5v,用万用表观测dac0832芯片的8脚电压值。
若不对,可以调节实验板上的电位器w3去发生改变d/a的参照电压值。
)㈣实验步骤1.接ile至高电平(+5v),根据cs2与高位地址线的相连接情况,确认0832在系统中的地址。
2.将微机与伟福仿真系统及51实验板相连接。
3.编写双向锯齿波或三角波输出的d/a程序,利用伟福仿真系统及计算机编订成目标码,运转并调试程序,用示波器观测实验结果。
4.编写送a/d数据至d/a转换程序,并将在实验六中所编写a/d采样程序与之相连接女团,运用伟福仿真系统及计算机编订成目标码,运转并调试程序,用示波器观测对照a/d输出端的和d/a输入端的波形。
㈤实验框图寄存器复置切换初值已经开始已经开始调a/d切换子程序取样n个数据㈥思考题1.在实验步骤4中,对照了a/d输出端的和d/a输入端的波形,它们存有什么不同?为什么?a/d输入端的就是正弦波形,而d/a输入端的就是一段直流提一段正弦波形。
实验三A/D转换实验一、实验目的1. 掌握ADC0809与单片机的接口及其编程方法。
2. 了解A/D变换芯片ADC0809工作原理。
3. 通过实验了解单片机如何进行数据采集。
二、实验原理和实验内容1.实验原理A/D转换器大致有三类:一是双积分A/D转换器,特点是精度高,抗干扰性好,价格便宜,但转换速度慢;二是逐次逼近A/D转换器特点是精度、速度、价格均适中;三是并行A/D转换器,速度快,价格昂贵。
本实验用的ADC0809属第二类,是八位A/D转换器。
每采集一次一般需100μS,A/D 转换结束后会自动产生EOC信号。
1)ADC0809引脚含义IN0~IN7:8路模拟通道输入,由ADDA,ADDB,ADDC三条线选择。
ADDA、ADDB、ADDC:模拟通道选择线,比如000时选择0通道,111时选择7通道。
D7~D0:数据线,三态输出,由OE(输出允许信号)控制输出与否。
OE:输出允许,该引线上的高电平,打开三态缓冲器,将转换结果放到D0~D7上。
ALE:地址允许锁存,其上升沿将ADDA,ADDB,ADDC三条引线的信号锁存,经译码选择对应的模拟通道。
ADDA,ADDB,ADDC可接单片机的地址线,也可接数据线。
ADDA接低位线,ADDC接高位线。
START:转换启动信号,在模拟通道选通之后,由START上的正脉冲启动A/D转换过程。
转换时间至少100us。
EOC(end of conversion):转换结束信号,在START信号之后,A/D开始转换。
EOC 输出低电平,表示转换在进行中,当转换结束,数据已锁存在输出锁存器之后,EOC变为高电平。
EOC可视作被查询的状态信号,亦可用来申请中断。
REF+、REF-:基准电压输入。
CLOCK:时钟输入、时钟频率上限为1280KHz。
2)ADC0809在实验系统中的电路ADC0809在实验平台中的电路如图8-3所示。
ADC0809输入通道的控制是由单片机的P2.0,P2.1 和P2.2完成,跳线J504使能U501锁存使能。
实验一D/A转换实验实验目的:1. 了解D/A转换的基本原理;2. 了解D/A转换芯片DAC0832的性能及编程方法;3. 了解89C51系统中扩展D/A转换的基本方法。
实验内容:1. 利用DAC0832,编制程序,实现将数字量00―0FFH分别以单极性和双极性方式转换为模拟量;2. 编制程序产生鋸齿波、三角波、正弦波。
三种波形轮流显示,用示波器观看。
归根到底就是使用单片机控制送给DAC的数据:矩形波——从0电平直接跳变至最高电平,再直接跳变至0电平;三角波——从0电平等量递增至最高电平,再等量递减至0电平;锯齿波——从0电平递增至高电平,再递减至0电平,且递增和递减量阶不等;幅值就是最高电平,周期就是变化时间。
①正向阶梯波实验程序。
在图2.32中,让8051单片机的累加器A从0开始循环增量,每增量一次向DAC0832送出一个数,得到一个输出电压,这样就可以获得一个正向阶梯波,波形的周期可以通过调整延时时间来改变。
MOV DPTR,#8000H ;DAC0832地址MOV A,#00HLOOP:MOVX @DPTR,A ;启动D/A转换ACALL DELAY ;延时INC AAJMP LOOP ;连续输出波形DELAY:MOV R4,#0FFH ;延时子程序LOOP1:MOV R5,#10HLOOP2:NOPNOPNOPDJNZ R5,LOOP2DJNZ R4,LOOP1RET②三角波实验程序。
若要获得负向的锯齿波,只需将以上程序中的指令INC A换成指令DEC A即可,如果将正向锯齿波与负向锯齿波组合起来就可以获得三角波,程序如下:MOV DPTR,#8000H ;DAC0832地址MOV A,#00HUP: MOVX @DPTR,A ;启动D/A转换INC A ;上升沿CJNE A,#0FFH,UPDOWN:MOVX @DPTR,A ;启动D/A转换DEC A ;下降沿CJNE A,#00H,DOWNAJMP UP ;连续输出波形③方波实验程序。
d a转换器实验报告DA转换器实验报告引言:DA转换器(Digital-to-Analog Converter)是一种将数字信号转换为模拟信号的设备。
在现代电子技术中,DA转换器被广泛应用于各种领域,如通信、音频处理、自动控制等。
本实验旨在通过搭建DA转换器电路并进行实际测试,来深入了解其工作原理和性能特点。
一、实验目的本实验的目的是通过搭建DA转换器电路,了解其工作原理以及性能特点,并通过实际测试来验证其转换准确性和稳定性。
二、实验原理DA转换器的基本原理是将输入的数字信号转换为模拟信号输出。
常见的DA转换器有两种类型:并行式和串行式。
并行式DA转换器将输入的二进制数字信号同时转换为相应的模拟信号,而串行式DA转换器则是逐位地将二进制数字信号转换为模拟信号。
在本实验中,我们将使用串行式DA转换器。
串行式DA转换器由一个计数器和一个数字模拟转换器组成。
计数器用于逐位地将二进制数字信号输出,而数字模拟转换器则将二进制数字信号转换为相应的模拟信号输出。
三、实验步骤1. 搭建DA转换器电路:按照实验指导书上的电路图,连接计数器和数字模拟转换器。
2. 设置输入信号:通过调节计数器的输入信号,设置所需的二进制数字信号。
3. 测试输出信号:将数字模拟转换器的输出信号连接到示波器上,并观察输出信号的波形和幅度。
4. 记录实验数据:记录不同输入信号对应的输出信号波形和幅度,并进行分析。
四、实验结果与分析通过实验,我们得到了不同输入信号对应的输出信号波形和幅度数据。
根据实验数据,我们可以得出以下结论:1. 准确性:通过比对输入信号和输出信号的对应关系,可以发现DA转换器在转换过程中几乎没有误差,转换准确性非常高。
2. 稳定性:在实验过程中,我们发现无论输入信号如何变化,输出信号始终保持稳定,没有明显的波动或漂移现象。
五、实验总结通过本次实验,我们深入了解了DA转换器的工作原理和性能特点。
DA转换器在现代电子技术中起着重要的作用,广泛应用于各个领域。
单片机应用技术课程报告实验名称D/A转换器DAC0832的应用实验时间2020年6月30 日学生姓名实验地点钉钉群线上同组人员专业班级1、实验目的(1)了解D/A转换与单片机的接口方法;(2)了解D/A转换芯片DAC0832的性能及编程方法(3)掌握D/A转换的程序设计方法。
2、任务设计要求(1)掌握实验原理,读懂实验线路图,了解所用到的元器件特性。
(2)会绘制电路原理图,会连接电路原理图。
(3)将编制的锯齿波、方波程序运行,用示波器观察波形。
使用STC89C51单片机、DAC0832芯片,设计一个波形发生器,能产生正弦波、方波、三角波、锯齿波,梯形波,要求通过编程实现不同波型的产生,通过按键实现不同波形输出的切换。
3、总体设计方案4、硬件电路设计5、软件程序设计#include<absacc.h>#include<reg51.h>#define DAC0832 XBYTE[0x7fff]sbit k1=P1^0;sbit k2=P1^1;sbit k3=P1^2;sbit k4=P1^3;sbit k5=P1^4;int flag1=0;int flag2=0;int flag3=0;int flag4=0;int flag5=0;unsigned char code zhengxian[256]={0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5, 0xa8,0xab,0xae,0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9, 0xcc,0xce,0xd1,0xd3,0xd5,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6, 0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf4,0xf6,0xf7,0xf8,0xf9, 0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9, 0xf8,0xf7,0xf6,0xf4,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe2,0xe0,0xde,0xdc,0xda,0xd8,0xd6,0xd3,0xd1,0xce,0xcc,0xc9, 0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb4,0xb1,0xae,0xab,0xa8,0xa5, 0xa2,0x9f,0x9c,0x99,0x96,0x92,0x8f,0x8c,0x89,0x86,0x83,0x80,0x7d, 0x7a,0x76,0x73,0x70,0x6d,0x6a,0x67,0x64,0x61,0x5e,0x5b,0x58,0x55, 0x52,0x4f,0x4c,0x49,0x46,0x43,0x41,0x3e,0x3b,0x39,0x36,0x33,0x31, 0x2e,0x2c,0x2a,0x27,0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15, 0x14,0x12,0x10,0x0f,0x0d,0x0c,0x0b,0x09,0x08,0x07,0x06,0x05,0x04, 0x03,0x03,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x05,0x06,0x07,0x08, 0x09,0x0a,0x0c,0x0d,0x0e,0x10,0x12,0x13,0x15,0x17,0x18,0x1a,0x1c, 0x1e,0x20,0x23,0x25,0x27,0x29,0x2c,0x2e,0x30,0x33,0x35,0x38,0x3b, 0x3d,0x40,0x43,0x46,0x48,0x4b,0x4e,0x51,0x54,0x57,0x5a,0x5d,0x60, 0x63,0x66,0x69,0x6c,0x6f,0x73,0x76,0x79,0x7c};void delay()//延时程序{int i;for(i=0;i<1000;i++);}void panduan (void)//函数panduan用于扫描按键状态判断输出波形{if (k1==0){//按键消抖delay();if (k1==0)//通过赋值flag选择波形flag1=1;flag2=0;flag3=0;flag4=0;flag5=0;}if(k2==0){delay();if (k2==0)flag1=0;flag2=1;flag3=0;flag4=0;flag5=0;}if (k3==0){//补充程序flag1=0;flag2=0;flag3=1;flag4=0;flag5=0;。
D/A转换实验报告组员:田亚峰杜亚亚摘要此次设计实验是以AT89C51、DAC0832、741为核心,并加以其他辅助电路来实验D/A转换,其中主要是利用单片机来控制从数字量到模拟量的整个转换。
先是从键盘输入数字量到单片机,再从单片机输出到DAC0832,经D/A转换后输出与该数字量大小对应的模拟电压,并用LED数码管显示出来输入的数字量值。
目录1.方案设计及论证 (2)1.1理论分析 (2)1.2单片机选择 (2)1.3键盘设计 (2)1.4 D/A转换选择 (3)2.硬件设计 (3)2.1单片机模块 (3)2.2 D/A转换模块 (4)3.软件设计 (6)4.仿真验证及调试 (6)4.1调试方法 (6)4.2性能测试仪器 (7)4.3实验数据 (7)4.4误差分析 (8)5.设计总结及体会 (8)附录(一):实物图 (9)附录(二)软件程序 (9)1.方案设计及论证1.1理论分析根据本次设计任务的要求,由单片机模块、D/A转换模块、反相比例加法运算电路构成。
系统框图如下:图1 系统框图1.2单片机选择方案一:选用AT89C51方案二:选用AT89C52论证:1)AT89C52的程序空间为8K 比AT89C51的空间大2)AT89C52多了个T2定时器,所以比89C51多几个寄存器因此选用AT89C52.1.3键盘设计方案一:采用独立式键盘方案二:采用矩阵式键盘论证:由于独立式键盘占用较多的I/O线,因此选用4×4矩阵式键盘输入,以保证10个数全部完整输入,节省I/O端口资源。
1.4 D/A转换选择此次设计选用DAC0832,它是由一个八位输入锁存器、一个8位D/A 锁存器和一个8位D/A转换器三个部分组成。
D/A转换器将输入的数字量转换为模拟量输出,数字量是由若干数位构成的,就是把每一位上的代码按照权值转换为对应的模拟量,再把各位所对应的模拟量相加,所得到各位模拟量的和便是数字量所对应的模拟量。
实验六D/A转换实验一、实验目的:1.了解D/A转换的基本原理。
1.了解D/A转换芯片0832的性能及编程方法。
2.了解单片机系统中扩展D/A转换的基本方法。
二、实验设备:EL-MUT-III型单片机实验箱、8051CPU模块三、实验内容:利用DAC0832,编制程序产生锯齿波、三角波、正弦波。
三种波形轮流显示。
四、实验原理:D/A转换是把数字量转换成模拟量的变换,从D/A输出的是模拟电压信号。
产生锯齿波和三角波只需由A存放的数字量的增减来控制;要产生正弦波,较简单的手段是造一张正弦数字量表。
取值范围为一个周期,采样点越多,精度就越高。
本实验中,输入寄存器占偶地址端口,DAC寄存器占较高的奇地址端口。
两个寄存器均对数据独立进行锁存。
因而要把一个数据通过0832输出,要经两次锁存。
典型程序段如下: MOV DPTR,#PORTMOV A,#DATAMOVX @DPTR,AINC DPTRMOVX @DPTR,A其中第二次I/O写是一个虚拟写过程,其目的只是产生一个WR信号。
启动D/A。
五、实验电路:六、实验步骤:1、DAC0832的片选CS0832接CS0,输出端OUT接示波器探头。
2、将短路端子DS的1、2短路七、程序框图T14.ASM主程序MAIN 锯齿波显示子程序:PRG1三角波显示子程序:PRG2 正弦波显示子程序:PRG3中断子程序:DELAY;实验接线:DAC0832的片选CS0832接CS0,输出端OUT接示波器探头。
NAME T92 ;0832数模转换实验PORT EQU 0CFA0HCSEG AT 4000HLJMP STARTCSEG AT 4100HSTART: MOV R1,#02H ;置计数初值于R1ACALL PRG1 ;显示锯齿波MOV R1,#01H ;置计数初值于R1ACALL PRG2 ;显示三角波MOV R1,#01H ;置计数初值于R1ACALL PRG3 ;显示正弦波LJMP START ;转START循环显示PRG1: MOV DPTR,#PORT+1 ;DAC寄存器端口地址送DPTR问题1、端口地址是多少?MOV A,#00H ;初值送ACCLOOP: MOV B,#0FFHLOOP1: MOV DPTR,#PORT ;DAC输入寄存器端口地址MOVX @DPTR,A ;送出数据INC DPTR ;问题2、加一,,是什么寄存器端口地址MOVX @DPTR,A ;启动转换INC A ;数据加一CJNE A,#0FFH,LOOP1MOV A,#00HDJNZ B,LOOP1DJNZ R1,LOOP ;计数值减到40H了吗?没有则继续RET ;产生锯齿波问题3、描述锯齿波是如何产生的?PRG2: MOV DPTR,#PORT+1MOV A,#00HLP0: MOV B,#0FFHLP1: MOV DPTR,#PORT ;LP1循环产生三角波前半周期MOVX @DPTR,AINC DPTRMOVX @DPTR,AINC ACJNE A,#0FFH,LP1 ;数据为FFH吗?不等则转LP1MOV R2,#0FEHLP2: MOV DPTR,#PORT ;LP2循环产生三角波后半周期MOV A,R2MOVX @DPTR,AINC DPTRMOVX @DPTR,ADJNZ R2,LP2DJNZ B,LP1DJNZ R1,LP0 ;计数值到80H则退出执行下一步RET问题3、描述三角波是如何产生的?PRG3: MOV B,#00HLP3: MOV DPTR,#DATA0MOV R4,#0FFH ;FFH为DA TA0表中的数据个数LP4: MOVX A,@DPTR ;从表中取数据MOV R3,DPHMOV R5,DPLMOV DPTR,#PORTMOVX @DPTR,AINC DPTRMOVX @DPTR,AMOV DPH,R3MOV DPL,R5INC DPTR ;地址下移DJNZ R4,LP4DJNZ B,LP3DJNZ R1,PRG3RET问题4、描述正弦波是如何产生的?DA TA0: DB 80H,83H,86H,89H,8DH,90H,93H,96HDB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEHDB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5HDB 0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H,0D8HDB 0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9HDB 0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5HDB 0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDHDB 0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDHDB 0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6HDB 0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EAHDB 0E9H,0E7H,0E5H,0E3H,0E1H,0DEH,0DDH,0DAHDB 0D8H,0D6H,0D4H,0D1H,0CFH,0CCH,0CAH,0C7HDB 0C5H,0C2H,0BFH,0BCH,0BAH,0B7H,0B4H,0B1HDB 0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH,99HDB 96H,93H,90H,8DH,89H,86H,83H,80HDB 80H,7CH,79H,76H,72H,6FH,6CH,69HDB 66H,63H,60H,5DH,5AH,57H,55H,51HDB 4EH,4CH,48H,45H,43H,40H,3DH,3AHDB 38H,35H,33H,30H,2EH,2BH,29H,27HDB 25H,22H,20H,1EH,1CH,1AH,18H,16HDB 15H,13H,11H,10H,0EH,0DH,0BH,0AHDB 09H,8H,7H,6H,5H,4H,3H,2HDB 02H,1H,0H,0H,0H,0H,0H,0HDB 00H,0H,0H,0H,0H,0H,1H,2HDB 02H,3H,4H,5H,6H,7H,8H,9HDB 0AH,0BH,0DH,0EH,10H,11H,13H,15HDB 16H,18H,1AH,1CH,1EH,20H,22H,25HDB 27H,29H,2BH,2EH,30H,33H,35H,38HDB 3AH,3DH,40H,43H,45H,48H,4CH,4EH DB 51H,51H,55H,57H,5AH,5DH,60H,63HDB 69H,6CH,6FH,72H,76H,79H,7CH,80H END。