单片机实验——利用AD完成电压测量及显示(共6页).doc

上传人:飞****2 文档编号:13835674 上传时间:2022-05-01 格式:DOC 页数:6 大小:25KB
返回 下载 相关 举报
单片机实验——利用AD完成电压测量及显示(共6页).doc_第1页
第1页 / 共6页
单片机实验——利用AD完成电压测量及显示(共6页).doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《单片机实验——利用AD完成电压测量及显示(共6页).doc》由会员分享,可在线阅读,更多相关《单片机实验——利用AD完成电压测量及显示(共6页).doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上单片机实验利用AD完成电压测量及显示1.实验目的(1)掌握A/D转换器的基本原理和使用方法。(2)掌握二进制数和BCD码之间的数值转换方法。2.预习要点(1)A/D转换器的基本原理和使用方法(2)二进制数和BCD码之间的数值转换方法3.实验设备计算机、单片机实验箱,万用表。4.实验内容基本要求:利用电位器,在05V范围调节A/D转换器0809的输入端ADIN3的电压,在显示电路上显示0050数值。扩展要求:相同输入条件下,在显示电路上显示-25+24的数值实验6 ORG 0000H SJMP MAIN;* ;主程序 ORG 0030H MAIN:MOV SP,#70H

2、 ;显示缓存区 MOV 32H,#11 ;为了兼容之前的显示程序,所以就通过改变 MOV 33H,#11 ;字型的方式让第3-8个数码管不亮,只显示前两位 MOV 34H,#11 MOV 35H,#11 MOV 36H,#11 MOV 37H,#11 ;初始化8155 MOV DPTR,#0100H MOV A,#03H MOVX DPTR,A LOOP:MOV DPTR,#6000H ;AD的地址,应接CS3 MOV A,#00H ;选择通道0 IN0 MOVX DPTR,A ;启动AD,开始转换 LCALL DELAY ;延时,等待转换完成,一般转换时间为100us左右 LCALL ADC

3、ON ;读取数据并处理 LCALL DISPLAY ;数码管显示 SJMP LOOP;* ;读取数据并处理子程序ADCON: MOVX A,DPTR ;读取AD的输出X MOV B,#51 ;把00H-FFH之间的数据转换为0-50的数据 DIV AB ;这个我会给大家讲讲,很简单的,这里就不注释了 MOV 30H,A MOV A,B MOV B,#5 DIV AB MOV 31H,A RET;* ;显示子程序DISPLAY: MOV R0,#30H MOV R3,#0FEH LD0:MOV DPTR,#0102H ;送字位 MOV A,R3 MOVX DPTR,A MOV DPTR,#DTA

4、B ;查表,送字形 MOV A,R0 MOVC A,A+DPTR MOV DPTR,#0101H MOVX DPTR,A LCALL DELAY INC R0 MOV A,R3 JNB ACC.7,LD1 RL A MOV R3,A LJMP LD0 LD1:RET;* ;字形表DTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;数字0-9 DB 40H,00H ;40H为 - 00H为不亮;* ;延时1msDELAY: MOV R7,#02H DEL1:MOV R6,#0FFH DEL2:DJNZ R6,DEL2 DJNZ R7,DEL1 RE

5、T;* ;显示子程序(另一种) ;这里给大家写本实验的另一种显示方法: ;这种方法就是30H和31H分别写显示程序,显示完31H之后就 ;退出程序,很easy的啦,大家还可以多多试试自己编写别的程序 ;注:本子程序在主程序中并没有调用 DISPLAY1: MOV DPTR,#0102H MOV A,#0BFH MOVX DPTR,A MOV DPTR,#DTAB MOV A,30H MOVC A,A+DPTR MOV DPTR,#0101H MOVX DPTR,A LCALL DELAY MOV DPTR,#0102H MOV A,#7FH MOVX DPTR,A MOV DPTR,#DTAB

6、 MOV A,31H MOVC A,A+DPTR MOV DPTR,#0101H MOVX DPTR,A LCALL DELAY RET;*;实验6扩展 ORG 0000H SJMP MAIN;* ;主程序 ORG 0030H MAIN:MOV SP,#70H ;显示缓存区 MOV 32H,#11 ;为了兼容之前的显示程序,所以就通过改变 MOV 33H,#11 ;字型的方式让第3-8个数码管不亮,只显示前两位 MOV 34H,#11 MOV 35H,#11 MOV 36H,#11 MOV 37H,#11 ;初始化8155 MOV DPTR,#0100H MOV A,#03H MOVX DPT

7、R,A LOOP:MOV DPTR,#6000H ;AD的地址,应接CS3 MOV A,#00H ;选择通道0 IN0 MOVX DPTR,A ;启动AD,开始转换 LCALL DELAY ;延时,等待转换完成,一般转换时间为100us左右 LCALL ADCON ;读取数据并处理 LCALL DISPLAY ;数码管显示 SJMP LOOP;* ;AD数据读取并处理子程序ADCON:MOVX A,DPTR ;读取AD的输出X CJNE A,#128,NEXT ;产生Cy NEXT:JC NEXT1 ;判断要转化为0-25还是-25-0,然后决定要不要加负号 CLR C ;因为后面用到减法,所

8、以先要清零Cy SUBB A,#128 MOV 30H,#11 ;为0-25之间,符号位什么都不显示 SJMP NEXT2NEXT1:CLR C ;因为后面用到减法,所以先要清零Cy MOV 62H,A MOV A,#128 SUBB A,62H MOV 30H,#10 ;为-25-0之间,符号位显示负号 NEXT2:MOV B,#51 ;下面是把0-128的数转换为0-25的数,十位存到31H里,各位存到32H里 DIV AB ;这个和实验6一样的 MOV 31H,A MOV A,B MOV B,#5 DIV AB MOV 32H,A RET;* ;显示子程序DISPLAY: MOV R0,

9、#30H MOV R3,#0FEH LD0:MOV DPTR,#0102H ;送字位 MOV A,R3 MOVX DPTR,A MOV DPTR,#DTAB ;查表,送字形 MOV A,R0 MOVC A,A+DPTR MOV DPTR,#0101H MOVX DPTR,A LCALL DELAY INC R0 MOV A,R3 JNB ACC.7,LD1 RL A MOV R3,A LJMP LD0 LD1:RET;* ;字形表DTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;数字0-9 DB 40H,00H ;40H为“ 00H为不亮;* ;延时1msDELAY: MOV R7,#02H DEL1:MOV R6,#0FFH DEL2:DJNZ R6,DEL2 DJNZ R7,DEL1 RET;*专心-专注-专业

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

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

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁