您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 最新北京工业大学-微机接口--实验3报告
精品文档精品文档3.38253基础实验一、实验目的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、程序;这是自动生成的代码模板STACKSSEGMENTSTACK;堆栈段DW128DUP(?);注意这里只有128个字节STACKSENDSDATASSEGMENT;数据段;请在这里定义您的数据DATASENDSCODESSEGMENT;代码段ASSUMECS:CODES,DS:DATASSTART:MOVAX,DATAS;初始化MOVDS,AX;请在这里添加您的代码MOVDX,28BHMOVAL,00110111B;8253控制字设置计数器0OUTDX,ALMOVDX,288HMOVAX,00H;设置计数器0初值OUTDX,ALMOVAL,10HOUTDX,ALMOVDX,28BHMOVAL,01110111B;8253控制字设置计数器1精品文档精品文档OUTDX,ALMOVDX,289HMOVAL,00H;设置计数器1初值OUTDX,ALMOVAL,10HOUTDX,ALCODESENDSENDSTART2、程序;这是自动生成的代码模板STACKSSEGMENTSTACK;堆栈段DW128DUP(?);注意这里只有128个字节STACKSENDSDATASSEGMENT;数据段;请在这里定义您的数据DATASENDSCODESSEGMENT;代码段ASSUMECS:CODES,DS:DATASSTART:MOVAX,DATAS;初始化MOVDS,AX;请在这里添加您的代码MOVAL,00010100B;0通道设置为方式2MOVDX,28BHOUTDX,ALMOVAL,5;0通道初值设为5MOVDX,288HOUTDX,ALCODESENDSENDSTART精品文档精品文档开始8253初始化8255A初始化:A口方式1输出允许A口中断A口输出LED状态数据读C口PC3=1?取LED下一状态NY3、程序;这是自动生成的代码模板STACKSSEGMENTSTACK;堆栈段DW128DUP(?);注意这里只有128个字节STACKSENDSDATASSEGMENT;数据段;请在这里定义您的数据DATASENDSCODESSEGMENT;代码段ASSUMECS:CODES,DS:DATASSTART:MOVAX,DATAS;初始化MOVDS,AXMOVDX,28BH;8253A初始化MOVAL,00110110BOUTDX,ALMOVDX,288HMOVAX,1000OUTDX,ALMOVAL,AHOUTDX,ALMOVDX,28BHMOVAL,01110110BOUTDX,ALMOVDX,289H精品文档精品文档MOVAX,1000OUTDX,ALMOVAL,AHOUTDX,ALMOVCL,0FFHMOVAH,00000001BMOVAL,10100000BMOVDX,283HOUTDX,ALMOVAL,0DH;pC6置一OUTDX,ALAGAIN:MOVAL,AHMOVDX,280HOUTDX,AL;A口输出LED状态数据MOVDX,282HREADC:INAL,DX;读C口ROLAL,4;左移4位,使PC3位于最高位,以便判断是否为1CMPAL,10000000BJBREADC;小于1,说明时钟周期还没到来,继续读C口ROLAH,1;否则读取下一LED状态(通过左移来实现)JMPAGAIN;请在这里添加您的代码CODESENDSENDSTART四、实验结果1、精品文档精品文档2、3、精品文档精品文档五、六、实验小结思考题:1、如果不加非门,则会变成L0灯一直是亮的,每按5次灭一次;2、3、如果连接的是负脉冲信号,结果不变。小结:在这次实验中,前两个实验进展的很顺利;在做跑马灯的时候,由于对8255A方式1的工作原理不太了解,对流程图产生了一些疑问,特别是PC3=1那里,后来看了8255A方式1的工作图解后,有了一定的了解,最终顺利的完成了程序的设计。
本文标题:最新北京工业大学-微机接口--实验3报告
链接地址:https://www.777doc.com/doc-5655741 .html