版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录第1章 方案的论述以及与最终方案的确定- 1 -1.1 第一种方案的论述- 1 -1.2 第二种方案的论证- 1 -1.3 第三种方案的论述- 1 -1.4 最终方案的确定- 1 -第2章 硬件设计- 2 -2.1 总体方案设计分析- 2 -2.2 系统逻辑框图- 2 -2.3 主要元器件简介- 2 -2.3.1 8086CPU- 2 - 地址锁存器74LS373的内部电路与工作原理- 4 - 可编程外围接口芯片8255A的简介- 5 -第3章 软件设计- 9 -3.1 程序流程设计- 9 - 主程序流程- 9 - 程序流程图- 10 - 系统硬件连接图- 11 - 源程序设计(附录)-
2、11 -3.2 设计最终理想结果及原理- 11 - 左向移动流水灯- 11 - 右向移动流水灯- 11 -设计心得- 12 -参考文献- 13 -附录- 14 -第1章 方案的论述以及与最终方案的确定1.1 第一种方案的论述第一种方案,使用AT89C51单片机实现流水灯闪烁设计。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.255.50V的电压工作范围和024MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此
3、,方案一中设计的流水灯实际上是一个带有八个发光二极管的单片机最小应用系统,即由发光二极管、晶振、复位、电源等电路和必要软件组成的单个单片机。1.2 第二种方案的论证第二种方案,我们使用了AT89C51单片机与8255A芯片一起实现了流水灯闪烁的设计。74LS373是常用的地址锁存器芯片,它是一个是带三态缓冲输出的8D触发器,在单片机系统中为了扩展外部存储器,通常需要一块74ls373芯片。我们了解到74ls373是常用的地址锁存器芯片,它是一个是带三态缓冲输出的8D触发器,在单片机系统中为了扩展外部存储器,通常需要一块74ls373芯片。1.3 第三种方案的论述第三种方案,使用8086 CPU
4、芯片并行8255A芯片一起实现了流水灯闪烁的设计,同时还使用了地址锁存器74LS373芯片。从前两种方案中,我们分别熟悉与掌握了地址锁存器74LS373芯片和8086CPU。在方案中,当8086CPU的引脚ALE处于下降沿时将8086CPU输出的地址信息进行锁存,以定义8255A的工作方式。在方案中,我们将详细地介绍8255A的内部电路、功能特点、工作原理以及在电路中的功能扩展与应用,这也是我们这次课程设计中一个需要重点掌握的芯片。1.4 最终方案的确定通过课程设计的要求和以上的论证,我们决定采用第三种方案,即以8086CPU为核心、并行接口芯片8255A和3个逻辑电平开关设计多路流水灯控制程
5、序。第2章 硬件设计2.1 总体方案设计分析在本实验中要求用8255A的B口做为输出,接8个发光二极管,从而实现8位流水灯的显示效果,基本的接线可以如下图所示。在C口的低三位接3个逻辑电平开关,实现3个扩展功能的控制,在PB0-PB7口分别对应的接八个发光二极管。8个发光二极管竖向安放,自上到下对应两种模拟流水形式的自左到右。2.2 系统逻辑框图8086CPU处理LED显示K0K274LS373锁存器输出PB0-PB78255A输入PC0-PC274LS138译码器图 2.1 系统逻辑框图2.3 主要元器件简介2.3.1 8086CPUIntel 8086是一个由Intel于1978年所设计的
6、16位微处理器芯片,是x86架构的鼻祖。不久,Intel 8088就推出了,拥有一个外部的8位数据总线,允许便宜的芯片用途。它是以8080和8085的设计为基础,拥有类似的寄存器组,但是数据总线扩充为16位。总线界面单元(Bus Interface Unit)透过6字节预存(prefecth) 的队列(queue)喂指令给执行单元(Execution Unit),所以取指令和执行是同步的,8086 CPU有20条地址线,可直接寻址1MB的存储空间,每一个存储单元可以存放一个字节(8位)二进制信息。 图2.2 8086 CPU外部引脚图2.3 8086 CPU内部结构框图Intel 8086拥有
7、四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。它提供64K 8 位元的输出输入(或32K 16 位元),以及固定的向量中断。大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。运算结果会储存在操作数中的一个寄存器。Intel 8086有四个内存区段(segment) 寄存器,可以从索引寄存器来设定。区段寄存器可以让 CPU 利用特殊的方式存取1 MB内存。8086 把段地址左移 4 位然后把它加上偏移地址。大部分的人都认为这是一个很不好的设计,因为这样的结果
8、是会让各分段有重叠。尽管这样对组合语言而言大部分被接受(也甚至有用),可以完全地控制分段,使在编程中使用指针 (如C 编程语言) 变得困难。它导致指针的高效率表示变得困难,且有可能产生两个指向同一个地方的指针拥有不同的地址。更坏的是,这种方式产生要让内存扩充到大于1MB难。而 8086 的寻址方式改变让内存扩充较有效率。2.3.2 地址锁存器74LS373的内部电路与工作原理图2.4 引脚功能图注:管脚引出端功能符号:D0D7 数据输入端 OE 三态允许控制端(低电平有效)Q0Q7 输出端 LE 锁存允许端74373 三态缓冲输出的8D锁存器(3S,锁存允许输入有回环特性),其输出端 Q0Q7
9、 可直接与总线相连,74LS373的LE端直接与8086CPU的ALE信号连接。1脚是三态允许控制端(OE),是低电平有效。当1脚是高电平时,不管输入3(D0)、4(D1)、7(D2)、8(D3)、13(D4)、14(D5)、17(D6)、18(D7)如何,也不管11脚(LE 锁存允许端)如何,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部呈现高阻状态(或者叫浮空状态)。当1脚是低电平时,只要11脚(LE 锁存允许端)上出现一个下降沿,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、1
10、9(Q7)立即呈现输入脚3(D0)、4(D1)、7(D2)、8(D3)、13(D4)、14(D5)、17(D6)、18(D7)的状态。11脚是锁存允许端(LE),当LE由高变低时,输出端8 位信息被锁存,直到LE 端再次有效。 当三态允许控制端OE为低电平时,三态门导通,允许Q0Q7输出,OE为高电平时,输出悬空。当74LS373用作地址锁存器时,应使OE为低电平,此时锁存使能端C为高电平时,输出Q0Q7 状态与输入端D1D7状态相同;当LE发生负的跳变时,输入端D0D7 数据锁入Q0Q7。图2.5 8086CPU与74LS373、74LS138的连接及外部接线图2.3.3 可编程外围接口芯片
11、8255A的简介8255A是Intel公司生产的一种通用的可编程并行I/O接口芯片,它是为Inter系列微处理器设计的配套电路,也可用于其它微处理器系统中。通过对它进行编程,芯片可工作于不同的工作方式。8255A有3个8位并行I/O口,具有3个通道3种工作方式,其各口功能可由软件选择,使用灵活,通用性强。8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口;同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。 图2.6 8255A的外部引
12、脚图2.7 8255A的内部结构注:管脚引出端功能符号:RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。 CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输. RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。 WR:写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255
13、。 D0D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。 PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 PB0PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。 PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
14、9; A0,A1:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器. 当A0=0,A1=0时,PA口被选择;当A0=0,A1=1时,PB口被选择; 当A0=1,A1=0时,PC口被选择;当A0=1.A1=1时,控制寄存器被选择.8255A的工作方式:方式0:基本输入输出方式,适用于无条件传送和查询方式的接口电路方式1:选通输入输出方式,适用于查询和中断方式的接口电路方式2:双向选通传送方式,适用于与双向传送数据的外设和查询和中断方式的接口电路 图2.8 工作方式控制字 图2.9 C口按位置位/复位控制字8255A初始化编程:8255A的A,B,C三个端口的工作方式是在初始化编程
15、时,通过向8255A的控制端口写入控制字来设定的。8255A由编程写入的控制字有两个:方式控制字和置位/复位控制字。方式控制字用于设置端口A, B, C的工作方式和数据传送方向;置位/复位控制字用于设置C口的PC7PC0中某一条口线PCi(i07)的电平。两个控制字公用一个端口地址,由控制字的最高位作为区分这两个控制字的标志位。图2.10 8255A与LED及开关的连接及外部接线图第3章 软件设计3.1 程序流程设计3.1.1 主程序流程设置8255A的工作方式(10000001H)读C口低三位左向流水灯输出0FFH右向流水灯灯无有效按键时输出YYNYK2是否被按下NNK1是否被按下开始结束图
16、3.1 主程序流程图3.1.2 程序流程图左向移动流水灯CF置1,0FEHALB口输出AL带进位循环左移一位延时开始图3.2 左向移动流水灯子程序图右向移动流水灯CF置1,07FHALB口输出AL带进位循环右移一位延时开始图3.3 左向移动流水灯子程序图3.1.3 系统硬件连接图图 3.4 系统硬件连接图3.1.4 源程序设计(附录)3.2 设计最终理想结果及原理3.2.1 左向移动流水灯(1) 现象左向移动流水灯的实验现象是首先最右边的灯亮,然后是最右边的灯灭,此时右起第二个灯亮,依次轮流亮,直到第八个灯亮。然后循环上述过程。(2) 原理左向移动流水灯是根据发光二极管的显示原理,首先点亮最右
17、的二极管,然后进位置一,通过带进位的循环左移指令编写程序以实现模拟流水灯的左向移动。3.2.2 右向移动流水灯(1) 现象右向移动流水灯的实验现象是首先最左边的灯亮,然后是最左边的灯灭,此时左起第二个灯亮,依次轮流亮,直到第八个灯亮。然后循环上述过程。(2) 原理右向移动流水灯是根据发光二极管的显示原理,首先点亮最左的二极管,然后进位置一,通过带进位的循环右移指令编写程序以实现模拟流水灯的右向移动。设计心得在此,我们郑重感谢系里给我们提供的这次珍贵的锻炼机会以及吴学娟老师的热情指导与帮助。在我们遇到困难而无法解决的时候,吴学娟老师给我们提供了很多有用的方案建议,并为我们提供了对我们极为有用的资
18、料;当我们有些问题不懂疑惑时,吴学娟老师也耐心给了我们做了清楚的解释,在此我们表示真挚的感谢。这次微机原理课程设计我学到了很多在书本上所没有学到过的知识。以前在上课的时候对于编程工具的使用还处于一知半解的状态上,但是经过一段时间的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以及当寄存器不够用时如何用存储单元代替寄存器、怎么去使用循环嵌套、怎么去正确使用8255芯片等方面都有了很大程度的提高。通过课程设计,我们学到了很多东西。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,
19、才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,但总的来说还是圆满的。感谢所有帮过我们的老师和同学们,他们都很热情帮助我们,为我们提供了他们力所能及的帮助,在此我们对他们表示真挚的感谢。参考文献1 周荷琴,吴秀清 编著. 微机原理与接口技术 合肥:中国科学技术大学出版社,2008.62 潘新民,王燕芳 编著.微型计算机控制技术 北京:高等教育出版社,2004。3 周明德 编著 微型计算机系统原理及应用
20、 北京:人民邮电出版社,2007附录:;端口地址PORT_A EQU 0F0HPORT_B EQU 0F2HPORT_C EQU 0F4HPORT_CTL EQU 0F6H;代码段CODESEGMENT ASSUME CS:CODESTART:MOV DX,PORT_CTL;指向控制口MOV AL,10000001B;控制字OUT DX,AL;写入控制字MO:MOV DX,PORT_C;检测开关信号IN AL,DXTEST AL,01H;检测按键1是否被按下JZ K1TEST AL,02H;检测按键2是否被按下JZ K2JMP THEEND;无有效按键时输出K1:CALL L1JMP MOK2
21、:CALL L2 JMP MOL1: ;模拟流水灯左移MOV DX,PORT_B ;设置B口输出MOV AL, 07FH L10:OUT DX,AL ;B口输出ROL AL,1 ;AL带进位左移一位CALL DELAY ;调用延时子程序MOV DX, PORT_CIN AL, DXTEST AL, 01HJZ L10RET L2:MOV DX,PORT_B ;模拟流水灯右移MOV AL, 0FEHL20:OUT DX,AL ;B口输出ROR AL,1 ;AL带进位右+移一位CALL DELAY ;调用延时子程序MOV DX, PORT_CIN AL, DXTEST AL, 02HJZ L20R
22、ETTHEEND:MOV AL, 0FFHMOV DX, PORT_BOUT DX, AL JMP MODELAY: MOV BX, 200 ;用双层循环嵌套实现延时功能DEL1:MOV CX, 1000 DEL2:LOOP DEL2DEC BXJNZ DEL1RETCODE ENDSEND STARTRESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。 CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输. RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于情景再现的博物馆文物展示动画设计研究
- PDCoV核衣壳蛋白相分离的机制研究
- 二零二五年度快递配送与代收货款合作协议模板
- 加入价值链组织模式对农户借贷行为的影响研究
- 2025年度电子劳动合同模板与员工离职手续简化合同
- 2025年度改签用人单位跨区域劳务派遣服务合同
- 渣土运输施工方案
- 2025年度历史文化街区装修合同解除及文化遗产保护协议
- 二零二五年度房地产开发项目评估合同
- 2025年度车库租赁合同(含车位租赁与租赁期限最长5年)
- 2025-2030年中国陶瓷电容器行业运营状况与发展前景分析报告
- 二零二五年仓储配送中心物业管理与优化升级合同3篇
- 2025届厦门高三1月质检期末联考数学答案
- 音乐作品录制许可
- 江苏省无锡市2023-2024学年高三上学期期终教学质量调研测试语文试题(解析版)
- 拉萨市2025届高三第一次联考(一模)英语试卷(含答案解析)
- 开题报告:AIGC背景下大学英语教学设计重构研究
- 师德标兵先进事迹材料师德标兵个人主要事迹
- 连锁商务酒店述职报告
- 《实践论》(原文)毛泽东
- 第三单元名著导读《红星照耀中国》(公开课一等奖创新教学设计+说课稿)
评论
0/150
提交评论