您的当前位置:首页正文

实验二 可编程定时计数器

2024-08-27 来源:爱站旅游
导读实验二 可编程定时计数器


实 验 报 告

课程名称 微机原理与接口技术 实验项目 _实验二 可编程定时/计数器实验 实验仪器 TPC-USB通用微机接口实验系统

系 别 ______计算机系_________ 专 业 _______网工1101_______ 班级/学号_____1班/2011011303___ 学生姓名 ________靳晓颖_________ 实验日期 ______2013/11/26_______ 成 绩 _______________________ 指导教师 _____ 王欣 _ _

一、实验目的

1. 进一步学习掌握汇编程序的设计、掌握TPC-USB通用微机接口实验系统的使用方法。 2. 掌握8253的基本工作原理和编程方法,观察不同方式下的输出(波形)。

二.实验设备

1.PC微机系统

一套

2.TPC-USB通用微机接口实验系统 一套

三.实验要求

1.实验前要作好充分准备,包括程序框图、源程序清单、调试步骤、测试方法、对运行结果的分析等。

2.熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)使用方法。在程序调试过程中,有意识地了解并掌握TPC-USB通用微机接口实验系统的软硬件环境及使用,掌握程序的调试及运行的方法技巧。

3.实验前仔细阅读理解教材相关章节的相关内容,实验时必须携带教材及实验讲义。

四.实验内容及步骤

1.按图1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。

图1 实验连接参考电路图之一

2. 按图2连接电路,将计数器0、计数器1分别设置为方式3,计数初值均设为1000,用逻辑笔观察OUT1输出电平的变化(OUT1输出频率应为1Hz)。

图2 实验连接参考电路图之二

3. 参考流程图

8253控制寄存器地址:283H、计数器0地址:280H;计数器1:281H;CLK0连接时钟1MHz。

- 1 -

图3 实验电路之一参考流程图 图4 实验电路之二参考流程图

五、实验程序设计和调试运行

1. 实验程序之一设计如下(参考):

;*************************; ;* 8253方式0计数器实验 *; ;*************************; io8253a equ 283h io8253b equ 280h code segment

assume cs:code

start: mov al,--------;设置8253通道0为工作方式0,二进制计数 mov dx,io8253a out dx,al

mov dx,io8253b ;送计数初值为0FH mov al,0fh out dx,al

lll: mov al,---------;锁存命令 mov dx,io8253a out dx,al

mov dx,io8253b ;

in al,dx ;读计数初值 call disp ;调显示子程序 push dx mov ah,06h mov dl,0ffh int 21h pop dx jz lll

mov ah,4ch ;退出 int 21h

disp proc near ;显示子程序 push dx

and al,0fh ;首先取低四位 mov dl,al

cmp dl,9 ;判断是否<=9

- 2 -

jle num add dl,7 num: add dl,30h mov ah,02h int 21h

mov dl,0dh int 21h

mov dl,0ah int 21h pop dx

ret disp endp code ends end start

;若是则为'0'-'9',ASCII码加30H ;否则为'A'-'F',ASCII码加37H ;显示 ;加回车符 ;加换行符

;子程序返回

2. 实验程序之二设计如下(参考):

;******************* ;* 8253分频 * ;******************* io8253a equ 280h io8253b equ 281h io8253c equ 283h code segment

assume cs:code

start:mov dx,io8253c ;向8253写控制字

mov al,---- ;使0通道为工作方式3 out dx,al

mov ax,1000 ;写入循环计数初值1000 mov dx,io8253a out dx,al ;先写入低字节 mov al,ah

out dx,al ;后写入高字节 mov dx,io8253c

mov al,---- ;设8253通道1工作方式3 out dx,al

mov ax,1000 ;写入循环计数初值1000 mov dx,io8253b out dx,al ;先写低字节 mov al,ah

out dx,al ;后写高字节 mov ah,4ch ;程序退出 int 21h code ends end start

3.实验过程和实验结果说明

(1)按图1连接实验电路;

(2)在TPC-IDE操作环境下,用文本编辑器编辑实验源程序(work2.asm);

(3)在IDE操作环境下,对源程序(work2.asm)进行编译和连接,生成生成链接文件

(work4.obj)和可执行文件(work2.exe);

(4)运行IDE操作环境下的调试命令,调试可执行文件(work2.exe);

(5)运行IDE操作环境下的执行命令,运行可执行文件(work2.exe),结果显示为:

- 3 -

没有换行和回车代码的效果

有回车但没有换行代码的效果

没有回车但有换行代码的效果

- 4 -

有回车和换行代码的效果

实验结果符合实验程序设计要求。

- 5 -

六、实验总结

1. 对实验过程中所涉及的主要操作进行总结; 答:编写代码、调试程序、编译、运行

用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化; 2. 对实验过程中出现的主要问题进行分析并给出解决方案说明;

a) 问题主要在于对照原理图连线,如果线路连对,就为接下来的调试铺好了基础。我开始

就忘记了连接8253芯片的+5V;

b) 开始我没有IN AL,DX,所以计数器中每次脉冲减一后的数就不能传到CPU中,所以每次

按完脉冲后屏幕上数并没有减一,加上IN AL,DX后实现了自动减一计数的功能 c) 分别实验了加上回车和换行的代码,给脉冲后屏幕出现了不同的效果,见上图 3. 对比设计要求,对实验结果及完成情况进行说明;

完成了实验的基本操作要求,连线和代码编写调试。并进行了进一步实验:换行和回车代码 4. 实验后的体会、感想和建议。

答:实验中代码部分主要是对于流程图的一种理解的实现,即代码是跟着步骤走的,这是学习了微机之后的一个比较明显的体会。还有对于一些修饰性语句的应用学会了分清主次,先把基础语句打好,再对一些功能进行更改添加,还有就是多动手写代码,这样才能更清楚的认识到汇编程序的运行。

- 6 -

因篇幅问题不能全部显示,请点此查看更多更全内容