




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ADC0809模拟量采集一实验目的(1)了解将模拟量转换成数字量的基本原理。(2)学会利用ADC0809芯片进行摸/数转换的编程方法。二实验内容将电位器产生的模拟电压信号转换成数字信号,转换结果送入主机内存中,并在屏幕上显示。取256个采样点。三线路连接ADC0809有8个模拟输入端IN7IN0,输入模拟量电压范围为0V+5V,旋转电位器SW1产生不同的模拟电压,作为模拟输入量。实验电路中只开通了IN0一路模拟量输入,其它输入端未使用。ADC0809的D7D0引脚与主机数据总线相连接。ADC0809的START端为A/D转换启动信号,ALE端为通道地址的锁存信号。线路中将START端与ALE端连接,以便锁存通道地址,同时启动A/D采样并进行转换。ADC0809的CLOCK端的时钟频率范围为101280KHz,本实验中采用1MHz。ADC0809的结束信号EOC用来产生中断请求信号,请求CPU读入转换后的结果。实验接线如图4.9所示。图4.9 ADC0809模/数转换实验线路图298H29FH74LS0221062292324257814151718192021A2A1A0EOCD0D1D2D3D4D5D6D7+5V1211161326272812345 CLOCK STARTALEENABLEADDCADDBADDAEOC2-8(LSB)2-72-62-52-42-32-22-1(MSB)REF(+)VccREF(-)GNDIN0IN1IN2IN3IN4IN5IN6IN7 CS74LS0214.7K+5VSW1ADC0809IORIOW&四编程提示(1)发出启动A/D转换信号由于START与ALE相连,所以在通道地址锁存的同时,发出A/D转换信号。通道IN0地址为PCI外扩设备基地址+外扩设备译码器输出地址。(2)将转换结果读入内存当A/D转换结束后,CPU从ADC0809输出端接收数据。五流程图程序流程如图4.10所示。图4.10 ADC0809模/数转换数字显示流程图(b) 显示子程序YNDL+7DL将显示字符送DL显示字符DL9?DL+30HDL开始结束(a) 主程序YN显示空格启动A/D转换保存转换数据显示提示信息读入转换数据高四位延时低四位有键按下吗?开始结束调显示子程序显示调显示子程序显示六参考程序 DATA SEGMENT;数据段IOPORTEQU 0D880H-280H;端口基地址IO0809AEQU IOPORT+298H;0809通道0地址CRTDB SPIN “SW1”SWITCH,VIEW ON THE DISPLAY ,0DH,0AHDBENTER ANY KEY CAN EXIT TO DOS ,0DH,0AH, $;提示信息DATAENDSCODESEGMENT;代码段ASSUMECS:CODE,DS:DATASTART:MOV AX,DATA;初始化,取段基址MOV DS,AXMOV DX,OFFSET CRT;AXCRT段基址MOVAH,09H;DOS 9号调用,显示提示信息INT 21HLAB:MOV DX,IO0809A;DXIN0端口地址OUT DX,AL;启动A/D转换MOV CX,0FFFFH ;CX=FFFFHDELAY:LOOP DELAY;调延时子程序IN AL,DX ;ALIN0端口数据MOV BL,AL;BLAL,暂存IN0端口数据MOV CL,4;CL=4SHR AL,CL;AL内容右移4位,CALLDISP ;调显示子程序,显示高四位MOV AL,BL;ALBL,IN0端口数据AND AL,0FH;“与”操作,屏蔽高4位CALL DISP ;调显示子程序,显示低四位MOV AH,02;DOS 2号调用MOV DL,20H ;DL=20H,“空格”的ASCII码INT 21H;显示空格INT 21H;显示空格PUSH DX;DX进栈保护MOV AH,06H ;DOS 6号调用,有键按下退出MOV DL,0FFH;DL=FFHINT 21H;执行键盘输入操作POPDX;DX出栈JE LAB;ZF=1,没有键按下,转到标号LAB继续从IN0端口输入数据MOV AX,4C00H ;返回DOSINT 21HDISP PROC NEAR ;显示字符子程序MOV DL,AL;DLALCMP DL,9 ;DL内容与9比较JLE DDD ;DL9,转到标号DDDADD DL,7 ;DL9,DLDL+7DDD:ADD DL,30H ;DLDL+30H,转换成ASCII码MOV AH,02;DOS 2号调用INT 21H;显示字符RETDISP ENDPCODE ENDSEND START;结束七编译过程DAC0832控制直流电机转速一实验目的(1)学习并掌握DAC0832的性能及编程方法。(2)了解直流电机速度控制的基本原理。二实验内容直流电机的转速是由0832的Ub输出脉冲的占空比例来决定的,正向占空比例越大,电机转速越快,反之越慢,如图4.12所示。0832的输出Ub为双极性,当输入量小于80H时,输出为负,电机反转。等于80H时,输出为0,电机停止转动。大于80H时,输出为正,电机正转。本实验0832输出的数字量只需要两个数值80H和FFH,80H对应电机反转,FFH对应电机正转,通过不同的延时时间达到改变电机转速的目的。三线路连接如图4.12所示,0832输出端Ub与直流电机Uj端相连,CS接地址端口2A0H2A7H。8255的PC0PC5分别与开关K0K5相连,CS接地址端口280H287H。图4.11 直流电机转速示意图译码器端口快转80HFFHFFH80H快速慢速图4.12 直流电机转速控制实验接线图译码器端口Ub直流电机DjCS2A0H2A7HDAC08328255PC0PC5 CSK0 K5 280H287H图4.13 直流电机转速控制程序流程图译码器端口NYN延时通过0832输出+5V延时显示提示信息通过0832输出0V读入开关状态设置8255控制字为81H(C端口输入)读/写控制逻辑结束开始有键按下?K0=1?延迟时间常数0K5=1?延迟时间常数5K4=1?延迟时间常数4K3=1?延迟时间常数3K2=1?延迟时间常数2K1=1?延迟时间常数1NNYNYYYYYYNNNNN四编程提示0832输出80H的持续时间是不变的,输出FFH的持续时间越长,电机转动时的速度就越快。持续时间长短,可以利用开关用K0K5 来控制,共5个档,达到使电机加速、减速的目的。K0对应的速度最慢,K5对应的速度最快。 五流程图程序流程图如图4.13所示。六参考程序 DATA SSEGMENT ;数据段IOPORTEQU0D880H-280H;端口基地址IO0832A EQUIOPORT+2A0H;0832地址IO8255C EQU IOPORT+282H;8255 端口C口地址IO8255T EQU IOPORT+283H;8255控制口地址BUF1 DW 0;预留字单元BUF2 DW 0;预留字单元CRTDBK0K5 ARESPEED SWITCH,0DH,0AHDBK0 IS LOWEST SPEED,0DH,0AHDBK5 IS HIGHEST SPEED,0DH0AHDBSTIR ANY SWHITCH,VIEW ELECTRIC MORTOR SPEED,0DH,0AHDBENTER ANY KEY CAN EXIT TO DOS ,0DH,0AH, $;提示信息DATAENDSSTACKS SEGMENT;堆栈段 DB 100 DUP(?)STACKS ENDSCODE SEGMENT;代码段ASSUME CS:CODE,DS:DATA,SS:STACKS,ES:DATASTART:MOVAX,DATA;初始化,取段基址MOVDS,AXMOV ES,AXMOV AX,STACKSMOV SS,AXMOV DX,OFFSET CRT;DXCRT首地址MOVAH,09H;DOS 9号调用 INT 21H;显示提示信息MOVDX, IO8255T;DX8255控制口地址MOV AL,8BH;AL=8BH,控制字OUT DX,AL ;设置8255 端口C输入LLL: MOV AL,80H;AL=80HMOV DX,IO0832A;DX0832端口地址OUT DX,AL ;0832输出80H,对应0VPUSH DX;DX进栈保护MOV AH,06h;DOS 6号功能调用,判断是否有键按下?MOV DL,0FFH;DL=FFHINT 21HPOP DX;DX出栈JE INTK ;ZF=1,表示没有键按下没,转到标号INTKMOV AH,4CH;ZF=1,表示有键按下,返回DOSINT 21H INTK:MOV DX,IO8255C;DX8255端口C地址IN AL,DX ;AL开关状态TEST AL,01H;测试PC0=1?JNZ K0;ZF=0,则PC0=1,表明拨动了K0开关,转到标号K0TEST AL,02H;测试PC1=1?JNZ K1;ZF=0,则PC1=1,表明拨动了K1开关,转到标号K1TEST AL,04H;测试PC2=1?JNZ K2;ZF=0,则PC2=1,表明拨动了K2开关,转到标号K2TEST AL,08H;测试PC3=1?JNZ K3;ZF=0,则PC3=1,表明拨动了K3开关,转到标号K3TEST AL,10H;测试PC4=1?JNZ K4;ZF=0,则PC4=1,表明拨动了K4开关,转到标号K4TEST AL,20H;测试PC5=1?JNZ K5;ZF=0,则PC5=1,表明拨动了K5开关,转到标号K5JMP LLL;无条件转到标号LLLK0: MOV BUF1,0FFFFH;BUF1=FFFFH,延时时间常数MOV BUF2, 9000H;BUF2=9000H,延时时间常数DELAY: MOV CX,BUF1;CX=FFFFHDELAY1:LOOP DELAY1;CX1CX,CX0,转到标号DELAY1MOV AL,0FFH;AL=FFH,对应0832输出+5VMOV DX,IO0832A;DX0832端口地址OUT DX,ALMOV CX,BUF2;CX=9000HDELAY2:LOOP DELAY2;CX1CX,CX0,转到标号DELAY2JMP LLL;无条件转到标号LLLK1: MOV BUF1,0FFFFH;BUF1=FFFFH,延时时间常数MOV BUF2,0A000H;BUF2= A000H,延时时间常数JMP DELAY;无条件转到标号DELAYK2: MOV BUF1,0FFFFH;BUF1=FFFFH,延时时间常数MOV BUF2,0B000H;BUF2= B000H,延时时间常数JMP DELAY;无条件转到标号DELAYK3: MOV BUF1,0FFFFH;BUF1=FFFFH,延时时间常数MOV BUF2,0E000H;BUF2= E000H,延时时间常数JMP DELAY;无条件转到标号DELAYK4: MOV BUF1,0FFFFH;BUF1=FFFFH,延时时间常数MOV BUF2,0F000H;BUF2= F000H,延时时间常数JMP DELAY;无条件转到标号DELAYK5: MOV BUF1,0FFFFH;BUF1=FFFFH,延时时间常数MOVBUF2,0FFFFH;BUF2=FFFFH,延时时间常数JMP DELAYCODE ENDSENDSTART;结束七编译过程加法程序一实验目的学习并掌握数据传送和算术运算指令的用法。编写多位十进制数相加程序。二实验内容图2.1 十进制数相加程序流程图将两个多位十进制数28056,47193相加,并在屏幕上显示加数、被加数、和。要求两个操作数均以ASCII码形式各自顺序存放在DATA1和DATA2内存单元中,并将结果送回DATA1处(低位在前,高位在后)。三程序流程图程序流程如图2.1所示。两操作数在内存中存放的情况如图2.2所示。33H39H31H37H34H36H35H30H38H32H存储器DATA1DATA1图2.2 数据在内存中的存放情况四参考程序 SHOWMACROB ;宏定义 MOVDL, B;B为要显示字符的ASCII码MOV AH, 02HINT 21H;2号功能调用,在屏幕上显示一个字符ENDMDATA SEGMENT;数据段DATA1DB 33H,39H,31H,37H,34H ;被加数47193的ASCII码(倒序存放)DATA2DB 36H,35H,30H,38H,32H;加数28056的ASCII码(倒序存放)DATA3 DB ,0DH,0AH,$ DATA ENDSSTACKSEGMENT STACK;堆栈段STADB 20 DUP (?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENT ;代码段 ASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATASTART:MOV AX,DATA;初始化,取段基址 MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX MOV SI,OFFSET DATA2;取DATA2(加数)的偏移地址 MOV BX,05;设置地址指针,BX=5 (加数为5位) SHOW 20H;宏调用,显示“空格”(ASCII码为20H) CALL DISPL;调显示子程序 SHOW0DH;宏调用,“回车” SHOW 0AH;宏调用,“换行” MOV SI,OFFSET DATA1;取DATA1(被加数)的偏移地址 MOV BX,05;设置地址指针,BX=5 (被加数为5位) SHOW 2BH;宏调用,显示“+”(ASCII码为2BH) CALL DISPL;调显示子程序 SHOW0DH;宏调用,“回车” SHOW0AH;宏调用,“换行” MOVCL,7;CL=7,显示7个“-”,构成直线S1: SHOW 2DH;宏调用,显示“-”(ASCII码为2DH) LOOP S1;CX-1CX,CX0,转到标号S1 SHOW 0DH SHOW 0AH MOV SI,OFFSET DATA1;取DATA1(被加数)的偏移地址MOV DI,OFFSET DATA2;取DATA2(加数)的偏移地址 CALL ADDA ;调加法程序 MOV SI,OFFSET DATA1;取DATA1的偏移地址,显示两数之和 SHOW 20H MOV BX,05;BX=5,设置地址指针 CALL DISPL;调显示子程序 MOV AX,4C00H;返回DOS INT 21HDISPL PROC NEAR ;显示子程序 DS1: SHOWSI+BX-1;宏调用,倒序显示数据 DEC BX ;BXBX1 JNZ DS1;BX0,转到标号DS1,继续显示数据 RETDISPL ENDPADDA PROC NEAR;加法子程序 MOV DX,SI;DATA1的偏移地址传送给DX MOV BP,DI ;DATA2的偏移地址传送给BP MOV BX,05;BX=5,设置地址指针AD1: SUB BYTE PTR SI+BX-1,30H;将ASCII码转化为十六进制数,并存入DATA1 SUB BYTE PTR DI+BX-1,30H;将ASCII码转化为十六进制数,并存入DATA2 DEC BX ;BXBX1 JNZ AD1;BX0,转到标号AD1,继续转换 MOV SI,DX;SIDATA1的偏移地址 MOV DI,BP;DIDATA2的偏移地址 MOV CX,05 ;CX=5,设置计数常数 CLC;清除进位表示,CF=0 AD2: MOV AL,SI ;ALDATA1中的低位数 MOV BL,DI;BLDATA1中的低位数 ADC AL,BL;带进位相加 AAA ;十进制调整 MOV SI,AL ;将结果保存到DATA1中 INC SI;指向下一位 INC DI LOOP AD2 ;CX-1CX,CX0,转到标号AD2,继续加法 MOV SI,DX;SIDATA1的偏移地址 MOV DI,BP;DIDATA2的偏移地址 MOV BX,05;BX=5,设置地址指针AD3: ADD BYTE PTR SI+BX-1,30H;将十六进制转化为ASCII码 ADD BYTE PTR DI+BX-1,30H DEC BX ;BXBX1 JNZ AD3;BX0,转到标号AD3,继续转换 RETADDA ENDPCODE ENDSEND START五编译过程结果=75 249乘法程序一实验目的掌握乘法指令和循环指令的用法,编写十进制数乘法程序二实验内容实现十进制数的乘法。被乘数(29054)和乘数(3)均以ASCII码的形式存放在内存中,要求在屏幕上显示乘数、被乘数、积。三程序流程图程序流程如图2.2所示。程序执行前数据在内存中的存放情况如图2.4所示,程序执行后数据在内存中的存放情况如图2.5所示。图2.4 程序执行前数据在内存中的存放情况32H39H30H35H34H33H0000000000存储器DATA1DATA1RESULT图2.5 程序执行后数据在内存中的存放情况32H39H30H35H34H33H0000000000存储器DATA1DATA1RESULT2.3 两数相乘程序流图四参考程序 SHOWMACROB;宏定义MOVDL,B;B为要显示字符的ASCII码MOV AH,02H;2号功能调用,在屏幕上显示一个字符INT 21HENDMDATA SEGMENT;数据段DATA1 DB 32H,39H,30H,35H,34H;被乘数29054的ASCII码DATA2 DB 33H;乘数3的ASCII码RESULT DB 6 DUP(00H);预留6个字节单元DATA ENDSSTACK SEGMENT;堆栈段STA DB 20 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENT ;代码段 ASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATASTART:MOV AX,DATA;初始化,取段基址 MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX MOV SI,OFFSET DATA1;SIDATA1(被乘数)的偏移地址 MOV CL,5;CL=5,设置计数常数 SHOW 20H;宏调用,显示一个“空格” CALL DISPL;调显示子程序,显示被乘数 SHOW 0DH;宏调用,“回车” SHOW 0AH;宏调用,“换行”SHOW 2AH;宏调用,显示乘号“*” MOV SI,OFFSET DATA2;SIDATA2(乘数)的偏移地址MOV BL,SI ;BL乘数,BL=33H AND BL,00001111B;屏蔽乘数ASCII码的高四位,BL=3MOV CL,1;CL=1 CALL DISPL;调显示子程序,显示乘数 SHOW 0DH;宏调用,“回车” SHOW 0AH;宏调用,“换行” MOV CL,7;CL=7S1: SHOW 2DH;宏调用,显示7个“-”,构成直线 LOOP S1;CX1CX,CX0,转到标号S1 SHOW 0DH;宏调用,“回车” SHOW 0AH;宏调用,“换行” MOV SI,OFFSETDATA1;SIDATA1被乘数首地址 MOV DI,OFFSETRESULT;DI乘
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年度高升专全真模拟模拟题及答案详解【基础+提升】
- 自考专业(公共关系)考试黑钻押题附参考答案详解(研优卷)
- 计算机一级题库【新题速递】附答案详解
- 2024-2025学年度助听器验配师综合提升测试卷及参考答案详解(预热题)
- 2023年度教师公开招聘题库含完整答案详解(历年真题)
- 2024药店相关技能鉴定模拟题库及答案详解【夺冠】
- 2025教育培训机构加盟合同
- 2025珠海市机动车驾驶员培训合同
- 2025辅导班教师聘用合同
- 2025成都市住房制度改革售购房合同样书
- 2025年(高级)政工师理论考试题库及答案
- 2025年教育督导员督导知识试卷及答案
- 职业技能竞赛-园林绿化工理知识试题库
- 骨软骨瘤恶变信号:识别、诊断与临床管理
- 安全生产盲区
- 社区居民健康档案建立
- 非公企业党建培训课件
- 物业管家手机管理办法
- 2025发展对象考试试题库及参考答案(完整版)
- 妇产科开展宫腔镜手术的可行性报告
- DB54∕T 0275-2023 民用建筑节能技术标准
评论
0/150
提交评论