微机接口技术实验讲义(4)

2019-03-02 23:12

DATA1 EQU 0580H ;存放的8个数码管要显示的字型代码的内存的起始地址 DATA2 EQU 0500H ;存放的0-0FH七段数码管的字型代码的内存的起始地址

START:

JMP ADCONTORL

ADCONTORL:

CALL FORMAT;把显示0, 1, 2,…, 9, A,…, F对应的七段数码管的字型

;;代码存到起始地址为500H的内存中

MOV AX,0H MOV DS,AX

;下面的代码把显示器要显示的字符“0809--”代码存到起始地址为500H的内存中

MOV BX,DATA1; MOV DS:[BX],AL ADD BX,01H MOV DS:[BX],AL ADD BX,01H

MOV AL,40H ; 40H 为“-”的代码 MOV DS:[BX],AL ADD BX,01H MOV AL,40H MOV DS:[BX],AL ADD BX,01H

MOV AL,6fH ; 6fH 为“9”的代码 MOV DS:[BX],AL ADD BX,01H

MOV AL,3fH ; 3fH 为“0”的代码 MOV DS:[BX],AL ADD BX,01H

MOV AL,7fH ; 7fH 为“8”的代码 MOV DS:[BX],AL

MOV AL,3fH ; 3fH 为“0”的代码

ADD BX,01H MOV DS:[BX],AL

ADCON:

MOV AX,00

MOV DX,ADPORT ;ADPORT为0809端口地址00E0H OUT DX,AL ;启动本次A/D转换

MOV CX,0500H ;CX为循环初值,值越大,延时时间越长

DELAY:

LOOP DELAY ;CX减1循环直至CX=0,作用是延时

MOV DX,ADPORT

IN AL,DX ; 输入本次A/D转换的数字量 MOV CL, AL

CALL CONVERS ; 把数字量转换成数码显示的代码,存放到

;起始地址为DATA1内存中

CALL LEDDISP ; 用数码显示器显示DATA1内存中要显示的字符 JMP ADCON ; 启动下一次A/D转换,无限循环

CONVERS: ;把数字量转换成数码显示的代码,存放到起始地址为DATA1内存中的子程序

;AL和CL中放数字量 MOV BH,0H

AND AL,0FH ; 取数字量的低4位 MOV BL,AL

MOV AL,CS:[BX+DATA2]; 以数字量的低4位查放在DATA2中的代码表 MOV BX,DATA1

MOV DS:[BX],AL; 低4位数字的代码放到内存[DATA1]中 INC BX PUSH BX MOV AL,CL MOV CL,04H

SHR AL,CL ;把数字量的高4位移到低4位,低4位移出 MOV BL,AL

MOV BH,0H

MOV AL,CS:[BX+DATA2]; 以数字量的高4位查放在DATA2中的代码表 POP BX

MOV DS:[BX],AL ;高4位数字的代码放到内存[DATA1+1]中 RET

;显示放在DATA起始的内存中的8个字符的子程序

LEDDISP:

MOV AL, 90H LED1:

LED2:

MOV DX, CONTPORT ;显示器接口芯片的控制口端口地址CONTPORT OUT DX, AL

MOV BYTE PTR DS:[0600H],00;DS:[0600H]保存已显示的字符数,初值为0 CMP BYTE PTR DS:[0600H],07H ;判断是否已显示8个字符 JA LED2 ;已显示8个字符,则转 LED2退出显示子程序 MOV BL, DS:[0600H] ;把下一个要显示的字符的序号送到BL中 MOV BH, 0H

MOV AL,CS:[BX+DATA1];取下一个要显示的字符的八段编码到AL MOV DX,DATAPORT ;DATAPORT为显示器的数据端口00B8H OUT DX,AL ;送AL中的八段编码到显示器的数据端口中 ADD BYTE PTR DS:[0600H],01H ;要显示的字符的序号加1 JNZ LED1 ;和不为0(256)则循环 RET ;子程序返回

FORMAT: ;这段子程序的作用是把显示0, 1, 2,…, 9, A,…, F对应的七段数码管的字型 ;;代码3F, 06, 5B, 4F,66,6D,7D,07,7F,6F,77,7C,39,5E,79,71存到起始地址为500H的内存中

MOV BX,0

MOV WORD PTR DS:[BX+0500H],063FH ADD BX,2

MOV WORD PTR DS:[BX+0500H],4F5BH ADD BX,2

MOV WORD PTR DS:[BX+0500H],6D66H ADD BX,2

MOV WORD PTR DS:[BX+0500H],077DH

ADD BX,2

MOV WORD PTR DS:[BX+0500H],6F7FH ADD BX,2

MOV WORD PTR DS:[BX+0500H],7C77H ADD BX,2

MOV WORD PTR DS:[BX+0500H],5E39H ADD BX,2

MOV WORD PTR DS:[BX+0500H],7179H RET

CODE ENDS

END START 3. 实验步骤

1) 按图 3-6 连好实验线路

图3-6

2) 运行实验程序 有两种方法:

第一种运行实验箱固化在EPROM中的可执行程序,其起始地址为:F000:B000,其优点为简单易用,缺点不能修改程序。

调用方法为:

在实验箱显示器显示命令提示符“—”时,按 GO 键,显示“ 500 00 ” 输入 F000,按“:”键,输入B000 ,

再按 EXEC 键,实验箱的显示器上显示“0809 ——XX”。

第二种方法为用PC机联机,其优点是可以修改程序,改变输出的波形和周期,方法参考第二章4.联机软件的使用方法,该实验对应的汇编语言源程序在联机软件安装目录下的ASM文件夹下,文件名为DVCAD.ASM。

3)调节电位器Wl, 显示器上会不断显示新的转换结果,同时用万用电表测量电位器W1中心抽头的电压(选择适当的量程以减小误差),记下模拟量和数字量的对应值。

五、实验结果

模拟量和数字量对应关系的典型值为:

0V一-00H, +2.5V--80H。 +5V--FFH

六、实验数据分析(结论,误差分析)

对实验结果进行观察,得出模拟量和数字量对应关系,分析A/D转换误差产生的原因。

七、思考题

1. 如果0809输入的模拟量来自于通道7,程序应该如何修改?如果要同时转换通道0和7的模拟量,则程序又应该如何修改?


微机接口技术实验讲义(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016年雅思写作大作文机经

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: