首页 基于MCS_51的A/D转换实验

基于MCS_51的A/D转换实验

举报
开通vip

基于MCS_51的A/D转换实验 (预习报告) 一、实验目的 1. 了解A/D转换的工作原理。 2. 掌握基于MCS-51的A/D转换器接口的设计方法。 二、实验内容 1. 设计基于MCS-51系统的A/D转换器ADC0804的接口。利用ADC0804对输入的电压信号进行 转换。改变输入电压,将A/D转换器的输出数据在LCD上显示。试分析输入信号(0~5V)与转 换结果之间的误差及线性程度。 2. 正确选择三角波信号与采样频率,利用ADC0804对输入的三角波信号进行转换。将AD转 换器的...

基于MCS_51的A/D转换实验
(预习 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 ) 一、实验目的 1. 了解A/D转换的工作原理。 2. 掌握基于MCS-51的A/D转换器接口的设计 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 。 二、实验 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 1. 设计基于MCS-51系统的A/D转换器ADC0804的接口。利用ADC0804对输入的电压信号进行 转换。改变输入电压,将A/D转换器的输出数据在LCD上显示。试 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 输入信号(0~5V)与转 换结果之间的误差及线性程度。 2. 正确选择三角波信号与采样频率,利用ADC0804对输入的三角波信号进行转换。将AD转 换器的输出数据存放在外部存储器中,试分析输入信号与转换结果之间的误差及线性程度。 三、实验器材 本实验使用 ADC0804 作为模数转换器件。 ADC0804 的引脚结构: 引脚说明: 1. CS):Chip Select,与 RD、WR 接脚的输入电压高低一起判断读取或写入与否,当其为低 电平时有效。 2. RD :当 CS 、RD 皆为低电平 时,ADC0804 会将转换后的数字讯号经由 DB7 ~ DB0 输 出至其它处理单元。 3. WR :启动转换的控制讯号。当 CS 、WR 皆为低电平 时 ADC0804 做清除的动作,系 统重置。当 WR 由 0→1 且 CS =0 时,ADC0804 会开始转换信号,此时 INTR 设定为高 电平。 4. CLK IN、CLKR:频率输入/输出。频率输入可连接处理单元的讯号频率范围为 100 kHz 至 800 kHz。而频率输出频率最大值无法大于 640KHz,一般可选用外部或内部来提供频率。 若在 CLK R 及 CLK IN 加上电阻及电容,则可产生 ADC 工作所需的时序,其频率约为: 5.INTR:中断请求。转换期间为高电平,等到转换完毕时 INTR 会变为低电平告知其它的 处理单元已转换完成,可读取数字数据。 6. VIN(+)、VIN(-):差动模拟讯号的输入端。输入电压 VIN=VIN(+) -VIN(-),通常使用 单端输入,而将 VIN(-)接地。 四、硬件原理图 其中,ADC0804 读写地址为 6000H 在 4000H 地址处读取转换完成中断位 LCD 地址为 2000H CPLD 接口电路: 五、程序清单 1 ORG 0000H COM EQU 20H DAT EQU 21H CW_ADD EQU 0000H CR_ADD EQU 0002H DW_ADD EQU 0001H DR_ADD EQU 0003H ;LCD 初始化 MOV A,#30H ;工作方式设置指令代码 MOV DPTR,#CW_ADD ;指令口地址设置 MOV R2,#03H ;循环量=3 MOVX @DPTR,A ;写指令代码 INIT1: LCALL DELAY DJNZ R2,INIT1 MOV A,#38H ;设置 8 位总线工作方式 MOVX @DPTR,A MOV COM,#01H ;清屏 LCALL PR1 MOV COM,#06H ;设置输入方式 LCALL PR1 MOV COM,#0CH ;设置显示方式 LCALL PR1 TRN: MOV DPTR,#4000H MOVX @DPTR,A ;启动 ADC0804 转换 MOV DPTR,#2000H L: MOVX A,@DPTR JB ACC.0,L ;查询转换是否结束 MOV DPTR,#4000H MOVX A,@DPTR ;读取转换结果 LCALL DISP ;显示转换结果 SJMP TRN ;显示子程序 DISP: MOV COM,#80H ;设置 DDRAM 地址为 00H(第一行第一位) LCALL PR1 MOV B,#100 DIV AB MOV R3,A ;百位暂存 R3 MOV A,#10 XCH A,B DIV AB MOV R4,A ;十位暂存 R4 MOV A,B MOV R5,A ;个位暂存 R5 MOV A,R3 ANL A,#0FH ADD A,#30H ;百位化为 ASCII 码 MOV DAT,A ;显示百位 LCALL PR2 MOV A,R4 ANL A,#0FH ADD A,#30H ;十位化为 ASCII 码 MOV DAT,A ;显示十位 LCALL PR2 MOV A,R5 ANL A,#0FH ADD A,#30H ;个位化为 ASCII 码 MOV DAT,A ;显示个位 LCALL PR2 RET ;写指令代码 PR1: PUSH DPH PUSH DPL PUSH ACC MOV DPTR,#CR_ADD PR11: MOVX A,@DPTR JB ACC.7,PR11 MOV A,COM MOV DPTR,#CW_ADD MOVX @DPTR,A POP ACC POP DPL POP DPH RET ;写数据 PR2: PUSH DPH PUSH DPL PUSH ACC MOV DPTR,#CR_ADD PR21: MOVX A,@DPTR JB ACC.7,PR21 MOV A,DAT MOV DPTR,#DW_ADD MOVX @DPTR,A POP ACC POP DPL POP DPH RET ;延时 5ms DELAY: MOV R6,#28H DEL1: MOV R7,#7BH DEL2:DJNZ R7,DEL2 DJNZ R6,DEL1 RET END 2、 ORG 0000H MAIN: MOV DPTR,#4000H ;启动 ADC0804 转换 MOVX @DPTR,A MOV DPTR,#2000H L1: MOVX A,@DPTR JB ACC.0,L1 ;查询转换是否结束 MOV DPTR,#4000H MOVX A,@DPTR ;读取转换结果 MOV DPTR,#6000H ;转换结果存在外部存储器 MOVX @DPTR,A INC DPTR PUSH DPH PUSH DPL MOV R0,#7FH ;转换 80H个数据 L: MOV DPTR,#4000H ;启动 ADC0804转换 MOVX @DPTR,A MOV DPTR,#2000H L2: MOVX A,@DPTR JB ACC.0,L2 ;查询转换是否结束 MOV DPTR,#4000H ;读取转换结果 MOVX A,@DPTR POP DPL POP DPH MOVX @DPTR,A ;转换结果存在外部存储器 INC DPTR PUSH DPH PUSH DPL DJNZ R0,L HE: SJMP HE END (实验报告) 一、硬件原理 实际试验时没有使用 LCD显示,于是不需要额外的译码电路,直接用线选译码即可。 连线方法: 将 ADC0804的 CS连到 A15,则地址 7FFFH选中 ADC0804 将两者的 WR 和 RD分别连接并将 INTR 接到 P1.2口,就能通过读 P1 口来查询中断信号。 二、程序清单 1、 ORG 0000H MOV A,#00H MOV DPTR,#7FFFH ;启动转换 MOVX @DPTR,A MOVX A,@DPTR LOOP:JB P1.2,LOOP ;查询转换是否结束 MOVX A,@DPTR ;读入数据 SJMP $ END 2、 ORG 0000H MAIN: MOV A,#00H MOV R0,#00H ;记循环次数 MOV R1,#40H ;转换后的数据存在 40H开始的单元中 MOV DPTR,#7FFFH START: LCALL ADC LCALL DELAY ;延时,控制采样频率 MOV @R1,A ;存转换数据 INC R1 INC R0 CJNE R0,#80H,START ;采 80H个数据 HE: SJMP $ DELAY:MOV R6,#080H DL1: DJNZ R6,DL1 RET ADC: MOVX @DPTR,A ;启动转换 MOVX A,@DPTR LOOP: JB P1.2,LOOP ;查询转换是否结束 MOVX A,@DPTR ;读入数据 RET END 在做第一个实验的时候,一开始怎么也读不出 ADC 的数据,程序一直循环再 LOOP 环节, 读不到 INTR 一度怀疑是板子又坏了,但程序放到别人的机器上跑也是跑不出来,但是这个硬件连接从理 论上来说,应该可以的。于是我又一次运行程序,然后在程序 LOOP 的时候,用示波器探 头测量了 WR,结果发现 WR 竟然始终是低电平。 正常的 WR时序如下: 如果 WR 一直处于低电平则 ADC 不会开始转换数据,因此,要让 WR 回到高电平,一个可 行的方法就是在向 ADC0804 发出些信号后再增加一条读指令,则写信号就回到高电平了, 于是 ADC 能够顺利运行了。 三、时序图 1、 开始 写 ADC 读 ADC 读 P1.2 中断 查询位 P1.2=1? ADC 转换值 存入 ACC Y N Y 2、 示波器测量值 ACC 读数(HEX) Value 误差% 0 00 0 0 0.415 15 0.410 1.2 0.815 29 0.801 1.7 1.22 3E 1.211 0.7 1.62 53 1.621 0.6 2.01 68 2.031 1.0 2.40 7C 2,422 0.9 2.77 92 2.851 2.9 3.14 0A6 3.242 3.2 3.51 0BB 3.650 3.9 3.88 0D0 4.062 4.7 4.25 0E5 4.473 5.2 4.61 0F9 4.860 5.4 4.98 0FF 4.980 0 开始 R0->循环次数 R1->存储位置 写 ADC 读 ADC 读 P1.2 中断 查询位 P1.2=1? 延时 存入 R1 指 示 位 置 读 ADC R0 加一 R0=80H? 结束 Y N N Y 拟合方程: f(x) = p1*x + p2 拟合系数: p1 = 1.042 (1.016, 1.067) p2 = -0.03537 (-0.1113, 0.04057) 均方根误差 RMSE: 0.06748 三角波采样数据(freq = 32kHz, ample = 4.92V) 读数(HEX) 值 读数(HEX) 值 03 0.059 E0 4.375 1B 0.827 C8 3.906 2F 0.918 B0 3.437 4F 1.543 94 2.89 5F 1.855 80 2.5 7F 2.48 60 1.875 97 2.95 48 1.406 AF 3.418 30 0.937 BF 3.73 18 0.469 DF 4.355 03 0.059 F8 4.844
本文档为【基于MCS_51的A/D转换实验】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_874889
暂无简介~
格式:pdf
大小:500KB
软件:PDF阅读器
页数:0
分类:工学
上传时间:2011-03-01
浏览量:19