北京理工大学微机原理综合设计实验数字电压表A_第1页
北京理工大学微机原理综合设计实验数字电压表A_第2页
北京理工大学微机原理综合设计实验数字电压表A_第3页
北京理工大学微机原理综合设计实验数字电压表A_第4页
北京理工大学微机原理综合设计实验数字电压表A_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微机原理与接口技术实验报告实验内容:微机原理综合设计实验 数字电压表A 组别:31 姓名:12届黄大师 班级:xxxxxxxxx 学号:xxxxxxxxxx一、实验目的1、掌握8255的使用及编程原理。2、掌握8253定时/计数器的编程原理。3、掌握ADC0809的使用方法。4、掌握共阴极七段数码管的工作原理。5、加强多芯片的综合运用。6、加强汇编语言程序设计。二、实验内容利用ADC0809采集电位器的电压值,将采集的电压值通过8255显示在七段数码管上,显示数据保留小数点后2位,利用8253定时数据更新,每隔0.5秒数据更新一次。扩展要求:具有设置报警阈值功能,当超过阈值时,点亮一个LED灯

2、。三、实验方法1、设计思路先利用ADC0809采集电位器的电压值,此时的电压值在AL中,但其真正的值应该为5/255*AL伏。根据要求保留小数点后2位,利用程序先将AL乘以500/255,约为196,即将电压值扩大100倍,先除以100,得到最高位,再依次除以10,得到小数点后第一,二位,分别存在连续的三个存储单元中。定义0-9共阴极七段数码管的显示码数据段,再通过8255 依次选通3个数码管,通过8255依次送入刚才所得的三个值的显示码。利用8253工作在方式二,每隔0.5秒产生一低脉冲送到8255,利用程序检验,每隔0.5秒才调用电压采集程序。对于扩展要求可利用74LS273实现。实验简单

3、主要原理图如下:将可变电位器AN0与ADC0809的ADIN0相连,将CS2与ADC0809的片选CS0809端相连,将ADC0809的EOC与8255的PC0相连,CS0与8253的片选CS8253相连,CLK3(750KHz)与8253CLK0相连,8253的OUT0与8253CLK2相连,OUT2与8255的PA0相连,CS1与8255的片选CS8255相连,PC4-PC6与LED1-LED3依次相连,PB0-PB7依次与LED-ALED-DP相连。2、 程序流程图开始初始化调用A/D转换电压值转换并存储依次送入显示码依次选通数码管PA0=0?电压值>阈值?LED灯亮LED灯灭YN

4、NY四、实验源程序 CODE SEGMENT PUBLICASSUME CS:CODE ORG 100HSTART:MOV AX,0HMOV DS,AXMOV SI,2000H ;定义从0:2000H开始的存储单元MOV DX,04B6H MOV AX,91HOUT DX,AX ;初始化8255,使B口输出,A口输入,C口低四位输入,高四位输出MOV DX,04A6HMOV AX,36H ;计数器0,方式3-方波,低八位,后高八位,二进制OUT DX,AX MOV DX,04A0HMOV AX,720OUT DX,ALMOV AH,ALOUT DX,AL MOV DX,04A6HMOV AX,

5、0B5H ;计数器2,方式2-频率发生器,低八位,后高八位,二进制OUT DX,AXMOV DX,04A4HMOV AX,501OUT DX,ALMOV AH,ALOUT DX,AL ;OUT2每0.5秒输出一个低电平到PA0 L2:MOV SI,2000HMOV DX,4C0H ;指向通道0CALL GETAD ;调用A/D转换子程序,取得A/D值L1:MOV SI,2000HMOV BL,DS:SI+2MOV BH,0;取出电压值小数点后第二位LEA SI,TABLEADD SI,BXMOV BL,CS:SI ;得到电压值小数点后第二位的数码管显示码MOV DX,04B4HMOV AL,0

6、E0H OUT DX,AL ;选通LED1数码管MOV DX,04B2HMOV AL,BLOUT DX,AL;通过B口送入显示码CALL DELAYMOV SI,2000HMOV BL,DS:SI+1MOV BH,0;取出电压值小数点后第一位LEA SI,TABLEADD SI,BXMOV BL,CS:SI;得到电压值小数点后第一位的数码管显示码MOV AL,0D0HMOV DX,04B4HOUT DX,AL;选通LED2数码管MOV DX,04B2HMOV AL,BLOUT DX,AL;通过B口送入显示码CALL DELAYMOV SI,2000HMOV BL,DS:SIMOV BH,0;取

7、出电压值个位值LEA SI,TABLE1ADD SI,BXMOV BL,CS:SI;得到电压值个位值的数码管显示码MOV AL,0B0HMOV DX,04B4HOUT DX,AL;选通LED3数码管MOV DX,04B2HMOV AL,BLOUT DX,AL;通过B口送入显示码CALL DELAYMOV DX,04B0HIN AL,DXAND AL,00000001CMP AL,0;PA0是否接收到一低电平JNZ L1;PA0没有接收到低电平,跳到数码管显示程序JMP L2;PA0接收到低电平,跳到电压采集程序DELAY:MOV BP,100H ;延时程序DELAY1:DEC BPCMP BP

8、,0JNE DELAY1RETGETAD:PUSH DXMOV AX,34H;启动A/DOUT DX,AXCALL DELAYMOV DX,04B4H ;指向8255C口地址WAIT1:IN AX,DX ;读进EOC状态TEST AX,1JZ WAIT1POP DXIN AX,DX ;读A/D值MOV AH,0MOV CX,AXMOV AL,51MOV BL,4 ;电压阈值在此修改MUL BLCMP AX,CXJC L3MOV AL,01HMOV DX,4D0H ;指向74LS273OUT DX,AL ;若小于阈值则灯灭L3:MOV AL,0MOV DX,4D0HOUT DX,AL ;若大于阈

9、值则灯亮MOV AX,CXMOV BL,0C4H MUL BL MOV BX,0001H MUL BX MOV BL,64H MOV BH,0 DIV BX DIV BL MOV DS:SI,AL ;得到个位值存入0:2000HMOV AL,AH MOV AH,00H MOV BL,0AH DIV BL MOV DS:SI+1,AL ;得到小数点后第一位值存入0:2001HMOV DS:SI+2,AH ;得到小数点后第一位值存入0:2002HRETTABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;0-9的八段数码管显示码TABLE1:DB 0B

10、FH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH ;0-9的DP点亮八段数码管显示码CODE ENDSEND START5、 实验结果实验结果如下图: 扩展要求结果如下图:从图中可以看出实现了电压值的保留两位小数显示,最大值为4.99,最小值为0。并且当其值超过阈值4伏时,点亮了LED灯,实现扩展要求。六、实验中遇到的问题及解决方法1、在没使用8253实现定时更新时,数码管的显示不是很清楚,不该亮的地方会微亮,在每个数码管显示后调用延时函数得到了解决。2、在利用8253实现定时更新时,一开始的想法是利用方式3产生周期为一秒的方波,接到ADC0809的START管脚,后来一接触实验箱发现其已内接了。在利用8253方式2频率发生器每隔0.5秒

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论