微机原理课设36123977.doc

上传人:仙人指路1688 文档编号:2882009 上传时间:2023-03-01 格式:DOC 页数:21 大小:297.50KB
返回 下载 相关 举报
微机原理课设36123977.doc_第1页
第1页 / 共21页
微机原理课设36123977.doc_第2页
第2页 / 共21页
微机原理课设36123977.doc_第3页
第3页 / 共21页
微机原理课设36123977.doc_第4页
第4页 / 共21页
微机原理课设36123977.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《微机原理课设36123977.doc》由会员分享,可在线阅读,更多相关《微机原理课设36123977.doc(21页珍藏版)》请在三一办公上搜索。

1、目录摘要第1章 设计任务描述11.1 设计题目11.2 设计内容11.2.1 设计目的 11.2.2 设计要求 11.3 设备器材11.4 任务分析1第2章 主要元器件32.1 8255并口芯片32.2 8254定时器计数器的功能介绍 42.2.1 8254的引脚图 42.2.2 8254的控制字寄存器的格式及初始化编程 6第3章 程序分步说明7第4章 设计原理流程图 11第5章 实际硬件接线图 12第6章 源代码 13总结17致谢 18参 考 文 献 19摘 要当代计算机是微电子学与计算数学相结合的产物。微电子学的基本元件及其集成电路构成了它的硬件基础;计算数学的方法与数据结构则构成了计算机

2、的软件基础。 世界上第一台计算机于1946年在美国宾夕法尼亚大学诞生,自1981年IBM公司推出IBMPC后,计算机的发展进入了微机时代。微型计算机的迅速普及,使得计算机广泛运用于工业、农业、科学技术和社会生活的各个领域,极大的改变了生产和生活的方式,并成为推动社会发展的巨大生产力。 报警系统逐渐成为我们日常生活中重要的一部分,对于各种突发状况,报警器可以起到一个将危险控制到萌芽的状态,对其进行及时有效的处理。应用CPU对8255、8254、8259进行控制,该系统可以实现按动开关报警器报警,LED闪动,数码管显示房间号,最后可用8259进行清零。关键词 8255芯片,8254芯片,8259

3、中断第1章 设计任务描述1.1 设计题目模拟医院报警系统设计1.2 设计内容1.2.1 设计目的通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。为以后学生结合专业从事微机应用设计奠定基础。1.2.2 设计要求内容:利用微机原理实验箱,采用一组发光二极管来模拟报警灯。要求:1.采用8个开关为8个病房的开关,当有人按下时立即在8个发光二级管上显示出来,并且该位置闪动,同时发出警报,并通过一个数码管显示出来。2.警报有8254控制一个扬声器发出。3.

4、设置一个警报清除按键,通过8259中断进入,清除所有报警情况。1.3 设备器材(1)PC微机一台 用于对程序的编译测试等,同时还需要对实验设备进行控制,提供整个程序的运行平台,并且收集和释放硬件信号,实现程序功能。(2)微机原理实验箱一台 此设备必须有8254芯片、8255芯片、8259芯片,且能通过接受PC机传来的信息,显示出相应的功能。(3)导线若干条 用于电路和芯片之间的连接。1.4 任务分析查阅定时器计数器8254、8255、8259、数码管、LED、开关控制等其他相关资料。用简单的输入输出端口等硬件,结合完善医院的报警器设计。内容:利用微机原理实验系统的发声单元及扬声器、数码显示单元

5、等来实现报警器的功能。要求: 1.采用8个开关为8个病房的开关,当有人按下时立即在8个发光二级管上显示出来,并且该位置闪动,同时发出警报,并通过一个数码管显示出来。 2.警报有8254控制一个扬声器发出。 3.设置一个警报清除按键,通过8259中断进入,清除所有报警情况。实现:应用定时器计数器8254、8255、8259、开关、LED等模块实现医院报警器的报警系统。第2章 主要元器件介绍2.1 8255并口芯片8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A,B,C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0,方式1,方式2。方式0是基本输入

6、输出方式,方式1是选通输入输出方式,方式2是双向选通工作方式。其工作方式控制字如图2-1。在医院报警系统中,8255起到是一个桥梁作用,在本系统中,8255采用方式0基本输入输出方式,A口,B口,C口均为输出。8255的D0-D7连接系统总线的XD0-XD7,RD,WD,CS分别连接系统总线的XIOR,XIOW,IOY0。8255的A口低两位PA0,PA1控制8254可编程定时/计数器芯片。8255的B口的PB0-PB7和C口的低四位PC0-PC3来控制数码的显示。图2.1 8255的控制字图图2.2 内部结构及引脚如图2.2所示,D0D7为双向数据信号线,用来传送数据和控制字。为读信号线,与

7、其他信号线一起实现对8255接口的读操作。通常接系统总线的信号。 为写信号线,与其他信号一起实现对8255的写操作,通常接系统总线的。 为片选信号线,当它为低电平时,才能选中该8255芯片,也才能对8255进行操作。A0、A1为口地址选择信号线。本次设计使其分别与系统总线的XA1、XA2相连,它们的不同编码可分别寻址3个口和一个控制寄存器,具体规定如下:表2.1 A0、A1 说明A1A0选择00A口01B口10C口11控制寄存器 RESET为复位输入信号。此端上的高电平可使8255复位。复位后,8255的A口、B口和C口均被定义为输入状态。PA0PA7为A口的8条输入输出信号线,该口的这8条线

8、是工作于输入、输出还是双向(输入、输出)方式,可由软件编程来决定。PB0PB7为B口的8条输入输出信号线,利用软件编程可指定这8条线是输入还是输出。这里的8255接口所占地址范围为0640H0646H。当对8255接口进行写操作时,各信号线的状态如表所示:表2.2信号线的状态说明CSA1A0IORIOW操作00010写A口00110写B口01010写控制寄存器01110写C口2.2 8254定时器计数器的功能介绍 2.2.1 8254的引脚图图2.3 8254的引脚图上图是8254 的引脚图。8254的引脚可分为两部分。一部分使用于微机系统接口的信号线,包括数据线D7至D0,读写和片选信号线,

9、端口选择信号线,这些信号线组合起来控制8254的控制字寄存器 计数器0 计数器1 计数器2的读或写。为读信号线,与其他信号线一起实现对8254接口的读操作。通常接系统总线的信号。为写信号线,与其他信号一起实现对8254的写操作,通常接系统总线的。为片选信号线,当它为低电平时,才能选中该8254芯片,也才能对8255进行操作。A0、A1为口地址选择信号线。本次设计使其分别与系统总线的XA1、XA2相连,它们的不同编码可分别寻址3个口和一个控制寄存器,具体规定如下:表2.3 A0、A1的的读写操作A1A0读操作(RD)写操作(WR)00读计数器0写计数器001读计数器1写计数器110读计数器2写计

10、数器211无操作写方式控制字 另一部分是8254与外设接口的信号线,。每个通道有三条:(1)CLK:计数器时钟输入。在计数过程中,此引脚上每输入一个时钟脉冲信号(下降沿),计数器的计数值减1。所以计数通道是记录脉冲个数的计数器。若CLK连接到频率精确的时钟脉冲信号,则计数通道可作为定时器。在计数过程中,计数通道受到门控制信号GATE的控制。(2)GATE:门控制输入。这是控制计数器工作的一个外部输入信号。不同工作方式下,其作用不同。(3)OUT: 计数器输出。当计数值域为0时,在OUT引脚上产生一个输出信号,它的波形取决于工作方式。2.2.2 8254的控制字寄存器的格式及初始化编程8254

11、的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设 置读回命令,称为读回控制字。这两个控制字共用一个地址,由标识位来区分。当读回控制字的D4 位为0 时,由该读回控制字D1D2 位指定的计数器的状态寄存器内容将被锁存到状态寄存器中。(1) 8254的控制字寄存器的格式,如图2.4所示。图2.4 8254的控制字格式 1:D0用来设置计数值格式。1表示设置计数值为BCD码格式;0表示设置计数值为二进制数格式。 2:D3 D2 D1:工作方式选择。(1) 方式0 :计数到0 结束输出正跃变信号方式。 (2) 方式1:硬件可重触发单稳方式。 (3) 方式2 :频率发生器方式。

12、 (4) 方式3 :方波发生器。 (5) 方式4 :软件触发选通方式。 (6) 方式5 :硬件触发选通方式。3:D4 D5:读写操作方式4: D7 D6:选择计数器位。第3章 程序分步说明3.1 概述本系统设计的医院报警器以8086微处理器作为CPU,用8254做方波发生器发声,8255做可编程并行接口显示房间号和LED灯,8259做中断控制器清零。在此系统中,8254的发出方波,接入8254的CLK信号为周期性时钟信号。8254采用计数器0,工作于方式3,使8254的OUT0端输出周期性的负脉冲信号,此信号接8259的MIR7,使LED灯灭,数码管置零。程序由以下模块组成:主控模块,发声模块

13、,清零模块,显示模块。3.2 具体模块设计1. 主程序模块 主控模块是系的核心模块,对8254、8255、8259进行初始化,设置8255、8254的工作方式,设置中断向量。调用中断子程序和显示子程序由软件实现。2. 发声模块 设置8254的工作方式为方波发生器,输入一个频率,使蜂鸣器在加入信号的情况下发出警报的声音,要控制好输入的频率使人耳能够听到。3. 显示模块显示模块是将显示缓冲区的数值送到数码管显示的功能模块,它是将8255A口的输入状态输入到8255的C口,使数码管显示出8255的输入房间号。硬件上由一个数码管构成,软件上由扫描显示的方法实现。由以下程序完成显示功能。DATA SEG

14、MENTTAB2 DB 06H,5BH,4FH,66H,6DH,7DH,07H,7FHBUF DB 100 DUP(?)TIME DD 100000A8255 EQU 0640HB8255 EQU 0642HCON8255 EQU 0646HLEDS EQU B8255DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV BL,00H MOV DS,AX XIE: MOV DX, MY8255_COUNT0 IN AL, DX MOV DX, MY8255_COUNT1 OUT DX, AL CALL DALLY

15、MOV DX,MY8255_COUNT2 OUT DX,AL MOV DI,OFFSET TAB2 MOV CX,8 CMP AL,01H JE OK1 CMP AL,02H JE OK2 CMP AL,04H JE OK3 CMP AL,08H JE OK4 CMP AL,10H JE OK5 CMP AL,20H JE OK6 CMP AL,40H JE OK7 CMP AL,80H JE OK8 JMP XIE OK1: MOV AL,DI MOV DX,LEDS OUT DX,AL JMP BEGIN OK2: MOV AL,DI+1 MOV DX,LEDS OUT DX,AL JMP

16、 BEGIN OK3: MOV AL,DI+2 MOV DX,LEDS OUT DX,AL JMP BEGIN OK4: MOV AL,DI+3 MOV DX,LEDS OUT DX,AL JMP BEGIN OK5: MOV AL,DI+4 MOV DX,LEDS OUT DX,AL JMP BEGIN OK6: MOV AL,DI+5 MOV DX,LEDS OUT DX,AL JMP BEGIN OK7: MOV AL,DI+6 MOV DX,LEDS OUT DX,AL JMP BEGIN OK8: MOV AL,DI+7 MOV DX,LEDS OUT DX,AL JMP BEGIN

17、 DALLY: PUSH CX MOV CX,0F00H AA2: PUSH AX POP AX LOOP AA2 POP CX RET CODE ENDS END START4. 清零模块 用8259中断程序给LED灯和数码管清零,原理是当发生中断时,先给LED一个灭灯信号,使灯灭,给数码管一个零的数码字符,数码管显示零。BB1:PUSH DS MOV AX, 0000HMOV DS, AXMOV AX, OFFSET MIR7;取中断入口地址MOV SI, 003CH;中断矢量地址MOV SI, AX;填IRQ7的偏移矢量MOV AX, CS;段地址MOV SI, 003EHMOV SI,

18、 AX;填IRQ7的段地址矢量CLIPOP DS;初始化主片8259MOV AL, 11HOUT 20H, AL;ICW1MOV AL, 08HOUT 21H, AL;ICW2MOV AL, 04HOUT 21H, AL;ICW3MOV AL, 01HOUT 21H, AL;ICW4MOV AL, 6FH;OCW1OUT 21H, ALSTIAA1:NOPJMP AA1MIR7:STICALL DALLYMOV AX, 00HMOV DX,0642HOUT DX,AXMOV DX,0644HMOV AX,DI+8OUT DX,AXIRET第4章 设计原理流程图否是否是开 始定义数据段初始化82

19、55按动开关 数据传送显示房间号报警是否有键按下不显示也不报警是否有中断传送过来结 束 第5章 实际硬件接线图D0 PA0D1 |D2 PA7 D3 8 D4 2 D5 5 D6 5 D7 芯 WR 片 RD CS PB0A0 |A1 PB7 PC0 | PC7 八个开关XD0XD1XD2 系XD3 统XD4 总XD5 线XD6XD7IOW#IOR#IOY3 IOY1XA1XA2CLK+5V D0D1D2 8D3 2D4 5D5 4D6 芯D7 片WRRDCSA0A1CLK0OUT0GATE0 八个LED扬声器A|DP 图5.1 程序接线图第6章 源代码IOY3 EQU 06C0HIOY1EQ

20、U 0640HMY8254_COUNT0EQU IOY3+00H ;8254计数器0端口地址MY8254_COUNT1EQU IOY3+02H ;8254计数器1端口地址MY8254_COUNT2EQU IOY3+04H ;8254计数器2端口地址MY8254_MODE EQU IOY3+06H ;8254控制寄存器端口地址MY8255_COUNT0EQU IOY1+00H ;8255计数器0端口地址MY8255_COUNT1EQU IOY1+02H ;8255计数器1端口地址MY8255_COUNT2EQU IOY1+04H ;8255计数器2端口地址MY8255_MODE EQU IOY1

21、+06H ;8255控制寄存器端口地址 STACK1SEGMENT STACKBUF DB 256 DUP(?)STACK1ENDSDATASEGMENT TAB2 DB 06H,5BH,4FH,66H,6DH,7DH,07H,7FH,3FH;键值表,08对应的7段数码管的段位值,不带小数点TIME DD 100000LEDS EQU MY8255_COUNT2 ;数码管电路段选位地址FREQ_LIST DW 371,495,495,495,624,556,495,556,624 DW 495,495,624,742,833,833,833,742,624DATAENDS;建立数据段CODES

22、EGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV BL,00HMOV DS,AX;实现段寄存器DS的初始化MOV DX,MY8254_MODE;8254初始化MOV AL,36H使8254工作在方式3,A 口输入,运用计数器0,二进制方式 OUT DX,ALMOV DX, MY8255_MODE;8255初始化MOV AL, 90H;8255芯片的控制字,工作方式为0,A口输入,B口C口都为输出OUT DX, ALXIE: MOV DX, MY8255_COUNT0;将8255的A口地址赋给DXIN AL, DX;将A口的值送到AL中 MOV

23、DX, MY8255_COUNT1; 将8255的B口地址赋给DXOUT DX, AL;将CPU中的AL值送到8255 的B口中CALL DALLY;调用延时程序MOV DX,MY8255_COUNT2; 将8255的C口地址赋给DX OUT DX,AL;将CPU中的AL值送到8255 的C口中 MOV DI,OFFSET TAB2;取TAB2偏移地址 MOV CX,8;计数8次CMP AL,01H ;AL的值与01H比较JE OK1 ;如若相等,则跳转到OK1CMP AL,02HJE OK2CMP AL,04HJE OK3CMP AL,08HJE OK4CMP AL,10HJE OK5CMP

24、 AL,20HJE OK6CMP AL,40HJE OK7CMP AL,80HJE OK8 JMP XIE;强制跳转到XIE OK1: MOV AL,DI;将指针中的值送给AL MOV DX,LEDS;将LEDS中的值给DX OUT DX,AL;将AL写入DX JMP BEGIN,强制跳转到BEGINOK2: MOV AL,DI+1 MOV DX,LEDS OUT DX,AL JMP BEGINOK3: MOV AL,DI+2 MOV DX,LEDS OUT DX,AL JMP BEGINOK4: MOV AL,DI+3 MOV DX,LEDS OUT DX,AL JMP BEGINOK5:

25、MOV AL,DI+4 MOV DX,LEDS OUT DX,AL JMP BEGINOK6: MOV AL,DI+5 MOV DX,LEDS OUT DX,AL JMP BEGINOK7: MOV AL,DI+6 MOV DX,LEDS OUT DX,AL JMP BEGINOK8: MOV AL,DI+7 MOV DX,LEDS OUT DX,AL JMP BEGIN BEGIN: MOV SI,OFFSET FREQ_LIST ;取FREQ的偏移地址 MOV DX,0FH ;输入时钟为1MHz,1M = 0F4240H MOV AX,4240H DIV WORD PTR SI ;取出频率

26、值计算计数初值,0F4240H / 输出频率 MOV DX,MY8254_COUNT0;将8254的A口地址赋给DX OUT DX,AL ;输出商的低4位 MOV AL,AH OUT DX,AL ;输出商的高4位 CALL DALLYBB1: PUSH DS;将DS压入栈 MOV AX, 0000H MOV DS, AX MOV AX, OFFSET MIR7;取中断入口地址 MOV SI, 003CH;中断矢量地址 MOV SI, AX;填IRQ7的偏移矢量 MOV AX, CS;段地址 MOV SI, 003EH MOV SI, AX;填IRQ7的段地址矢量 CLI;关中断 POP DS;

27、DS出栈 初始化主片8259 MOV AL, 11H OUT 20H, AL;ICW1 MOV AL, 08H OUT 21H, AL;ICW2 MOV AL, 04H OUT 21H, AL;ICW3 MOV AL, 01H OUT 21H, AL;ICW4 MOV AL, 6FH;OCW1 OUT 21H, AL STI;开中断AA1: NOP JMP AA1MIR7: STI CALL DALLY MOV AX, 00H;将00H放入AX MOV DX,0642H;将8255的B口地址赋给DX OUT DX,AX;将00H写入8255的B口 MOV DX,0644H;将8255的C口地址

28、赋给DX MOV AX,DI+8;将0的数码管代码放入AX OUT DX,AX;将00H写入8255的C口 IRET;恢复DALLY: PUSH CX;将CX压栈 MOV CX,0F00HAA2: PUSH AX POP AX LOOP AA2;CX不为0重复AA2 POP CX;将CX出栈 RET;返回CODEENDS;代码段定义结束END START;程序结束 总结一周的微机原理课程设计很快结束了,这次课设给了我许多经验和教训,了解到了汇编语言的程序设计并不是那样简单的,它要有足够的知识积累和编程的经验,并且编写完的程序要在不断的摸索和研究中得到提高以最简练的程序实现其功能。本次课设知识上

29、的收获很重要,让我又一次体会到理论与实践的差距,只有理论与实践的完美结合才能奏出最美的乐章,缺少某一个都是不可以的。刚开始的时候我们对这次课设的内容不是很理解,不知道应该先从何入手,在老师的指导下我们从微机中调出了先从一个一个子程序开始做起,做好子程序再进行组合,慢慢的我们找到了头绪,一些汇编语言我们还不是很懂,于是我们就查阅一些相关的资料,最后把程序编写出来。知识上的收获虽然重要但我觉得精神上的收获更重要,这次课设我们是以小组为单位的,我们组是2个人,每个人都很努力,而且还互相帮助。团结协作是我们完成任务的一项非常重要的保证,这次课设也锻炼了我们这一点,这是非常宝贵的,在课设的过程中我们因为

30、知识积累的缺少而失落过,也曾为了最后的成功而热情高涨过。生活就是这样,汗水预示着结果也见证着收获。理论与实践相结合是人类劳动生活永恒不变的真理,虽然我们这次只是一个简单的程序设计但平心而论我们也付出了许多,我们一遍一遍的运行又一遍一遍的修改,从汗水中我们寻找力量,这个过程中我们想到了那些写汇编程序的前辈们,我们由衷的佩服他们,在理论与实践中一步步的走下去,为中国的科技发展做出了巨大的贡献。对我而言,这次设计精神上的财富积累要比知识的积累更重要,我们每个人 都不愿满足现有的成就,人生就像是爬山,我们要时刻牢记一山还比一山高,我们要攀向更高的峰顶,俯视而下都是我们坚实的脚印,每一个都见证了我们的挫

31、折与收获。这次课设也必将成为我人生旅途上一个非常美好的回忆。致谢 一周的课程设计结束了,在这里我要感谢学校给了我这次课程设计的机会,使我实践能力又有了进一步的提高,也我让对学过的知识有了进一步的理解。更重要的是此次设计锻炼了我的毅力,让我学会了更加坚持不懈完成了此次的课程设计,要感谢的人很多。首先,我要感谢曲乐声老师对我原理设计的指导修正和耐心的讲解,让我的程序从零开始一步步成长起来,这使我对微机原理有了更实际的了解,也学的更加自如。其次,感谢我们组同学在设计过程中给我提供的帮助,感谢他们对我的支持。最后,感谢在设计过程中给我的方案的修改提出了宝贵的意见的其他的班级同学。正是有了以上的帮助才使

32、我圆满的完成了设计任务。在此我要对那些曾经帮助过我的各位老师和同学表示衷心的感谢。谢谢大家给与我的帮助和鼓励!参 考 文 献1 李伯成、侯伯亨、张毅坤.微型计算机原理及应用.西安电子科技大学出版社,1996.2 宋杰、汪志宏、江敏.微机原理与接口技术课程设计.机械工业出版社,1997.3 朱定华、马爱梅、林卫.微机应用系统设计.华中科技大学出版社,1998.4 何立民.单片机应用系统设计-系统配置与接口技术.北京航空航天大学出版社,2001.5 邵鸿余.微机原理与接口技术.北京:北京航空航天大学出版社,2005.6 张凡,盛珣华,戴胜华.微机原理与接口技术.北京:北方交通大学出版社,1996.7 陈立潮,赵纪兰,陈桂芳,金焕武.INTEL8088/8086宏汇编语言程序设计理论与实践.北京:兵器工业出版社,2004.8 朱世宏.微机系统和接口应用技术.北京:清华大学出版社,2002.9 陈泽文.8086/8088汇编语言程序设计.北京:北京出版社,2000.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号