北京工业大学 微机接口实验3报告.docx
北京工业大学 微机接口 实验3报告3.3 8253基础实验 一、实验目的 1、进一步熟悉GX-8000实验系统 2、进一步熟悉汇编语言程序的设计、调试过程。 3、掌握可编程定时器/计数器芯片8253的工作原理和编程方法。 二、实验内容 1、产生周期为1秒的方波信号,用逻辑笔观察输出结果 2、脉冲计数器:对单脉冲按钮进行计数,按下5次,L0点亮;可重复计数 3、跑马灯 1) 8个LED循环点亮; 2) 循环方式为:L0->L1->L2->L3->L4->L5->L6->L7->L1->L2.;每隔1秒LED状态变化一次; 3) 使用8255A和8253实现 三、实验程序 1、程序 ;这是自动生成的代码模板 STACKS SEGMENT STACK ;堆栈段 DW 128 DUP(?) ;注意这里只有128个字节 STACKS ENDS DATAS SEGMENT ;数据段 ;请在这里定义您的数据 DATAS ENDS CODES SEGMENT ;代码段 ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS ;初始化 MOV DS,AX ;请在这里添加您的代码 MOV DX, 28BH MOV AL, 00110111B; 8253控制字 设置计数器0 OUT DX, AL MOV DX, 288H MOV AX ,00H;设置计数器0初值 OUT DX, AL MOV AL, 10H OUT DX, AL MOV DX, 28BH MOV AL, 01110111B ; 8253控制字 设置计数器1 OUT DX, AL MOV DX, 289H MOV AL, 00H ; 设置计数器1初值 OUT DX, AL MOV AL, 10H OUT DX, AL CODES ENDS END START 2、程序 ;这是自动生成的代码模板 STACKS SEGMENT STACK ;堆栈段 DW 128 DUP(?) ;注意这里只有128个字节 STACKS ENDS DATAS SEGMENT ;数据段 ;请在这里定义您的数据 DATAS ENDS CODES SEGMENT ;代码段 ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS ;初始化 MOV DS,AX ;请在这里添加您的代码 MOV AL, 00010100B ; 0通道设置为方式2 MOV DX, 28BH OUT DX, AL MOV AL, 5 ;0通道初值设为5 MOV DX, 288H OUT DX, AL CODES ENDS END START 开始8253初始化8255A初始化:A口方式1输出允许A口中断A口输出LED状态数据读C口NPC3=1?Y取LED下一状态3、程序 ;这是自动生成的代码模板 STACKS SEGMENT STACK ;堆栈段 DW 128 DUP(?) ;注意这里只有128个字节 STACKS ENDS DATAS SEGMENT ;数据段 ;请在这里定义您的数据 DATAS ENDS CODES SEGMENT ;代码段 ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS ;初始化 MOV DS,AX MOV DX, 28BH ;8253A初始化 MOV AL, 00110110B OUT DX, AL MOV DX, 288H MOV AX ,1000 OUT DX, AL MOV AL, AH OUT DX, AL MOV DX, 28BH MOV AL, 01110110B OUT DX, AL MOV DX, 289H MOV AX ,1000 OUT DX, AL MOV AL, AH OUT DX, AL MOV CL, 0FFH MOV AH ,00000001B MOV AL, 10100000B MOV DX, 283H OUT DX, AL MOV OUT AGAIN: MOV MOV OUT MOV READC: IN ROL 1 CMP JB ROL JMP ;请在这里添加您的代码 CODES ENDS END 四、实验结果 1、 AL ,0DH ;pC6置一 DX, AL AL, AH DX,280H DX, AL ;A口输出LED状态数据 DX, 282H AL, DX ;读C口 AL, 4 ;左移4位,使PC3位于最高位,以便判断是否为 AL, 10000000B READC ;小于1,说明时钟周期还没到来,继续读C口 AH, 1 ;否则读取下一LED状态 AGAIN START 2、 3、 五、实验小结 思考题: 1、如果不加非门,则会变成L0灯一直是亮的,每按5次灭一次; 2、如果连接的是负脉冲信号,结果不变。 小结: 在这次实验中,前两个实验进展的很顺利;在做跑马灯的时候,由于对8255A方式1的工作原理不太了解,对流程图产生了一些疑问,特别是PC3=1那里,后来看了8255A方式1的工作图解后,有了一定的了解,最终顺利的完成了程序的设计。