简易电压表设计

上传人:shaoy****1971 文档编号:108147659 上传时间:2019-10-22 格式:DOC 页数:13 大小:77.50KB
返回 下载 相关 举报
简易电压表设计_第1页
第1页 / 共13页
简易电压表设计_第2页
第2页 / 共13页
简易电压表设计_第3页
第3页 / 共13页
简易电压表设计_第4页
第4页 / 共13页
简易电压表设计_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《简易电压表设计》由会员分享,可在线阅读,更多相关《简易电压表设计(13页珍藏版)》请在金锄头文库上搜索。

1、课程设计报告课 程 名 称 微机原理及应用B 院(系、部、中心) 自动化学院 专 业 班 级 姓 名 学 号 起 止 日 期 指 导 教 师 目录一、设计题目2二、设计任务(要求)2三、总体方案2四、原理框图3五、系统模块详细设计与调试4六、设计总结10七、参考文献10八、附件材料10简易电压表设计一、设计任务1课程设计应达到的目的运用课程等知识,根据题目要求进行软硬件系统的设计和调试,从而加深对本课程知识点的理解,使学生综合应用知识能力、设计能力、调试能力及报告撰写能力等显著提高。本课题使学生掌握模数转换的基本原理和器件的选用,掌握LED的显示方法达到的目的 2课程设计要求 简易电压表除完成

2、基本的电压测量功能外,还应具备量程选择、显示等辅助功能。 设计绘制相应的硬件电路原理图并完成接线 编制相应控制程序实现电压测量与显示 控制程序设计规范,应有适当的注释,表达清楚 电压表示数显示要求采用8段LED数码管实现 电压表显示数值至少由三个数据位构成。其中,整数位一位,小数位两位。 电压表量程分为05V和 010V两种 简易电压表的量程选择通过拨码开关实现,分两个档位05V档与015V档。二、总体方案总体框图ADC0809电压模拟量将二进制数转化为十进制数 8255拨码开关LED数码管将输入的电压模拟量经模数转换器0809转换成二进制数,将得到的8位二进制数(100H FFH)转换成十进

3、制数0500的BCD码用于显示电压数值0.00V 5.00V。根 据每位数的BCD码算出相应的LED数码管段码,并通过并行接口芯片8255的C口输出。 LED数码管的位码由并行接口芯片8255的A口输出,从而实现电压值的显示。用拨码开关控制电压表量程的选择(当拨码开关状态为00000001时选择量程05V,当拨码开关状态为00000010时选择量程010V)并通过并行接口芯片8255的B口输入。三、原理框图开始初始化8255启动A/D转换器延时等待从A/D读入数据选择量程扩展数据并转换成BCD码取出个位数字并转化为段码输出至8255并显示取小数部分第一,二位并转化为BCD由8255输出并显示四

4、系统模块详细设计与调试1程序如下DATA SEGMENTOUTBUFF DB 3 DUP(?)CS0809 EQU 9000HLEDTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHCOUNT DB 10DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AL,82H ; 初始化8255 MOV DX,8003H OUT DX,AL ABC: MOV AL,0 ;启动A/D MOV DX,CS0809 OUT DX,AL MOV CX,40H LOOP

5、 $ IN AL,DX ;读入数据 PUSH AL ;选择量程 MOV DX,8001H IN AL,DX MOV BL,AL MOV BH,00H POP AL MUL BL MUL BL,5 ;转换电压值并保存 MOV BL,255 DIV BL LEA SI,OUTBUFF MOV SI,AL MOV AL,AH MOV BH,OAH MOV AH,0 MUL BH DIV BL INC SI MOV SI,AL MOV AL,AH MUL BH DIV BL INC SI MOV SI,ALAGAIN: MOV CH,06H ;初始化位选码 LEA SI,OUTBUFF MOV AL,

6、SI ;取电压值的个位并显示 MOV AH,0 LEA DI,LEDTAB ADD DI,AX ;转化为段码 MOV AL,DI ADD AL,80H MOV DX,8002H ;位码清零 MOV BL,AL MOV AL,0 OUT DX,AL MOV AL,BL ;输出段码 MOV DX,8000H OUT DX,AL MOV DX,8002H ;输出位码 MOV AL,CH OUT DX,AL CALL DELAY INC SI ROR CH,1LEDDISP: MOV AL,SI ;取电压值的小数部分并显示 MOV AH,0 LEA DI,LEDTAB ADD DI,AX MOV AL

7、,DI MOV AL,CH MOV DX,8002H ;位码清零MOV BL,AL MOV AL,0 OUT DX,AL MOV AL,BL MOV DX,8000H ;输出段码OUT DX,AL MOV DX,8002H ;输出位码 OUT DX,AL CALL DELAY CMP CH,80H JNZ LEDDISP DEC COUNT JNZ AGAIN MOV COUNT,10 JMP ABCDELAY PROC NEAR ;延时子程序 PUSH BX PUSH CX MOV BX,10DEL1: MOV CX,0DEL2: LOOP DEL2 DEC BX JNZ DEL1 POP

8、CX POP BX RETDELAY ENDPCODE ENDSEND START2上机调试利用WAVE6000系统调试程序(1) 程序输入 在WAVE6000系统环境下将上述程序输入计算机(2) 连接电路 打开试验箱,在未通电源的情况下,按照设计的硬件电路原理图连接线路,并检查是否有误。(3) 设置仿真器 设置仿真器为8086伟福系统(4) 对程序进行编译 打开试验箱的电源,点击编译按钮进行程序的编译 (5) 在编译正确的情况下进行调试运行程序 在调试过程中遇到的问题a.LED数码管显示的数字有重影在运行程序时,发现数码管显示数字时有重影,由此可以断定在显示程序的那一部分有问题,即程序段:M

9、OV DX,8000H ;在输出段码前未加位码清零信号OUT DX,AL MOV DX,8002H MOV AL,CH OUT DX,AL经过对此段内容的检查,测试和老师的指导后发现,在此段程序中,在传递某位段码信息时,选择上一位的位码信号还存在,所以输入的段码直接在上一位显示,当此位的位送信号输入后,才会在正确的位上显示数字,导致有重影出现。要避免重影现象,可在每次输入段码信号前将位送信号清零,之后再输入位码信号,则修改后的此段程序为: MOV DX,8002H MOV BL,AL MOV AL,0 OUT DX,AL MOV AL,BL MOV DX,8000H OUT DX,AL MOV

10、 DX,8002H OUT DX,ALb.数字显示有误在输入修改后的程序后,发现没有重影现象,且显示也很清晰,说明显示部分没有错误,但是显示的十位数字不为十进数字且小数点时有时无,由此可知可能出现的问题是在数据扩展和转化为BCD码的过程或是求个位数字段码的过程对上部程序的调试发现程序MOV AL,SI MOV AH,0 ADD AL,80H ;错误,应在转换为段码后加80H LEA DI,LEDTAB ADD DI,AX MOV AL,DI 有误。要显示出小数点,应使输出段码最高位为1。由设计题目要求知,段码最高位均为0,所以只要在相应段码上加80H即可,但是上述程序是先加80H,在将数转化为段,导致输出错误的信息,应先将BCD转化为段码后再加8H,因此可将程序修改为:MOV AL,SI MOV AH,0 LEA DI,LEDTAB ADD DI,AX MOV AL,DI ADD AL,80H将修改后的程序重修编译,运行发现,数码管显示数字正确,能够随着输入的模拟信号量的变化显示相应的值,其显示范围为0.00V5.OOV ,符合程序设计要求。五设计总结六主要参考文献微机原理实验与课程设计指

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

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号