




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录第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.18086CPU-2-地址锁存器74LS373的内部电路与工作原理-4-可编程外围接口芯片8255A的简介-5-第3章软件设计-9-3.1程序流程设计-9-主程序流程-9-程序流程图-10-系统硬件连接图-11-源程序设计(附录)-11-3.2设计最终理想结果及原理-11-左向移动流水灯-11-右向移动流水灯-11-设计心得-12-参考文献-13-附录-14-方案的论述以及与最终方案确实定第一种方案的论述第一种方案,使用AT89C51单片机实现流水灯闪烁设计。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,方案一中设计的流水灯实际上是一个带有八个发光二极管的单片机最小应用系统,即由发光二极管、晶振、复位、电源等电路和必要软件组成的单个单片机。第二种方案的论证第二种方案,我们使用了AT89C51单片机与8255A芯片一起实现了流水灯闪烁的设计。74LS373是常用的地址锁存器芯片,它是一个是带三态缓冲输出的8D触发器,在单片机系统中为了扩展外部存储器,通常需要一块74ls373芯片。我们了解到74ls373是常用的地址锁存器芯片,它是一个是带三态缓冲输出的8D触发器,在单片机系统中为了扩展外部存储器,通常需要一块74ls373芯片。第三种方案的论述第三种方案,使用8086CPU芯片并行8255A芯片一起实现了流水灯闪烁的设计,同时还使用了地址锁存器74LS373芯片。从前两种方案中,我们分别熟悉与掌握了地址锁存器74LS373芯片和8086CPU。在方案中,当8086CPU的引脚ALE处于下降沿时将8086CPU输出的地址信息进行锁存,以定义8255A的工作方式。在方案中,我们将详细地介绍8255A的内部电路、功能特点、工作原理以及在电路中的功能扩展与应用,这也是我们这次课程设计中一个需要重点掌握的芯片。最终方案确实定通过课程设计的要求和以上的论证,我们决定采用第三种方案,即以8086CPU为核心、并行接口芯片8255A和3个逻辑电平开关设计多路流水灯控制程序。硬件设计总体方案设计分析在本实验中要求用8255A的B口做为输出,接8个发光二极管,从而实现8位流水灯的显示效果,根本的接线可以如下列图所示。在C口的低三位接3个逻辑电平开关,实现3个扩展功能的控制,在PB0-PB7口分别对应的接八个发光二极管。8个发光二极管竖向安放,自上到下对应两种模拟流水形式的自左到右。系统逻辑框图8086CPU处理8086CPU处理LED显示K0—K274LS373锁存器输出PB0-PB78255A输入PC0-PC274LS138译码器图2.1系统逻辑框图主要元器件简介8086CPUIntel8086是一个由Intel于1978年所设计的16位微处理器芯片,是x86架构的鼻祖。不久,Intel8088就推出了,拥有一个外部的8位数据总线,允许廉价的芯片用途。它是以8080和8085的设计为根底,拥有类似的存放器组,但是数据总线扩充为16位。总线界面单元(BusInterfaceUnit)透过6字节预存(prefecth)的队列(queue)喂指令给执行单元(ExecutionUnit),所以取指令和执行是同步的,8086CPU有20条地址线,可直接寻址1MB的存储空间,每一个存储单元可以存放一个字节〔8位〕二进制信息。图2.28086CPU外部引脚图2.38086CPU内部结构框图Intel8086拥有四个16位的通用存放器,也能够当作八个8位存放器来存取,以及四个16位索引存放器〔包含了堆栈指标〕。资料存放器通常由指令隐含地使用,针对暂存值需要复杂的存放器配置。它提供64K8位元的输出输入〔或32K16位元〕,以及固定的向量中断。大局部的指令只能够存取一个内存位址,所以其中一个操作数必须是一个存放器。运算结果会储存在操作数中的一个存放器。Intel8086有四个内存区段〔segment)存放器,可以从索引存放器来设定。区段存放器可以让CPU利用特殊的方式存取1MB内存。8086把段地址左移4位然后把它加上偏移地址。大局部的人都认为这是一个很不好的设计,因为这样的结果是会让各分段有重叠。尽管这样对组合语言而言大局部被接受〔也甚至有用〕,可以完全地控制分段,,使在编程中使用指针〔如C编程语言〕变得困难。它导致指针的高效率表示变得困难,且有可能产生两个指向同一个地方的指针拥有不同的地址。更坏的是,这种方式产生要让内存扩充到大于1MB难。而8086的寻址方式改变让内存扩充较有效率。地址锁存器74LS373的内部电路与工作原理图2.4引脚功能图注:管脚引出端功能符号:D0~D7数据输入端OE三态允许控制端〔低电平有效〕Q0~Q7输出端LE锁存允许端74373三态缓冲输出的8D锁存器〔3S,锁存允许输入有回环特性〕,其输出端Q0~Q7可直接与总线相连,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)、19(Q7)立即呈现输入脚3(D0)、4(D1)、7(D2)、8(D3)、13(D4)、14(D5)、17(D6)、18(D7)的状态。11脚是锁存允许端(LE),当LE由高变低时,输出端8位信息被锁存,直到LE端再次有效。当三态允许控制端OE为低电平时,三态门导通,允许Q0~Q7输出,OE为高电平时,输出悬空。当74LS373用作地址锁存器时,应使OE为低电平,此时锁存使能端C为高电平时,输出Q0~Q7状态与输入端D1~D7状态相同;当LE发生负的跳变时,输入端D0~D7数据锁入Q0~Q7。图2.58086CPU与74LS373、74LS138的连接及外部接线图可编程外围接口芯片8255A的简介8255A是Intel公司生产的一种通用的可编程并行I/O接口芯片,它是为Inter系列微处理器设计的配套电路,也可用于其它微处理器系统中。通过对它进行编程,芯片可工作于不同的工作方式。8255A有3个8位并行I/O口,具有3个通道3种工作方式,其各口功能可由软件选择,使用灵活,通用性强。8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口;同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制局部,因而8255内部结构分为3个局部:与图2.68255A的外部引脚图2.78255A的内部结构注:管脚引出端功能符号:◆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。◆D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。◆PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。◆PB0~PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。◆PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。'◆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.9C口按位置位/复位控制字8255A初始化编程:8255A的A,B,C三个端口的工作方式是在初始化编程时,通过向8255A的控制端口写入控制字来设定的。8255A由编程写入的控制字有两个:方式控制字和置位/复位控制字。方式控制字用于设置端口A,B,C的工作方式和数据传送方向;置位/复位控制字用于设置C口的PC7~PC0中某一条口线PCi〔i=0~7〕的电平。两个控制字公用一个端口地址,由控制字的最高位作为区分这两个控制字的标志位。图2.108255A与LED及开关的连接及外部接线图软件设计程序流程设计主程序流程设置设置8255A的工作方式〔10000001H〕读C口低三位左向流水灯输出0FFH右向流水灯灯无有效按键时输出YYNYK2是否被按下NNK1是否被按下开始结束图3.1主程序流程图程序流程图左向移动流水灯CF置1,0FEHCF置1,0FEH→ALB口输出AL带进位循环左移一位延时开始图3.2左向移动流水灯子程序图右向移动流水灯CF置1,07FHCF置1,07FH→ALB口输出AL带进位循环右移一位延时开始图3.3左向移动流水灯子程序图系统硬件连接图图3.4系统硬件连接图源程序设计(附录)设计最终理想结果及原理左向移动流水灯(1)现象左向移动流水灯的实验现象是首先最右边的灯亮,然后是最右边的灯灭,此时右起第二个灯亮,依次轮流亮,直到第八个灯亮。然后循环上述过程。(2)原理左向移动流水灯是根据发光二极管的显示原理,首先点亮最右的二极管,然后进位置一,通过带进位的循环左移指令编写程序以实现模拟流水灯的左向移动。右向移动流水灯(1)现象右向移动流水灯的实验现象是首先最左边的灯亮,然后是最左边的灯灭,此时左起第二个灯亮,依次轮流亮,直到第八个灯亮。然后循环上述过程。(2)原理右向移动流水灯是根据发光二极管的显示原理,首先点亮最左的二极管,然后进位置一,通过带进位的循环右移指令编写程序以实现模拟流水灯的右向移动。设计心得在此,我们郑重感谢系里给我们提供的这次珍贵的锻炼时机以及吴学娟老师的热情指导与帮助。在我们遇到困难而无法解决的时候,吴学娟老师给我们提供了很多有用的方案建议,并为我们提供了对我们极为有用的资料;当我们有些问题不懂疑惑时,吴学娟老师也耐心给了我们做了清楚的解释,在此我们表示真挚的感谢。这次微机原理课程设计我学到了很多在书本上所没有学到过的知识。以前在上课的时候对于编程工具的使用还处于一知半解的状态上,但是经过一段时间的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个存放器的内容以及当存放器不够用时如何用存储单元代替存放器、怎么去使用循环嵌套、怎么去正确使用8255芯片等方面都有了很大程度的提高。通过课程设计,我们学到了很多东西。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会效劳,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的缺乏之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,但总的来说还是圆满的。感谢所有帮过我们的老师和同学们,他们都很热情帮助我们,为我们提供了他们力所能及的帮助,在此我们对他们表示真挚的感谢。参考文献[1]周荷琴,吴秀清编著.微机原理与接口技术合肥:中国科学技术大学出版社,2008.6[2]潘新民,王燕芳编著.微型计算机控制技术北京:高等教育出版社,2004。[3]周明德编著微型计算机系统原理及应用北京:人民邮电出版社,2007.附录:;端口地址PORT_A EQU0F0HPORT_B EQU0F2HPORT_C EQU0F4HPORT_CTL EQU0F6H;代码段CODE SEGMENT ASSUME CS:CODESTART:MOVDX,PORT_CTL ;指向控制口MOVAL,10000001B ;控制字OUTDX,AL ;写入控制字MO:MOVDX,PORT_C;检测开关信号INAL,DXTESTAL,01H;检测按键1是否被按下JZK1TESTAL,02H;检测按键2是否被按下JZK2JMPTHEEND;无有效按键时输出K1: CALLL1JMPMOK2: CALLL2JMPMOL1: ;模拟流水灯左移MOVDX,PORT_B ;设置B口输出MOVAL,07FH L10: OUTDX,AL ;B口输出ROLAL,1 ;AL带进位左移一位CALLDELAY ;调用延时子程序MOVDX,PORT_CINAL,DXTESTAL,01HJZL10RETL2: MOVDX,PORT_B ;模拟流水灯右移MOVAL,0FEH L20: OUTDX,AL ;B口输出RORAL,1 ;AL带进位右+移一位CALLDELAY ;调用延时子程序MOVDX,PORT_CINAL,DXTESTAL,02HJZL20RETTHEEND: MOVAL,0FFHMOVDX,PORT_BOUTDXJMPMODELAY: MOVBX,200;用双层循环嵌套实现延时功能DEL1:MOVCX,1000DEL2:LOOPDEL2DECBXJNZDEL1RETCODEENDSENDSTART◆RESET:复位输入线,当该输入端处于高电平时,所有内部存放器〔包括控制存放器〕均被去除,所有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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 舅舅房子赡养继承协议书
- 肇庆手提电脑租赁协议书
- 朱砂原材料采购合同范本
- 碧桂园开发的合同协议书
- 网络服务代理合同协议书
- 苏陕两地协作框架协议书
- 肉牛供应买卖合同协议书
- 联合种植香芋协议合同书
- 阁楼钢结构制作合同范本
- 纸箱送货如何写合同协议
- (2025)《中华人民共和国监察法》知识考试题库及参考答案
- 2024年绥阳县选聘城市社区工作者笔试真题
- 昆虫乐园活动方案
- 2024 年度投资者知权行权维权调查报告
- 物业费的催费技巧培训
- 2025年地区事业单位卫生类临床医学专业知识考试历年试卷
- 2025至2030中国枇杷果汁饮料行业产业运行态势及投资规划深度研究报告
- 护理事业十五五发展规划(2026-2030)
- 城市公园采购休闲座椅及户外家具及配套设施合同
- JG/T 366-2012外墙保温用锚栓
- HY/T 0465-2024红树林修复与利用地埋管网系统技术指南
评论
0/150
提交评论