8254方式3的秒脉冲实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大连理工大学实验报告
实验室(房间号):420 实验台号码:16 班级:姓名:
指导教师签字:成绩:
实验四8254方式3的秒脉冲实验
一、实验目的和要求
1.掌握8254工作方式的基本原理、计数特点和编程方法。
2.利用8254实验秒脉冲信号的输出。
二、实验原理和内容
1.实验内容
利用8254,将1MHz的方波信号变化成1Hz的秒脉冲信号。
要求:1).8254的片选地址为200h-20fh。
2).8254的计数器0的地址为200H,计数器1的地址为201H,计数器
2的地址是202H,控制寄存器的地址是203H。
3).CLK0链接时钟1MHz,由计数器0进行10000分频后得到100Hz的
信号,然后再用计数器1进行100分频就得到了1Hz的信号频率。
4).用逻辑笔连接OUT1,观看分频后的效果。
2.实验原理
1). 8254相关地址的连线
A.地址端口的接线
本次实验在实验板上操作,8254与CPU间的连接线已经固化,因此只需要将8254的片选段与实验板上的200H-20FH端口用导线连起来就可以了。
B.时钟与输出
8254的CLKO与时钟电路的“1MHz”输出端连接,由计数器0进行10000分频后得到100Hz的信号在OUT0输出;OUT0与CLK1连接,再由计数器1进
行100分频就得到了1Hz的信号;最后OUT1与逻辑笔电路的输入相连,观察
输出现象。GATE0、GATE1均与+5V电压连接。
2).8254的程序控制
先对8254的控制端口写控制命令,接着对相应的端口写计数初值。对于10000
分频,采用BCD码形式计数,则计数初值为0;对于100分频,采用十六进制
形式计数,则计数初值为100。
三、实验电路图
四、算法流程图
五、程序清单
.model small
.386
IO_ADRESS EQU 200H ;宏定义,计数器的地址一次是200-202h
DATA SEGMENT
D1 DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DA TA
MOV DS, AX
MOV DX, IO_ADRESS+3 ;写控制寄存器,
MOV AL, 00110111B ;计数器0方式3BCD码计数
OUT DX, AL
MOV DX, IO_ADRESS
MOV AL,0 ;实际计数10000次
OUT DX, AL ;低八位
OUT DX, AL ;高八位
MOV DX, IO_ADRESS+3
MOV AL,01010110B ;计数器1方式二进制计数
` OUT DX, AL
MOV DX, IO_ADRESS+1
MOV AL,100
OUT DX, AL ;100用低八位就足够了
DDD: JMP DDD
CODE ENDS
END START
六、实验结果与分析
连好接线,运行程序,可以看到逻辑笔的红黄灯交替闪,目测频率正确,实验完成。
七、实验体会和建议
本次实验学习了8254芯片的方式3模式。8254的方式3为方波发生器方式,利用此方式可以较为方便的产生各种频率的方波。本实验CLK0断接1MHz时钟,用计数器0分频为100Hz,再用计数器1分频为1Hz,实现了秒脉冲。编程过程中,要特别注意DX寄存器的值,每次输入输出的时候,先查看DX的值,看是否存的是需要的地址,防止出错。同时,写控制字的时候要理解每位二进制代表的意义。