已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理与接口技术实验报告下指导教师:陆勤姓名:程少锋学号:139074366班级:物联网131班实验三 8253、8255、8259综合实验18253计数器实验要求:计数器1方式0计数,计满3个数产生中断,中断5次后结束。实验线路见图6-6:图6-6 8253计数器实验电路图实验程序:INTPORT1 EQU 0FF80H ;8259A的偶地址入口INTPORT2 EQU 0FF81H ;8259A的偶地址入口INTQ3 EQU INTREEUP3;INTREEUP3地址TCONTR0 EQU 0043H ;8253端口地址TCON1 EQU 0041H ;8253端口地址PA EQU 0FF20H ;字位口PB EQU 0FF21H ;字形口PC EQU 0FF22H ;键入口code segment assume cs:code ORG 12D0H ;源地址START: JMP START0 ; 跳转到START0BUF DB ?,?,?,?,?,? ;六字节缓冲区intcnt db ? ;一字节的缓冲区data1 db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h db 0a1h,86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH;七段码定义START0:CLD;置方向位 CALL BUF1 ;调用子程序BUF1CALL WRINTVER ;WRITE INTRRUPTMOV AL,13H ;写ICW1,边沿触发,单片,需要ICW4MOV DX,INTPORT1OUT DX,ALMOV AL,08H;ICW2,中断类型号高5位MOV DX,INTPORT2OUT DX,ALMOV AL,09H;写ICW4,BUF位在缓冲方式下工作,8086/8088系统OUT DX,AL MOV AL,0F7HOUT DX,ALMOV intcnt,01H;TIME=1MOV DX,TCONTR0;指向控制口MOV AL,51H ;8253控制字,通道1,方式0,只读/写低字节,BCD码计数OUT DX,AL;送控制字MOV DX,TCON1;指向控制口MOV AL,03;计数值低字节OUT DX,AL;送控制字MOV DX,0FF23H;指向8255A控制口MOV AL,80;A口方式0,输出,C口上半部输出,B口方式,输出,C口下半部输出OUT DX,AL;送控制字STI; 开中断WATING: CALL DISP ;DISP 825359JMP WATINGWRINTVER:MOV AX,0H MOV ES,AX MOV DI,002CH;目的地址 LEA AX,INTQ3;INTQ3的偏移地址 STOSW;存字 MOV AX,0000h;清零 STOSW RET;中断返回INTREEUP3: push ax;入栈 push bx push cx push dx MOV DX,TCON1;指向控制口MOV AL,03;计数值低字节OUT DX,AL MOV AL,INTCNT CALL CONVERS MOV BX,OFFSET BUF MOV AL,10H MOV CX,05H;置循环数INTRE0: MOV BX,AL;将Al中的值存在BX中 INC BX;BX加1 LOOP INTRE0;循环 ADD INTCNT,01H;循环数是五次 CMP INTCNT,06H JNA INTRE2 CALL BUF2 ;DISP:goodINTRE1: CALL DISP JMP INTRE1CONVERS: AND AL,0FH;显示次数 MOV BX,offset buf MOV BX+5,AL RETINTRE2: MOV AL,20H MOV DX,INTPORT1 OUT DX,AL pop dx pop cx pop bx pop ax IRET;软中断返回DISP: MOV AL,0FFH ;00HMOV DX,PA;清零OUT DX,ALMOV CL,0DFH ;20H MOV BX,OFFSET BUFDIS1: MOV DX,PC OUT DX,AL MOV AL,BX MOV AH,00HPUSH BXMOV BX,OFFSET DATA1 ADD BX,AX MOV AL,BXPOP BXMOV DX,PBOUT DX,ALMOV AL,CLMOV DX,PAOUT DX,ALPUSH CXDIS2:MOV CX,00A0H LOOP $ POP CXCMP CL,0FEH ;01HJZ LX1INC BXROR CL,1 ;SHR CL,1JMP DIS1LX1: MOV AL,0FFHMOV DX,PBOUT DX,ALRETBUF1: MOV BUF,08H MOV BUF+1,02H MOV BUF+2,05H MOV BUF+3,03H MOV BUF+4,05H MOV BUF+5,09H RETBUF2: MOV BUF,09H MOV BUF+1,00H MOV BUF+2,00H MOV BUF+3,0dH MOV BUF+4,10H MOV BUF+5,10H RETCODE ENDSEND START思考:如果计数器0方式0计数,计满5个数产生中断,中断3次后结束。硬件软件如何修改?硬件修改:将连接在CLK1,GATE1,OUT1的连线改接到CLK0,GATE0,OUT0上。程序修改:将程序对应部分做如下修改1、TCON1 EQU 0041H改为TCON1 EQU 0040H 2、将8253控制字由MOV AL,51H改为 MOV AL,11H 3、计数值低字节将MOV AL,02改为MOV AL,04 4、将CMP INTCNT,06H改为CMP INTCNT,04H;2、8253定时器实验要求:用8253定时器1通道定时,每隔1秒使PA口的指示灯的状态右移一位。主程序反复游走显示8253A。8253定时器实验线路见图6-7:图6-7 8253计数器实验电路图实验程序:CODE SEGMENT ;ASSUME CS:CODEINTPORT1 EQU0FF80H;8259A的偶地址入口INTPORT2 EQU0FF81H;8259A的奇地址入口INTQ3 EQUINTREEUP3TCONTR0 EQU 0043H;8253端口地址TCON1 EQU0041H;8253端口地址IOCONPT EQU0FF2BH;8255A的端口地址IOBPT EQU0FF29H;8255A的端口地址IOAPT EQU 0FF28H;8255A的端口地址PA EQU 0FF20H ;字位口PB EQU 0FF21H ;字形口PC EQU 0FF22H ;键入口 ORG 12D0H;源地址START: JMP START0BUF DB ?,?,?,?,?,?;6字节缓冲区intcnt db ? ;1字节缓冲区WEIKONG DB ? ;1字节缓冲区data1 db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h db 0a1h,86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FHSTART0:CLD;置方向位 CALL BUF1CALL WRINTVER ;WRITE INTRRUPTMOV AL,13H;写ICW1,边沿触发,单片,需要ICW4MOV DX,INTPORT1OUT DX,ALMOV AL,08H;ICW2,中断类型号高5位MOV DX,INTPORT2OUT DX,ALMOV AL,09H;写ICW4,BUF位在缓冲方式下工作,8086/8088系统OUT DX,ALMOV AL,0F7HOUT DX,ALMOV intcnt,50 ;软件计数50(1秒=20ms*50)MOV DX,TCONTR0MOV AL,74H;通道1,先读/写低字节,再读/写高字节,方式2,二进制数OUT DX,ALMOV DX,TCON1 ;计数器1定时20msMOV AX,40000OUT DX,AL MOV AL,AH;读入计数值的高字节 OUT DX,ALMOV DX,0FF2BHMOV AL,82H;A口方式0,输出,C口上半部输出,B口方式,输入,C口下半部输出OUT DX,AL MOV WEIKONG, 0FEH ;初始PA0对应位亮 MOV AL, WEIKONG MOV DX, 0FF29H OUT DX,ALSTI ;开中断WATING: CALL DISP ;DISP 8253-AJMP WATINGWRINTVER:MOV AX,0H MOV ES,AX MOV DI,002CH;目的地址 LEA AX,INTQ3;INTQ3的偏移地址 STOSW MOV AX,0000h STOSW RETINTREEUP3: DEC INTCNT;INTCNT减1 JNZ INTRE2 MOV INTCNT, 50 ROL WEIKONG, 1 MOV DX, IOAPT MOV AL, WEIKONG OUT DX,ALINTRE2: MOV AL,20H MOV DX,INTPORT1 OUT DX,AL IRET;软中断返回DISP: MOV AL,0FFH ;00HMOV DX,PAOUT DX,ALMOV CL,0DFH ;20H MOV BX,OFFSET BUFDIS1: MOV DX,PC OUT DX,AL MOV AL,BX MOV AH,00HPUSH BXMOV BX,OFFSET DATA1 ADD BX,AX MOV AL,BXPOP BXMOV DX,PBOUT DX,ALMOV AL,CLMOV DX,PAOUT DX,ALPUSH CXDIS2:MOV CX,0000H LOOP $ POP CXCMP CL,0FEH ;01HJZ LX1;相等转LX1INC BXROR CL,1 ;循环 右移一位,指示灯又移变亮 JMP DIS1LX1: MOV AL,0FFH;指示灯全灭MOV DX,PBOUT DX,ALRETBUF1: MOV BUF,08H MOV BUF+1,02H MOV BUF+2,05H MOV BUF+3,03H MOV BUF+4,17H MOV BUF+5,0AH RETCODE ENDS END START思考:硬件修改:将连接在CLK1,GATE1,OUT1的连线改接到CLK0,GATE0,OUT0上。 接在PB口的线与接在PA口的线互换。软件修改:按照下面对相应部分修改1、TCON1 EQU 0041H改为TCON1 EQU 0040H2、将MOV AL,74H改为MOV AL,34H;3、将MOV AL,82H改为MOV AL,90H4、将MOV WEIKONG, 0FEH 改为MOV WEIKONG, 07FH5、将MOV INTCNT, 50改为MOV INTCNT, 1006、将MOV AL, WEIKONG改为MOV AL, WEIKONG 7、将ROL WEIKONG, 1改为ROR WEIKONG, 18、将ROR CL,1 改为ROL CL,19、将MOV BUF+5,0AH改为MOV BUF+5,0BH五、本次实验总结实验过程中把学过的计算机编译原理以及操作系统的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。实验五 A/D转换实验一、实验目的 了解模/数转换基本原理,掌握ADC0809的使用方法; 掌握定时数据采集程序的编制方法。二、实验内容 1、A/D转换实验利用实验系统上电位器提供的可调电压作为0809模拟信号的输入,编制程序,将模拟量转换为数字量,通过数码管显示出来。(1) 实验接线图 ADC0809接线见图6-9图6-9 ADC0809接线图(2)编程指南 ADC0809的START端为A/D转换启动信号,ALE端为通道选择地址的锁存信号,实验电路中将其相连,以便同时锁存通道地址并开始A/D采样转换,其输入控制信号为CS和WR,故启动A/D转换只须如下两条指令:MOV DX,ADPORT ;ADC0809端口地址OUT DX,AL ; 发CS和WR信号并送通道地址用延时方式等待A/D转换结果,使用下述指令读取A/D转换结果。 MOV DX,ADPORT ;ADC0809端口地址 INAL,DX循环不断采样A/D转换的结果,边采样边显示A/D转换后的数字量。(3)实验程序框图 A/D转换流程见图6-10图6-10 A/D转换流程(4)实验步骤 将0809 CS4插孔连到译码输出FF80H插孔。 将通道0模拟量输入端IN0连电位器W1的中心插头AOUT1(05V)插孔,8MHZT。 运行实验程序,系统上显示“0809 XX”。“XX”表示输入模拟量转换后的数字量。 调节电位器Wl, 显示器上会不断显示新的转换结果。模拟量和数字量对应关系的典型值为:0V00H+2.5V80H+5VFFH 按RST键退出。(5)实验程序清单CODE SEGMENT ;ASSUME CS:CODEADPORT EQU 0FF80h ;8259A偶地址入口PA EQU 0FF20H ;字位口PB EQU 0FF21H ;字形口PC EQU 0FF22H ;键入口 ORG 1000H ;源地址START: JMP START0 ;跳转到START0BUF DB ?,?,?,?,?,? ;定义6字节缓冲区data1:db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h ;定义七段码 db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FHSTART0: CALL BUF1 ;调用BUF1子程序ADCON: MOV AX,00 MOV DX,ADPORT ;ADC0809端口地址 OUT DX,AL ; 发CS和WR信号并送通道地址MOV CX,0500H ;置循环数;DELAY: LOOP DELAY ;空循环,延时 MOV DX,ADPORT ;ADC0809端口地址 IN AL,DX CALL CONVERS;调用子程序CONVERS CALL DISP ;调用显示子程序DISP JMP ADCON ;跳转到ADCONCONVERS: MOV AH,AL;将 ax中的低字节赋给高字节 AND AL,0FH ;保留al中的低四位 MOV BX,OFFSET BUF;buf的偏移地址 MOV BX+5,AL;将al中的值给Bx+5 MOV AL,AH ;取al中的高四位 AND AL,0F0H MOV CL,04H ;值移位数 SHR AL,CL;右移四位 MOV BX+4,Al ;将Al中的值给BX+4 RET;返回DISP: MOV AL,0FFH ;PA端口全置1,使其灯无显示 MOV DX,PAOUT DX,ALMOV CL,0DFH ;将0DFH给CL MOV BX,OFFSET BUF;取BUF的偏移地址 给BXDIS1: MOV AL,BX;将BX中的内容取出给Al MOV AH,00HPUSH BX;BX入栈MOV BX,OFFSET DATA1;取DATA1的偏移地址给BX ADD BX,AX;BX与Ax相加 MOV AL,BPBX;将BX的内容取到AL中POP BX;BX出栈MOV DX,PB;Al中得内容在PB端口输出OUT DX,ALMOV AL,CL;显示MOV DX,PAOUT DX,ALPUSH CX;CX入栈DIS2: MOV CX,00A0H;循环00A0H次,延时 LOOP $ POP CX;CX出栈CMP CL,0FEH;Cl 与0FEH比较 JZ LX1 ;Cl与00A0H相等,则程序跳转到LXINC BX;BX自加ROR CL,1;Cl循环左移1位 JMP DIS1;循环显示LX1: MOV AL,0FFH;PB端口清零MOV DX,PBOUT DX,ALRET;中断返回BUF1: MOV BUF,00H MOV BUF+1,08H MOV BUF+2,00H MOV BUF+3,09H MOV BUF+4,00H MOV BUF+5,00H RETCODE ENDSEND START2、数据采集实验 要求:用8253定时器1通道定时,每隔半秒使从ADC0809的0通道IN0采集一个数据,若模拟电压在0-2V范围内(0-102),则使LED显示器L7-L4亮;若模拟电压大于2V,小于3V,则使L5-L2亮;若模拟电压大于等于3V,则使LED显示器L3-L0亮。(主程序重复所采集的数据)(1)实验接线图数据采集实验系统接线图见图6-11图6-11 数据采集系统接线图(2)程序流程图主程序流程见图6-12图6-12 主程序流程图中断服务程序流程见图6-13图6-13 中断服务程序流程(3)实验程序清单CODE SEGMENT ;ASSUME CS:CODEINTPORT1 EQU0FF80H ;8259A偶地址入口INTPORT2 EQU0FF81H ;8259A奇地址入口INTQ3 EQUINTREEUP3 ;中断源IR3地址TCONTR0 EQU 0043H;8253端口地址TCON1 EQU0041H;8253端口地址IOCONPT EQU0FF2BHIOBPT EQU0FF29HIOAPT EQU 0FF28HPA EQU 0FF20H ;字位口PB EQU 0FF21H ;字形口PC EQU 0FF22H ;键入口ADPORT EQU 0FE00H ;ADC0809端口地址ORG 12D0H;源地址 START: JMP START0;跳转到START0BUF DB ?,?,?,?,?,?;定义6字节的缓冲区intcnt db ?RES DB ?data1 db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h db 0a1h,86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH;定义七段码START0: CLD;置方向位 CALL BUF1;调用BUF1CALL WRINTVER ;调用 WRINTVER MOV AL,13H;初始化ICW1,单片,边沿触发,设置ICW4MOV DX,INTPORT1OUT DX,ALMOV AL,08H;写ICW2,允许IR3中断MOV DX,INTPORT2OUT DX,ALMOV AL,09H;写ICW4,8259A在缓冲方式下工作,8086/8088系统OUT DX,ALMOV AL,0F7H;写OCW1,允许中断源IR3,其余均被屏蔽OUT DX,ALMOV intcnt,25 MOV DX,TCONTR0MOV AL,74H;8253工作通道1,先读(写)低字节,再读(写)高字节,方式4,二进制计数OUT DX,ALMOV DX,TCON1 MOV AX,40000;8253初始值40000OUT DX,AL MOV AL,AH;写初值的高字节 OUT DX,ALMOV DX,0FF2BH;8255初始化,PA口方式0,输出MOV AL,82HOUT DX,AL STI;开中断WATING: CALL DISP;调用显示程序 JMP WATING;循环,延时WRINTVER:MOV AX,0H MOV ES,AX;ES指向AX MOV DI,002CH;置DI初值为CH LEA AX,INTQ3;取INTQ3的初值 STOSW MOV AX,0000h STOSW RET;中断返回INTREEUP3: DEC INTCNT;INTCNT自减1 JNZ INTRE2;不相等跳转到INTRE2 MOV INTCNT, 25ADCON: MOV AX,00;设定输入电压值 MOV DX,ADPORT OUT DX,AL MOV CX,0500H;循环值,延时DELAY: LOOP DELAY MOV DX,ADPORT;读电压值 IN AL,DX MOV RES,AL;将Al中值存入到RES中 CALL CONVERS;调用CONVERSMOV AL,RES CMP AL, 66H;Al与66H比较 JA NEXT1;若大于,跳转到NEXT1 MOV AL, 0F0H MOV DX, IOAPT;输出 OUT DX,AL JMP INTRE2;跳转到INTRE2NEXT1: CMP AL, 99H;AL与99H比较 JA NEXT2;跳转到NEXT2(灯L7-L10亮) MOV AL, 0C3H MOV DX, IOAPT OUT DX,AL JMP INTRE2;跳转到INTRE2NEXT2: MOV AL, 0FH MOV DX, IOAPT OUT DX,ALINTRE2: MOV AL,20H;中断 MOV DX,INTPORT1 OUT DX,AL IRET;中断返回CONVERS: MOV AH, AL;取Al中得低四位 AND AL, 0FH MOV BX, OFFSET BUF;取BUF的偏移地址给BX MOV BX+5, AL;将Al中得值给BX+5 MOV AL,AH;取Al中的高四位 AND AL, 0F0H MOV CL, 04H SHR AL, CL;Al中的内容右移4位 MOV BX+4, AL;将Al中的内容给BX+4 RET;中断返回DISP: MOV AL, 0FFH ;PA端口清零 MOV DX, PAOUT DX, ALMOV CL, 0DFH ;显示 MOV BX, OFFSET BUF;取BUF的偏移地址DIS1: MOV DX, PC;将Al中的 内容输出到PC端口 OUT DX, AL MOV AL, BX MOV AH, 00HPUSH
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年四川交通职业技术学院单招职业适应性测试题库含答案详解(培优b卷)
- 2026年吉林省白城市单招职业倾向性测试题库附答案详解(综合题)
- AI模型训练流程详解
- 住院儿童护理未来趋势
- 山东省2026年春季高考技能测试机电技术类专业模拟试题及答案解析
- 产科产后中暑的护理
- 客运行业职业规划
- 危重患者疼痛管理护理
- 高职教师职业规划
- 2026福建省晋融投资控股有限公司及权属子公司招聘补充笔试备考试题及答案解析
- 2026年南京铁道职业技术学院单招职业技能测试题库附答案详解(综合题)
- 2026年春季学期教学工作会议分管教学副校长讲话:锚定质量核心深耕教学主业以实干笃行筑牢教育发展根基
- 2026年春新教材人教版八年级下册生物第六单元第一章 生物的生殖 教案
- 护士压疮预防管理质控课件
- 远程沟通中医疗术语通俗化转换策略
- (一模)南通市2026届高三学业质量监测语文试卷(含标准答案)
- 银行礼仪规范制度规定
- 护理核心制度实践指南
- 工厂安全生产三级培训课件
- 2025四川安吉物流集团有限公司下半年招聘工作人员11人(二)笔试历年参考题库附带答案详解
- 饲料质量培训教学课件
评论
0/150
提交评论