




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、浙江工业大学计算机学院实 验 报 告实验名称 定时/计数器(8253) 17一、实验内容与要求1.1 实验内容1.计数器方式0实验将计数器0设置为方式0,计数器初值为N(N0FH),用手动开关逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。2.计数器方式3实验将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1Hz)。3. 计数器级联实验将计数器0设置为方式3(方波),计数器1设置为方式2(分频)。实现计数器0的输出为方波,计数器1的输入是计数器0输出。人机交互界面设计:实现
2、在显示屏幕上提示输入计数器0(方波)的参数和计数器1(分频信号)的参数。1.2 实验要求(1) 正确完成硬件电路连线;(2) 使用8253定时/计数器芯片,除片选引脚,其他信号都已接好,进行有关结构设计和编程(3) 编写正确汇编程序,完成正确的屏幕以及硬件仪器的显示。二、实验原理与硬件连线2.1 实验原理8253/8254 定时/计数器总体结构如图2.1.1所示,外部引脚定义如图2.1.2所示 图2.1.1 定时/计数器总体结构 图2.1.2 外部引脚定义2.2 硬件连线1.实验1硬件连线如图2.21所示:图2.2.1 TPC-USB平台计数器方式0实验连线图2.实验2硬件连线如图2.22所示
3、:图2.2.2 TPC-USB平台计数器方式3实验连线3.实验3硬件连线如图2.23所示:图2.2.3 TPC-USB平台计数器级联实验连线三、设计思路、步骤和程序流程图3.1 设计思路(1)硬件连线:在TPC-USB实验板上,进行三种方式下的8253计数器实验(2)程序设计:通过对实验要求的理解,编写想关的汇编代码(3)两者结合显示符合实验要求的结果3.2 实验步骤3.3 程序流程(1)计数器方式0实验,流程如图3.3.1:图3.3.1 TPC-USB平台计数器方式0实验流程图(2)计数器方式3实验,流程如图3.3.2:图3.3.2 TPC-USB平台计数器方式3实验流程图(3)计数器级联方
4、式实验,流程如图3.3.3:图3.3.3 TPC-USB平台计数器级联实验流程图四、程序清单与执行结果4.1 程序清单 1.计数器方式0实验CODE SEGMENT ASSUME CS:CODE START:MOV AL,10H ;计数器0,方式0,写两个字节,二进制计数 MOV DX,283H ;把控制寄存器地址放在DX寄存器中 OUT DX,AL ;将AL的值送入DX端口 MOV DX,280H ;把计数器0地址放在DX寄存器中 MOV AL,0FH ;将0FH存入AL寄存器 OUT DX,AL ;将此时AL的值送入DX端口LP1: IN AL,DX ;从DX端口读入8位,放在AL寄存器中
5、 CALL DISP ;调用DISP PUSH DX ;将DX内容保存到堆栈段 MOV AH,06H ;将06H存入AH,为了下句调用21中断 MOV DL,0FFH ;将0FFH存入DL INT 21H ;调用21中断 POP DX ;将DX的内容推出栈段 JZ LP1 ;如果DX的内容是0,就跳转到LP1 MOV AH,4CH ;将4CH存入AH,为了下句调用21中断 INT 21H ;调用21中断DISP PROC NEAR ;定义一个名为DISP的子程序 PUSH DX ;把DX的内容保存到堆栈段中 AND AL,0FH ;将AL寄存器的内容与0FH进行“与”运算,再把结果存入AL中
6、MOV DL,AL ;将AL的值送入DL寄存器 CMP DL,9 ;比较DL中的值与9的大小 JLE NUM ;如果DL的值小于或等于9时,则跳转到NUM ADD DL,7 ;将DL的值与7进行相加后,再送入DL中NUM: ADD DL,30H ;将DL的值与30H进行相加后,再送入DL中 MOV AH,02H ;将02H存入AH INT 21H ;调用DOS21中断 MOV DL,0DH ;结合“MOV AH,02H”,输出0DH INT 21H ;调用中断指令 MOV DL,0AH ;结合“MOV AH,02H”,输出0AH INT 21H ;调用DOS21中断 POP DX ;将DX的内
7、容推出栈段 RET ;子程序在功能完成后返回调用程序继续执行 DISP ENDP ;子程序结束 CODE ENDS ;代码段结束 END START 2.计数器方式3实验CODE SEGMENT ASSUME CS:CODE START:MOV DX,283H ;把控制寄存器地址放在DX寄存器中 MOV AL,36H ;设置控制字00110110(计数器0,方式3,写两个字节,二进制计数) OUT DX,AL ;将AL的值送入DX端口 MOV AX,1000H ;把1000H这个数赋给AX MOV DX,280H ;把计数器0地址放在DX寄存器中 OUT DX,AL ;将AL的值送入DX端口
8、MOV AL,AH ;将AX的高8位存入AL寄存器中 OUT DX,AL ;将此时AL的值送入DX端口 MOV DX,283H ;把端口地址放在DX寄存器中 MOV AL,76H ;设置控制字01110110(计数器1,方式3,写两个字节,二进制计数) OUT DX,AL ;将AL的值送入DX端口 MOV AX,1000H ;把1000H赋给AX MOV DX,281H ;把端口地址放在DX寄存器中 OUT DX,AL ;将AX的低8位送入DX端口 MOV AL,AH ;将AX的高8位存入AL寄存器中 OUT DX,AL ;将AL的值送入DX端口 MOV AH,4CH ;将4CH存入AH IN
9、T 21H ;调用DOS21中断CODE ENDS ;代码段结束 END START ;程序结束3. 计数器级联实验data segment mesg1 db 13,10,'counter0:','$' mesg2 db 13,10,'counter1:','$' mesg3 db 13,10,'continue?(y/n)','$'mesg4 db 13,10,13,10,'thank you!',13,10,'$' errorm db 13,10,'inp
10、ut error!','$' counter0 dw 0 counter1 dw 0data ends code segment assume cs:code,ds:data main proc far start: mov dx,data mov ds,dx do: sub bx,bx sub ax,ax mov counter0,0 mov counter1,0 ;init l1: mov dx,offset mesg1 mov ah,09h int 21h rd1 : ;read counter0 mov al,0 ;判断有无输入 mov ah,01 ;read
11、a char int 21h cmp al,0 jz rd1 cmp al,13 ;if enter je fdone1 jmp tdone1 fdone1: jmp done1 tdone1: cmp al,10 je fdone1 cmp al,'0' ;if input<0 or input>9 error jb error cmp al,'9' ja error push ax mov ax,10 mul counter0 mov counter0,ax ;counter0=counter*10 pop ax sub bx,bx mov bl
12、,al sub bl,30h add counter0,bx ;counter=counter+input jmp rd1 error: mov dx,offset errorm mov ah,09hint 21h mov dl,7 mov ah,2 int 21h jmp done3 tr: ;for jmp do mov dl,al mov ah,02h int 21h mov dl,10 int 21h mov dl,13 int 21h jmp do l2: mov dx,offset mesg2 mov ah,09h int 21h rd2: mov al,0 ;判断有无输入 mov
13、 ah,01 ;read counter1 int 21h cmp al,0 jz rd2 cmp al,13 ;if enter je fdone2 cmp al,10 je fdone2 jmp tdone2 fdone2: jmp done2 tdone2: cmp al,10 je fdone2 cmp al,'0' jb error cmp al,'9' ja error push ax mov ax,10 mul counter1 mov counter1,ax ;counter1=counter1*10 pop ax sub bx,bx mov b
14、l,alsub bl,30h ;bh=0 add counter1,bx ;counter1=counter1+input jmp rd2 done1: jmp l2 done2: jmp out8253 ;after enter two counters ; set 8253 and do it done3: mov dx,offset mesg3 mov ah,09h int 21h l3: mov ah,07h int 21h cmp al,'y' je tr cmp al,'y' je tr cmp al,'n' je quit cmp
15、al,'n' je quit mov dl,7 mov ah,02h int 21h jmp l3 out8253: ;work code mov al,00110110bmov dx,283h out dx,al mov ax, counter0 mov dx,280h out dx,al mov al,ah out dx,al mov al,01110110b mov dx,283h out dx,al mov ax,counter1 mov dx,281h out dx,al mov al,ah out dx,al mov cx,2801 delay: loop delay jmp done3 quit: ;return to dos mov dx,offset mesg4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北斗监控考试题及答案
- 保险高考试题及答案
- 老年教育个性化课程设置与多元教学模式创新研究报告
- 安全实践操作试题及答案
- 周末表扬小学生的课件
- 宠物专业入学教育
- 中国剪纸分类
- 2025年山西农业大学附属学校英语七年级第二学期期末检测模拟试题含答案
- 中国创伤救治培训CTCT课件
- 中学生心理健康教育团结
- DB13T 1320.10-2010 中药材种子质量标准 第10部分:防风
- (2025春新版本)人教版七年级生物下册全册教案
- 医院残疾评定管理制度
- 杂志分拣打包服务合同4篇
- 2025年D-对羟基苯甘氨酸项目市场调查研究报告
- 2024-2025 学年八年级英语下学期期末模拟卷 (常州专用)解析卷
- 航空发动机关键部件项目运营管理手册(范文)
- 2025年中国社区O2O商业模式市场分析报告
- 高考语文专题复习 -语用新题型得名方式、构词方式辨析
- 预防强对流天气安全教育
- 高低压变配电工程方案投标文件(技术方案)
评论
0/150
提交评论