预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

可编程定时器/计数器(8253) 一、实验目的 1)学会8253芯片和微机接口原理和方法。 2)掌握8253定时器/计数器的基本工作原理、工作方式和编程原理。 二、实验内容 按图6虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH), 用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0 电平变化(当输入N+1个脉冲后OUT0变高电平)。 图6 按图7连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为 1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。 图7 三、编程提示 1、8253控制寄存器地址283H 计数器0地址280H 计数器1地址281H CLK0连接时钟1MHZ 2、参考流程图(见图8、9): 开始开始 设计数器0为设计数器0为 工作方式0工作方式3 送计数器初值向计数器0送初值1000 先送低字节后送高字节 读计数器值设计数器1为 工作方式3 显示计数值 向计数器1送初值1000 先送低字节后送高字节 有键按下吗?N Y结束 结束 图8图9 四、实验代码 1、图6电路的实验代码 CODESEGMENT;段定义开始(CODE段) ASSUMECS:CODE;规定CODE为代码段 START:MOVAL,10H;设置控制字00010000(计数器0,方式0,写两个字节, 二进制计数) MOVDX,283H;把控制寄存器地址放在DX寄存器中 OUTDX,AL;将AL的值送入DX端口 MOVDX,280H;把计数器0地址放在DX寄存器中 MOVAL,0FH;将0FH存入AL寄存器 OUTDX,AL;将此时AL的值送入DX端口 LP1:INAL,DX;从DX端口读入8位,放在AL寄存器中 CALLDISP;调用DISP PUSHDX;将DX内容保存到堆栈段 MOVAH,06H;将06H存入AH,为了下句调用21中断 MOVDL,0FFH;将0FFH存入DL INT21H;调用21中断 POPDX;将DX的内容推出栈段 JZLP1;如果DX的内容是0,就跳转到LP1 MOVAH,4CH;将4CH存入AH,为了下句调用21中断 INT21H;调用21中断 DISPPROCNEAR;定义一个名为DISP的子程序 PUSHDX;把DX的内容保存到堆栈段中 ANDAL,0FH;将AL寄存器的内容与0FH进行“与”运算,再把结果存 入AL中 MOVDL,AL;将AL的值送入DL寄存器 CMPDL,9;比较DL中的值与9的大小 JLENUM;如果DL的值小于或等于9时,则跳转到NUM ADDDL,7;将DL的值与7进行相加后,再送入DL中 NUM:ADDDL,30H;将DL的值与30H进行相加后,再送入DL中 MOVAH,02H;将02H存入AH INT21H;调用DOS21中断 MOVDL,0DH;结合“MOVAH,02H”就是说输出0DH INT21H;调用中断指令 MOVDL,0AH;结合“MOVAH,02H”就是说输出0AH INT21H;调用DOS21中断 POPDX;将DX的内容推出栈段 RET;子程序在功能完成后返回调用程序继续执行 DISPENDP;子程序结束 CODEENDS;代码段结束 ENDSTART;程序结束 2、图7电路的实验代码 CODESEGMENT;段定义开始(CODE段) ASSUMECS:CODE;规定CODE为代码段 START:MOVDX,283H把控制寄存器地址放在;DX寄存器中 MOVAL,36H;设置控制字00110110(计数器0,方式3,写两个字节, 二进制计数) OUTDX,AL;将AL的值送入DX端口 MOVAX,1000H;该语句是立即寻址方式,就是把1000H这个数赋给AX MOVDX,280H;把计数器0地址放在DX寄存器中 OUTDX,AL;将AL的值送入DX端口 MOVAL,AH;将AX的高8位存入AL寄存器中 OUTDX,AL;将此时AL的值送入DX端口 MOVDX,283H;把端口地址放在DX寄存器中 MOVAL,76H;设置控制字01110110(计数器1,方式3,写两个字节, 二进制计数) OUTDX,AL;将AL的值送入DX端口 MOVAX,1000H;把1000H赋给AX MOVDX,281H;把端口地址放在DX寄存器中 OUTDX,AL;将AX的低8位送入DX端口 MOVAL,AH;将AX的高8位存入AL寄存器中 OUTDX,AL;将AL的值送入DX端口 MOVAH,4CH;将4CH存入AH INT21H;调用DOS21中断 CODEENDS;代码段结束 ENDSTART;程序结束 五、实验总结 通过实验,学会8253芯片和微机接口原理和方法,掌握8253定时器/计数