《2023年可编程定时器计数器微机实验报告.pdf》由会员分享,可在线阅读,更多相关《2023年可编程定时器计数器微机实验报告.pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、可编程定时器计数器(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 控制寄存器地址 2
2、83H 计数器 0 地址 280H 计数器 1 地址 281H CLK0连接时钟 1MHZ 2、参考流程图(见图 8、9):图 8 图 9 四、实验代码 1、图 6 电路的实验代码 CODE SEGMENT;段定义开始(CODE 段)ASSUME CS:CODE;规定 CODE 为代码段 START:MOV AL,10H;设置控制字 00010000(计数器 0,方式 0,写两个字节,二进制计数)MOV DX,283H;把控制寄存器地址放在 DX寄存器中 OUT DX,AL;将 AL的值送入 DX端口 MOV DX,280H;把计数器 0 地址放在 DX寄存器中 MOV AL,0FH;将 0F
3、H存入 AL寄存器 OUT DX,AL;将此时 AL的值送入 DX端口 LP1:IN AL,DX;从 DX端口读入 8 位,放在 AL寄存器中 CALL DISP;调用 DISP PUSH DX;将 DX内容保存到堆栈段 MOV AH,06H;将 06H存入 AH,为了下句调用 21 中断 MOV DL,0FFH;将 0FFH存入 DL INT 21H;调用 21 中断 POP DX;将 DX的内容推出栈段 JZ LP1;如果 DX的内容是 0,就跳转到 LP1 MOV AH,4CH;将 4CH存入 AH,为了下句调用 21 中断 INT 21H;调用 21 中断 DISP PROC NEAR
4、;定义一个名为 DISP 的子程序 PUSH DX;把 DX的内容保存到堆栈段中 AND AL,0FH;将 AL寄存器的内容与 0FH进行“与”运算,再把结果存入 AL中 MOV DL,AL;将 AL的值送入 DL寄存器 CMP DL,9;比较 DL中的值与 9 的大小 JLE NUM;如果 DL的值小于或等于 9 时,则跳转到 NUM ADD DL,7;将 DL的值与 7 进行相加后,再送入 DL中 NUM:ADD DL,30H;将 DL的值与 30H进行相加后,再送入 DL中 MOV AH,02H;将 02H存入 AH INT 21H;调用 DOS21中断 MOV DL,0DH;结合“MO
5、V AH,02H”就是说输出 0DH INT 21H;调用中断指令 MOV DL,0AH;结合“MOV AH,02H”就是说输出 0AH INT 21H;调用 DOS21中断 POP DX;将 DX的内容推出栈段 RET;子程序在功能完成后返回调用程序继续执行 DISP ENDP;子程序结束 CODE ENDS;代码段结束 END START;程序结束 2、图 7 电路的实验代码 CODE SEGMENT;段定义开始(CODE 段)ASSUME CS:CODE;规定 CODE 为代码段 START:MOV DX,283H;把控制寄存器地址放在 DX寄存器中 MOV AL,36H;设置控制字 0
6、0110110(计数器 0,方式 3,写两个字节,二进制计数)OUT DX,AL;将 AL的值送入 DX端口 MOV AX,1000H;该语句是立即寻址方式,就是把 1000H这个数赋给 AX MOV DX,280H;把计数器 0 地址放在 DX寄存器中 OUT DX,AL;将 AL的值送入 DX端口 MOV AL,AH;将 AX的高 8 位存入 AL寄存器中 OUT DX,AL;将此时 AL的值送入 DX端口 MOV DX,283H;把端口地址放在 DX寄存器中 MOV AL,76H;设置控制字 01110110(计数器 1,方式 3,写两个字节,二进制计数)OUT DX,AL;将 AL的值
7、送入 DX端口 MOV AX,1000H;把 1000H赋给 AX 上显示并同时用逻辑笔观察电平变化当输入个脉冲后变高电平图按图连接电路将计数器计数器分别设置为方式计数初 图见图图四实验代码图图电路的实验代码段定义开始段规定为代码段设置控制字计数器方式写两个字节二进制计数把 口读入位放在寄存器中用将内容保存到堆栈段将存入为了下句调用中断将存入调用中断将的内容推出栈段如果的内容 MOV DX,281H;把端口地址放在 DX寄存器中 OUT DX,AL;将 AX的低 8 位送入 DX端口 MOV AL,AH;将 AX的高 8 位存入 AL寄存器中 OUT DX,AL;将 AL的值送入 DX端口 M
8、OV AH,4CH;将 4CH存入 AH INT 21H;调用 DOS21中断 CODE ENDS;代码段结束 END START;程序结束 五、实验总结 通过实验,学会 8253 芯片和微机接口原理和方法,掌握 8253 定时器/计数器的基本工作原理、工作方式和编程原理,熟悉汇编代码的编写。实验中,连接电路,利用代码控制实验电路,深对课本理论的理解。上显示并同时用逻辑笔观察电平变化当输入个脉冲后变高电平图按图连接电路将计数器计数器分别设置为方式计数初 图见图图四实验代码图图电路的实验代码段定义开始段规定为代码段设置控制字计数器方式写两个字节二进制计数把 口读入位放在寄存器中用将内容保存到堆栈段将存入为了下句调用中断将存入调用中断将的内容推出栈段如果的内容