四川大学微机接口模数转换实验报告
实验步骤:
1.单极性输入信号的A/D转换:
⑴接线:
按实验电路图接线(可用IN1---IN5任一个口输入,端口地址
00A1---00A5)
⑵编程:(见程序清单1)
程序结构设计---程序框图设计---代码编辑----编译---链接
⑶调试:
加载---调试
⑷运行:
①.运行程序
②.改变输入信号的电平值,记录转换结果(数据)
2.双极性输入信号的A/D转换:
⑴接线:
按实验电路图接线(可用IN6或IN7口输入,端口地址00A6,00A7) 注意:如果双极性信号连在ADC的单极性输入端(IN0~IN5)很
可能烧毁芯片。
⑵编程:(见程序清单2)
程序结构设计---程序框图设计---代码编辑----编译---链接
⑶调试:
加载---调试
⑷运行:
①.运行程序
②.改变输入信号的电平值,记录转换结果(数据) ⑸测量十组数据,并将实验结果记录于数据记录表中:
3.数据的D/A转换:
⑴接线:
不用接线。
⑵编程:(见程序清单3)
程序结构设计---程序框图设计---代码编辑----编译---链接
⑶调试:
加载---调试
⑷运行:
①.运行程序
②.改变输入的数据,记录转换后OUT1口和OUT2口的输出电平值。
⑸单极性和双极性各对称均匀的测量十六组数据(注:单极性输出口:
OUT1,为0
程序清单:
清单1:
CODE SEGMENT
START: DELAY DELAY CODE 清单2:
CODE START: DELAY DELAY CODE 清单3:
CODE START: ASSUME CS:CODE MOV DX,00A1H MOV AL,01H
OUT DX,AL CALL DELAY
IN AL,DX JMP START
PROC MOV CX,1 LOOP $ RET ENDP ENDS
END START SEGMENT
ASSUME CS:CODE MOV DX,00A6H MOV AL,06H
OUT DX,AL CALL DELAY IN AL,DX JMP START
PROC MOV CX,1 LOOP $ RET ENDP ENDS
END START SEGMENT
ASSUME CS:CODE MOV AL,00H MOV DX,0000H
;用端口00A1作为输出口 ;读取数据 ;延时1S ;用00A6口作为输出口 ;延时1S
OUT DX,AL CALL DELAY ADD AL,11H JMP START
DELAY PROC ;延时1S MOV CX,1 LOOP $ RET DELAY ENDP CODE ENDS
END START
数据、曲线以及误差分析:
单极性ad转换:
数据:
用matlab做其未修正曲线:
局部放大:
修正曲线:
修正曲线局部放大:
单极性ad转换误差分析:
由转换值与实测值对比可知:其两者之间相差不大,误差水平几乎都在0.5%以下,在实验允许的范围内。用matlab做两者的曲线,经对比发现:两曲线几乎重合,再次证明其误差很小。
经修正过的转换值与实测值对比可知:两者之间相差进一步减小,误差也变得更小。用matlab做两者的曲线,对比发现:两曲线重合率更高,证明其误差变得更小。
双极性ad转换:
数据:
用matlab做未修正曲线:
修正曲线:
双极性ad转换误差分析:
由转换值与实测值对比可知:其两者之间有一定差距,转换值要比实测值要小一些,误差水平大部分在5%——15%之间。用matlab做两者的曲线,经对比发现:实测曲线在理论曲线的右下方,两者始终相差一个不大的值。经分析可知:实验时由于输入装置的客观原因,最大输入电压为4.672v,而不是理论的5v;最小输入电压是-4.714v,而不是理论的-5v。这是误差产生的最主要原因。 经修正过的转换至与实测值对比可知:两者之间相差进明显减小,误差水平大部分在5%以下。用matlab做修正后的两者曲线,对比发现:两曲线不再有一条在另一条下方的现象,而是大部分几乎重合,个别点有所差别。这在误差允许的范围内。
da转换:
数据:
单极性(out1端口输出)未修正曲线:
修正曲线:
单极性da转换误差分析:
由转换值与实测值对比可知:其两者之间的差别在低电压时较小,随着电压的升高两者之间的差别逐渐增大,误差水平也逐渐升高。用matlab做两者的曲线,经对比发现:实测曲线在理论曲线的右下方,在电压为零时两者几乎重合,随着电压的升高实测曲线与理论曲线相差越来越大。经分析可知:之所以出现以上情况是因为输入设备所能输入电压的范围与理论不符。理论值应该是0——5v,而实际却是0——4.750v。输入电压越大,实际与理论的差别也越大。 经修正过的转换值与实测值对比可知:两者之间差别减小,误差水平基本上在0.5%以内。用matlab做两者的曲线,对比发现:两曲线不再出现一边重合,一边不重合的现象,而是两条曲线基本重合。不过依然有个别点差别稍微大些,但在误差允许范围内,不影响实验结果。
双极性(out2端口输出)未修正曲线:
修正曲线:
双极性da转换误差分析:
其误差与双极性ad转换有相同的特点。
由转换值与实测值对比可知:其两者之间有一定差距,转换值要比实测值要小一些,误差水平没有双极性ad转换未修正数值那么高,大多数数据误差不超过10%。用matlab做两者的曲线,经对比发现:实测曲线像双极性ad转换未修正曲线那样在理论曲线的右下方,两者始终相差一个不大的值。经分析可知:实验时也是由于输入装置的客观原因,最大输入电压为4.878v,而不是理论的5v;最小输入电压是-5.120v,而不是理论的-5v。这是误差产生的最主要原因。 经修正过的转换至与实测值对比可知:两者之间相差进明显减小,误差水平大部分在0.5%以下。用matlab做修正后的两者曲线,对比发现:两曲线也不再有一条在另一条下方的现象,而是大部分几乎重合,个别点有所差别,且差别更小。
四川大学微机接口模数转换实验报告
实验步骤:
1.单极性输入信号的A/D转换:
⑴接线:
按实验电路图接线(可用IN1---IN5任一个口输入,端口地址
00A1---00A5)
⑵编程:(见程序清单1)
程序结构设计---程序框图设计---代码编辑----编译---链接
⑶调试:
加载---调试
⑷运行:
①.运行程序
②.改变输入信号的电平值,记录转换结果(数据)
2.双极性输入信号的A/D转换:
⑴接线:
按实验电路图接线(可用IN6或IN7口输入,端口地址00A6,00A7) 注意:如果双极性信号连在ADC的单极性输入端(IN0~IN5)很
可能烧毁芯片。
⑵编程:(见程序清单2)
程序结构设计---程序框图设计---代码编辑----编译---链接
⑶调试:
加载---调试
⑷运行:
①.运行程序
②.改变输入信号的电平值,记录转换结果(数据) ⑸测量十组数据,并将实验结果记录于数据记录表中:
3.数据的D/A转换:
⑴接线:
不用接线。
⑵编程:(见程序清单3)
程序结构设计---程序框图设计---代码编辑----编译---链接
⑶调试:
加载---调试
⑷运行:
①.运行程序
②.改变输入的数据,记录转换后OUT1口和OUT2口的输出电平值。
⑸单极性和双极性各对称均匀的测量十六组数据(注:单极性输出口:
OUT1,为0
程序清单:
清单1:
CODE SEGMENT
START: DELAY DELAY CODE 清单2:
CODE START: DELAY DELAY CODE 清单3:
CODE START: ASSUME CS:CODE MOV DX,00A1H MOV AL,01H
OUT DX,AL CALL DELAY
IN AL,DX JMP START
PROC MOV CX,1 LOOP $ RET ENDP ENDS
END START SEGMENT
ASSUME CS:CODE MOV DX,00A6H MOV AL,06H
OUT DX,AL CALL DELAY IN AL,DX JMP START
PROC MOV CX,1 LOOP $ RET ENDP ENDS
END START SEGMENT
ASSUME CS:CODE MOV AL,00H MOV DX,0000H
;用端口00A1作为输出口 ;读取数据 ;延时1S ;用00A6口作为输出口 ;延时1S
OUT DX,AL CALL DELAY ADD AL,11H JMP START
DELAY PROC ;延时1S MOV CX,1 LOOP $ RET DELAY ENDP CODE ENDS
END START
数据、曲线以及误差分析:
单极性ad转换:
数据:
用matlab做其未修正曲线:
局部放大:
修正曲线:
修正曲线局部放大:
单极性ad转换误差分析:
由转换值与实测值对比可知:其两者之间相差不大,误差水平几乎都在0.5%以下,在实验允许的范围内。用matlab做两者的曲线,经对比发现:两曲线几乎重合,再次证明其误差很小。
经修正过的转换值与实测值对比可知:两者之间相差进一步减小,误差也变得更小。用matlab做两者的曲线,对比发现:两曲线重合率更高,证明其误差变得更小。
双极性ad转换:
数据:
用matlab做未修正曲线:
修正曲线:
双极性ad转换误差分析:
由转换值与实测值对比可知:其两者之间有一定差距,转换值要比实测值要小一些,误差水平大部分在5%——15%之间。用matlab做两者的曲线,经对比发现:实测曲线在理论曲线的右下方,两者始终相差一个不大的值。经分析可知:实验时由于输入装置的客观原因,最大输入电压为4.672v,而不是理论的5v;最小输入电压是-4.714v,而不是理论的-5v。这是误差产生的最主要原因。 经修正过的转换至与实测值对比可知:两者之间相差进明显减小,误差水平大部分在5%以下。用matlab做修正后的两者曲线,对比发现:两曲线不再有一条在另一条下方的现象,而是大部分几乎重合,个别点有所差别。这在误差允许的范围内。
da转换:
数据:
单极性(out1端口输出)未修正曲线:
修正曲线:
单极性da转换误差分析:
由转换值与实测值对比可知:其两者之间的差别在低电压时较小,随着电压的升高两者之间的差别逐渐增大,误差水平也逐渐升高。用matlab做两者的曲线,经对比发现:实测曲线在理论曲线的右下方,在电压为零时两者几乎重合,随着电压的升高实测曲线与理论曲线相差越来越大。经分析可知:之所以出现以上情况是因为输入设备所能输入电压的范围与理论不符。理论值应该是0——5v,而实际却是0——4.750v。输入电压越大,实际与理论的差别也越大。 经修正过的转换值与实测值对比可知:两者之间差别减小,误差水平基本上在0.5%以内。用matlab做两者的曲线,对比发现:两曲线不再出现一边重合,一边不重合的现象,而是两条曲线基本重合。不过依然有个别点差别稍微大些,但在误差允许范围内,不影响实验结果。
双极性(out2端口输出)未修正曲线:
修正曲线:
双极性da转换误差分析:
其误差与双极性ad转换有相同的特点。
由转换值与实测值对比可知:其两者之间有一定差距,转换值要比实测值要小一些,误差水平没有双极性ad转换未修正数值那么高,大多数数据误差不超过10%。用matlab做两者的曲线,经对比发现:实测曲线像双极性ad转换未修正曲线那样在理论曲线的右下方,两者始终相差一个不大的值。经分析可知:实验时也是由于输入装置的客观原因,最大输入电压为4.878v,而不是理论的5v;最小输入电压是-5.120v,而不是理论的-5v。这是误差产生的最主要原因。 经修正过的转换至与实测值对比可知:两者之间相差进明显减小,误差水平大部分在0.5%以下。用matlab做修正后的两者曲线,对比发现:两曲线也不再有一条在另一条下方的现象,而是大部分几乎重合,个别点有所差别,且差别更小。