北交大本科必修课程——8254汇编与接口技术常规实验。
实验目的
掌握8254和微机接口的连接方法,了解8254的基本工作原理和编程方法。理解8254定时/计数器的各种工作方式的特点;通过观察实验波形直观地了解8254几种工作方式的异同。
实验内容
实验一
将8254计数器0设为工作方式0,计数器初值设置为N(N<0FH)。将实验台上单脉冲接到CLK0上,手动逐个输入单脉冲,用L0和示波器观察OUT0电平变化
思路:首先我们要对8254进行初始化,向命令端口283H输入方式命令00010000,来选择计数器0,只写低字节,工作方式0,二进制计数在向计数器0送计数初值3实验现象:电灯泡:电灯泡L0开始时是处于熄灭状态的,当我们手动给4个脉冲后,电灯泡变亮并持续保持亮的状态。示波器:示波器开始时处于低电平,但当我们手动给4个脉冲后示波器变为高电平并不再变化。结果分析:方式0在手动给第一个脉冲时才将初值寄存器中的数值放到减一计数器中,在第二个脉冲到来的时候才开始减所以才会出现电灯泡和示波器在N+1个脉冲后才变亮和变为高电平的现象。并且方式0在计数结束后out信号一直处于高电平,所以电灯泡和示波器才保持常亮和高电平的状态不改变。代码如下:
code segment
start :
mov dx, 283h; 命令口地址
mov al, 00010000b; 计数器0;只写低字节;2方式;二进制
out dx, al; 初始化
mov dx, 280h; 选择计数器0
mov ax, 03h; 计数器初值是3
out dx, al
code ends
end start
实验二
编写程序分别显示3工作方式下的波形。要求2方式的输出频率为1000Hz,3方式的输出频率为2000Hz。本实验使用8254的定时/计数器0,GATE0通过K1接到+5V或地,CLK0接1MHZ时钟脉冲,OUT0接示波器观测输出波形。
方式
思路:因为输入的脉冲频率为1MHZ,为了使示波器输出频率为1000HZ,我们可以计算出计数初值为1MHZ/1000HZ=1000,所以我们首先初始化,选择计数器0,先输入高字节再输入低字节,方式以二进制计数;然后向计数器输入计数初值1000。实验现象:可以在示波器上观察到1000HZ的波形和数值代码如下
code segment
start :
mov dx, 283h; 命令口地址
mov al, 00110100b; 计数器0;先低字节再高字节;2方式;二进制
out dx, al
mov dx, 280h; 选择计数器0
mov ax, 3e8h; 计数器初值1000
out dx, al; 先写低字节
mov al, ah;
out dx, al; 再写高字节
code ends
end start
方式
思路:类似于方式只不过计数初值为1MHZ/2000HZ=500代码如下:
code segment
start :
mov dx, 283h; 命令口地址
mov al, 00110110b; 计数器0;先低字节再高字节;3方式;二进制
out dx, al; 初始化
mov dx, 280h; 选择计数器0
mov ax, 1f4h; 计数器初值500
out dx, al; 先写低字节
mov al, ah
out dx, al; 再写高字节
code ends
end start
实验三
采用定时器0和定时器1的级联方式,周期性的点亮和熄灭发光二极管各0.5秒。
思路:我们知道方式二和方式三都为自动装填计数初值,并且方式三的输出波形近似为高电平:低电平=所以这里我们选择计数器0使用方式2而计数器1使用方式并将计数器0的OUT信号作为计数器1的输入时钟。因为计数器0连接的时钟信号为1MHZ,为了周期性的点亮和熄灭发光二极管各0.5秒,所以我们要产生一个周期为1s的方波,其频率为1/1s=1HZ。为了产生该1HZ的方波,所以计数器1和计数器0的计数初值之积应该等于1MHZ/1HZ=1000000,这里我们将计数器0和计数器1的计数初值都设置为1000,然后进行实验就可以得到预期的结果。
代码如下:
code segment
assume cs : code
start :
mov dx, 283h; 命令口地址
mov al, 00110100b; 计数器0,先写低字节再写高字节,方式2,2进制
out dx, al
mov dx, 280h; 计数器0
mov al, 1000; 计数初值1000
out dx, al
mov al, ah
out dx, al;
mov dx, 283h; 命令口地址
mov al, 01110110b; 计数器1,先写低字节再写高字节,方式3,2进制
out dx, al
mov dx, 281h; 计数器1
mov al, 1000; 计数初值1000
out dx, al
mov al, ah
out dx, al;
code ends
end start
实验编程提示
编写4个实验程序并分别执行。在观察各种方式的输出波形时,要分析测试结果的原因。
实验步骤
根据原理正确连接实验线路。正确理解实验原理。编写实验程序,并上机调试,观察实验结果。
思考题
观测到的0方式是怎样的波形,为什么会出现这种现象?
波形是:先是低电平持续一段时间后变为高电平。原因:当写入计数初值后,启动计数器开始计数,out信号变为低电平,并维持低电平至减法计数器的内容到达0时,停止工作,out信号变为高电平,并维持高电平。
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点