资源预览内容
第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
第9页 / 共19页
第10页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
微机原理与接口技术课程设计报告2009-2010学年第二学期设计题目: 计数器系统设计 赵宇 郝忠飞 蒋广涛小组成员: _计算机科学与技术所学专业: _高国红指导教师: _2010-06-02完成时间: _目 录第1章 内容提要1第2章 正文22.1 课程设计目的22.2 系统的主要功能及使用方法22.3 硬件电路设计与描述32.4 软件设计流程与描述42.5 源程序代码5第3章 结论16第4章 参考文献1717第1章 内容提要微机原理与接口技术是一门实践性和实用性都很强的课程,学习的目的在于应用。本课程设计的题目是计数器系统设计,基于精简的8086CPU实验平台而设计开发,用到的主要器件为可编程并行接口8255A、中断控制器8259A、计数器/定时器8253和共阴4位7段数码管。基于本实验平台,本设计的基本思想是通过对计数器/定时器8253的初始化使其工作在计数器2的方式0,并给予计数初值,GATE门位拉高,在2MHZ的时钟控制下使其在一毫秒后,计数初值减为0,从而使OUT2从低电平转为高电平,这样就产生了一个上升沿的中断触发信号,传给中断控制器8259A的IRQ7(7号中断),产生一个中断并执行中断服务程序。在这一中断服务程序中把事先存放在内存中的数码管显示所需要的数据从内存中读出,送给可编程并行接口8255A的A口,然后从其B口把数据送给数码管,并且编程控制其PC0-PC3口,用以控制数码管的位线。为实现上述功能,要把可编程并行接口8255A初始化为方式0(基本的输入输出方式)的A口入,B口出状态。把中断控制器8259A的中断触发方式置为上升沿触发,并打开它的7号、6号、以及3号(5号中断线与6号中断线靠的太近,不容易连线)中断。中断控制器8259A的6号中数据接KK1的上升沿,用以使数码管显示的数据清0,并将连接到蜂鸣器的可编程并行接口8255A的PC6拉高1秒钟,产生清0报警的功能。3号中断接KK2的上升沿,用以实现计数的调整功能。另外为了实现每1毫秒计数器/定时器8253都能产生一个OUT2由低到高的上升沿送给中断控制器8259A产生一次中断,需要在每一次进入中断服务程序时再次对计数器/定时器8253初始化一次。具体实现见以后章节。第2章 正文2.1 课程设计目的微机原理与接口技术是一门实践性和实用性都很强的课程,学习的目的在于应用。通过对本计数器实验,进一步加强对8253、8255、8259等各芯片的学习与掌握,深化对课本知识的理解与实际运用。这次实验起到巩固课堂和书本上所学知识,加强综合能力,提高系统设计水平,启发创新思想的效果。通过本课程设计我们将达到以下目地:1 培养资料搜集和汇总的能力。2 培养总体设计和方案论证的意识。3 提高硬件、软件设计与开发的综合能力。4 对8253、8255、8259、LED8段数码管等的理解与运用2.2 系统的主要功能及使用方法主要功能:用汇编语言对并行接口8255A、定时器8253和中断控制器8259A编程,通过8253的方式0产生中断信号,送给8259A(上升沿触发),执行相应的中断服务程序,从内存中把要在LED上显示的数据读出,经8255送与LED数码管显示当前计数数值,数值从0000开始,大约每1秒钟变化一次。8255的PC0PC4控制数码管的位选线。并具有数值调整、清零报警和暂停计数功能,输入和定时中断LED7的开关为高时开始计时,为低时停止计时,KK1闭合时间清0,并发出警报声。按KK2实现调数功能。使用方法:系统加电运行程序后,将8253的GATE门位所连接的开关打开,使之为高电平状态,计数开始。将8259的6号中断所连接的KK1按键反复按下,对LED显示的数值进行调整。将8259的7号中断所连接的KK2按键按下,实现计数清零并伴随1秒的响铃提醒。将8253的GATE门位所连接的开关关闭,使之为低电平状态,计数暂停。2.3 硬件电路设计与描述图2.3.1如图2.3.1所示,芯片8359打开了3个中断,分别为IRQ7、IRQ6、IRQ3三个中断入口。其中IRQ7连接到芯片8253的OUT2端口。芯片8253工作在计数器2的方式0模式,它的CLK2端接2Mhz的时钟信号源,GATE位接一个拔动开关,以控制计数的开始和暂停,GATE位为高电平时,每一个时钟信号使8253的计数初值减1,当计数初值减为0时,OUT2的输出由低电平转为高电平,经IRQ7送8259一个上升沿中断触发信号,执行一段中断服务程序。芯片8255 D0D7(系统内部已经连好)用以从内存中把数码管所要显示的数据从内存中读出,它的PB0PB7接数码管的8位数据线(段选线),PC0PC3接数码管的4根位选线,利用人眼的视觉残留效应,每1毫秒内把四个数码管轮流点亮一次,使每个数码管都显示不同的数据,但由于人眼分别不出这种变化,总体效果就是,数码管同时在亮,但每一个显示的数据却不同。2.4 软件设计流程与描述1ms中断BX判断中断1000次DX加1,BX清0初始化中断结束数码管显数模块图2.4.1/关CPU中断2.5 源程序代码CLIMOV AX,IRQ7 ENTRANCE设置8259A的7号中断服务程序的入口地址。MOV SI,003CHMOV SI,AXMOV AX,0000HMOV SI,003EHMOV SI,AXMOV AX,IRQ6 ENTRANCE设置8259A的6号中断服务程序的入口地址。MOV SI,0038HMOV SI,AXMOV AX,0000HMOV SI,003AHMOV SI,AXMOV AX,IRQ3 ENTRANCE设置8259A的3号中断服务程序的入口地址。MOV SI,002cHMOV SI,AXMOV AX,0000HMOV SI,002EHMOV SI,AX设置8259A的ICW1,LTIM=0 边沿触发,需要设置ICW4。MOV AL,13HOUT 20H,AL设置8259A的ICW2,为08。和实验平台上的中断入口地址一致。MOV AL,08HOUT 21H,AL设置8259A的ICW4,AEOI=1,中断自动结束方式。MOV AL,03HOUT 21H,ALIN AL,21H打开8259A的7号、6号、3号中断。AND AL,37HOUT 21H,AL初始化8255A,方式0(基本的输入输出方式)的A口入,B口出状态。MOV AL,90HOUT 63H,ALMOV AL,B0HOUT 43H,AL初始化8253,计数器2工作在方式0,计数初值为2000。MOV AX,2000HOUT 42H,ALMOV AL,AHOUT 42H,ALMOV AX,0000H设置程序的段地址。BX和DX清0。MOV DS,AXMOV BX,0000HMOV DX,0000HA1:STI程序循环,等中断,4个CALL用以在计数停止时,数码管也能继续显示数据。HLTCALL PROC1CALL PROC2CALL PROC3CALL PROC4JMP A1/ 8259A的7号中断服务程序/ 重新初始化8253。INITIAL 8253A ONCE MORE产生1毫秒中断后,用软件延时,使其1秒后才能执行此中断服务程序。INC BXCMP BX,0100HJNZ A2INC DXMOV BX,0000H8255A的PC6拉低,使蜂鸣器不再响。MOV AL,OCHOUT 63H,ALA2:DX会从0000一直到FFFF,所以要对DX中的数进行处理,达到每一位增至9的时候能产生向前的进位。CALL PROC5CALL PROC6CALL PROC7CALL PROC8CALL PROC1四个CALL语句将要显示的数据从内存中读出,并送至数码管。CALL PROC2CALL PROC3CALL PROC4IRET8259A的6号中断服务程序,清0,并将8255的PC6拉高,使蜂鸣器发声。MOV AL,0DHOUT 63H,ALMOV DX,0000HIRET8259A的3号中断服务程序。调时功能。INC DXIRET/PROC1MOV AL,00HOUT 63H,ALMOV AL,03H8255A的PC0 拉低,点亮第1个数码管OUT 63H,ALMOV AL,05HOUT 63H,ALMOV AL,07HOUT 63H,ALPUSH AXPUSH DXAND DX,000FHADD DX,4000HMOV SI,DXMOV AL,SIOUT 61H,ALPOP DXPOP AXPUSH CXMOV CX,2000HP1:LOOP P1POP CXRET/PROC2MOV AL,01HOUT 63H,AL8255A的PC1 拉低,点亮第2个数码管MOV AL,02HOUT 63H,ALMOV AL,05HOUT 63H,ALMOV AL,07HOUT 63H,ALPUSH AXPUSH BXPUSH DXAND DX,00F0HMOV AX,DXMOV BL,0FHDIV BLAND AH,00HAND AL,0FHADD AX,4000HMOV SI,AXMOV AL,SIOUT 61H,ALPOP DXPOP BXPOP AXPUSH CXMOV CX,2000HP2:LOOP P2POP CXRET/PROC3MOV AL,01HOUT 63H,ALMOV AL,03H8255A的PC2 拉低,点亮第3个数码管OUT 63H,ALMOV AL,04HOUT 63H,ALMOV AL,07HOUT 63H,ALPUSH AXPUSH BXPUSH DXAND DX,0F00HMOV AX,DXMOV BL,0FFHDIV BLAND AH,00HAND AL,0FHADD AX,4000HMOV SI,AXMOV AL,SIO
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号