实验七 8254定时/计数器实验
7.1 实验目的
(1) 掌握8254的典型应用电路接法。 (2) 掌握8254的工作方式及应用编程。
7.2 实验设备
PC微机一台、TD-PIT+实验系统一套、示波器。
7.3 实验内容
(1) 编程实现将8254定时/计数器1设计为产生频率为250HZ方波的方波发生器,定时/计数器2 设计为将定时/计数器1的输出进行4分频的速率波发生器。系统提供的时钟CLK频率为1MHz。
(2)*编写程序实现对外部事件进行计数,计数初值定为5。将8254的计数器0的CLK0与单脉冲信号KK1+相连,单次脉冲单元中按钮KK1为单脉冲发生按钮,每按一次产生一个单脉冲。GATE0接+5V,OUT0接至LED显示单元显示,观察现象。
注: 方式0的工作特点:
1. 当写入控制字后,OUT信号变为低电平。计数由软件启动,每次写入计数初值,只启动一次计数,当计数到0后,并不恢复计数初值,也不重新开始计数,OUT保持高电平。只有再次写入计数初值,OUT才变低电平,才开始新一轮计数。
2. CPU写计数初值到计数初值寄存器CR后,CR内容并不立即装入计数工作单元CE,而是在其后的下一个CLK脉冲的下降沿才将CR的内容装入CE,对该CLK脉冲并不计数,因此,若计数初值为N,则必须在出现N+1个CLK脉冲之后,OUT才变高电平。
(3)* 编程实现将8254定时/计数器1、定时/计数器2设计为方波发生器,定时/计数器2输出1Hz的方波,控制发光二极管LED定时一秒亮一次。系统提供的时钟CLK频率为1MHz。
7.4 实验步骤
1. 电路设计
图7-1 8254实验1接线图(示波器探头小夹子接地)
*图7-2 8254实验3接线图
2. 编程提示
(1) 8254控制字格式:
D7 D6 D5 D4 D3 D2 D1 D0 计数器选择 读/写格式选择 工作方式选择 计数码制选择 00:计数器 0 00:当前计数值锁存 000:方式 0;100: 方式 4 0:计数值为二进制01:计数器 1 01:读/写低字节 001:方式 1;101: 方式 5 格式 10:计数器 2 10:读/写高字节 X10:方式 2 1:计数值为BCD码 11:读出控制字 11:先读/写低字节, X11:方式 3 格式 标志 后读/写高字节
(2) 计数初值N = fCLK/fOUT = TOUT/TCLK
(3) 8254的初始化编程步骤 ① 送控制字到控制端口;
② 送计数初值到计数器端口。设置初始值时,应与控制字中的格式规定一致,当控制字中设置只读/写高字节或只读/写低字节时,初始值是1字节。当控制字中设置先读/写低字节后读/写高字节时,初始值为2字节,分两次传送。
3. 程序设计及运行
(1) 开机,屏幕出现提示 “Microsoft Windows 2000 Professional.
从虚拟启动软盘启动。” 选择“从虚拟启动软盘启动”,再次出现提示
“ 1.Start computer with CD-ROM support. 2.Start computer without CD-ROM support. 3.View the Help file.” 选择2。启动后出现提示“A:\\ >”。
A:\\ > E: ;下划线处是要从键盘输入的命令
E:\\ > CD TANGDU\\PIT-ASM ;进入E盘TANGDU\\PIT-ASM子目录操作 (2) E:\\ TANGDU\\PIT-ASM > CHECK
运行CHECK程序,查看并记录与片选信号对应的I/O端口始地址: H 。 (3) 编辑源程序:E:\\ TANGDU\\PIT-ASM > EDIT 程序名.ASM 。 (4) 编译程序: E:\\ TANGDU\\PIT-ASM > TASM 程序名.ASM 。
(5) 连接程序: E:\\ TANGDU\\PIT-ASM > LINK 程序名.OBJ ; 。(加“;”跳过提示问题) (6) 运行程序: E:\\ TANGDU\\PIT-ASM > 程序名.EXE 。
7.5 思考题
1. 实验1中,计数器1、计数器2的计数初值各为多少?
2. 通过示波器观察实验1的输出波形,画出波形图。