图6电路总图及数字电压表与标准电压表的比较 第四章 程序设计 4.1程序流程图
开始
初始化
启动A/D转换
读取采样值
数据处理 送LED显示 图7.程序流程图 4.2程序代码
ADADDRESS EQU 0A000H; AD0809片选 OUTBIT EQU 08002H; 位控制口 OUTSEG EQU 08004H; 段控制口 LEDBUF EQU 60H; 显示缓冲 DELAYCX EQU 75H
ADRESULT EQU 76H; AD转换结果 ORG 0000H LJMP START
ADSTART:
MOV DPTR,#ADADDRESS
MOV A,#0H
MOVX @DPTR,A; 启动A/D MOV A,#40H
DJNZ ACC,$; 延时>100us
MOVX A,@DPTR; 读入结果 MOV ADRESULT,A RET
LEDMAP: ; 八段管显示码
DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
DELAY: ; 延时子程序 MOV R7,#0 DELAYLOOP:
DJNZ R7,DELAYLOOP DJNZ ACC,DELAYLOOP RET SEARCHLEDMAP:
ANL A, #0FH; 高4位清零 MOV DPTR, #LEDMAP MOVC A, @A+DPTR RET DISPLAYLED:
MOV R0, #LEDBUF MOV R1, #4
MOV R2, #00001000B; 从左边开始显示
LOOP:
MOV DPTR, #OUTBIT MOV A, #0
MOVX @DPTR, A; 关所有八段管 MOV A, @R0
MOV DPTR, #OUTSEG MOVX @DPTR,A MOV DPTR, #OUTBIT MOV A, R2
MOVX @DPTR, A; 显示一位八段管 MOV A, #01 CALL DELAY
MOV A, R2; 显示下一位 RR A
MOV R2, A INC R0
DJNZ R1, LOOP
MOV DPTR, #OUTBIT MOV A, #0
MOVX @DPTR, A; 关所有八段管 RET
START:
NOP
CALL ADSTART MOV A, ADRESULT CLR P1.0 CLR C MOV R4,A MOV B,#51 SUBB A,B JC ZHIWEI SETB P1.0
AJMP CHENGXU ZHIWEI: CLR P1.0 CHENGXU: MOV A,R4
MOV B,#05H MUL AB PUSH A MOV A,B MOV B,#0AH DIV AB
CALL SEARCHLEDMAP MOV LEDBUF+0,A MOV A,B
CALL SEARCHLEDMAP ORL A,#80H ;添加小数点 MOV LEDBUF+1,A POP A
MOV B,#0AH MUL AB PUSH A MOV A,B
CALL SEARCHLEDMAP MOV LEDBUF+2,A POP A
MOV B,#0AH MUL AB MOV A,B
CALL SEARCHLEDMAP MOV LEDBUF+3,A
DISPLAYAGAIN: CALL DISPLAYLED; DJNZ DELAYCX,DISPLAYAGAIN
NOP
SJMP START END
第五章 实验箱连线和实验结果 5.1 实验箱连线图 连线 1 2 3 4 连接孔1 CS0 KEY/LED CS2 电位器输出 P1.2 连接孔2 CS LED AD_CS IN0 输入 L1 注释 位选段选 AD转换器地址 模拟电压 超限报警
5.2实验结果
软件编译并全速运行后,则LED数码管上开始显示数字,旋转电位器,LED上显示的数字在0V~4.98V发生改变。LED的显示结果和直接用数字电压表测试模拟量输入所得结果几乎一致,误差完全在合理的范围之内。
第六章 收获与总结 经过一周的设计,终于完成了设计,LED显示最大值只能是4.98V,离标准最大值5.0V已经不远,达到预期目的,设计成功。
回想本次课程设计,是在老师的指导和同学的帮助下共同完成的。在完成过程中遇到了许多问题,但在不断努力下,发现并解决了问题,使实验取得了成功。通过这次试验设计,在利用试验箱上多个功能模块共同实现采集模拟电压并把数据转换成数字在LED数码管上显示。熟悉了LAB2000P试验箱上各功能模块的结合应用。本设计用到了A/D转换程序、LED数码管显示程序、调用延时程序等等。应用不同功能的汇编程序的相结合,熟悉了主程序和各个子程序的功能调用。实现了不同功能程序的结合应用。在软件程序的编写过程中遇到许多问题,使得程序编译出现很多错误,后来发现并改正了程序。通过这次实验设计我们发现在做设计的时候有时候同学的帮助起着很大的作用。并且由于对编程不熟悉,所以在
编程上有些费劲。由于水平有限,我们认为系统还有需要改进的地方。所以我们要更加努力的学习编程,提高自己的编程水平,深入的学习和思考问题。
参考文献 1. 张淑清.单片微型计算机接口技术及其应用 2. 张淑清.单片机原理及应用
3 郑晖晖.单片机应用技术汇编语言 4 凌志浩.智能仪表原理与设计技术