文档库 最新最全的文档下载
当前位置:文档库 › 8个LED灯循环闪烁课程设计

8个LED灯循环闪烁课程设计

8个LED灯循环闪烁课程设计
8个LED灯循环闪烁课程设计

摘要

“微机原理与接口技术”是高等学校电子信息工程、通信工程、自动化、电气工程及其自动化等工科电气与电子信息类各专业的核心课程。该课程以INTER 8086微处理器和IBM PC系列微机为主要对象,系统。深入地介绍了微型计算机的基本组成、工作原理、接口技术及应用,把微机系统开发过程中用到的硬件技术和软件技术有机地结合起来。

本文详述了8个LED灯循环闪烁的课程设计。设置8个LED灯,首先是1、3、5、7号LED依次亮1秒钟,当7号LED亮后,这四个灯同时闪烁5下。然后是2、4、6、8号LED 依次亮1秒钟,当8号LED亮后,这四个灯同时闪烁5下。

本课程设计,由于自身能力和学习水平有限,可能存在一定的错误和不当之处,敬请批评和指正。

一、设计目的

1.巩固和加深课堂所学知识;熟悉各种指令的应用及条件;

2.学习掌握一般的软硬件的设计方法和查阅、运用资料的能力;

3.进一步了解8255A各引脚的功能, 8255A和系统总线之间的连接, 8255A和CPU 之间的数据交换,以及8255A的内部逻辑结构。深入掌握8255A显示电路的基本功能及编程方法,8255等芯片的工作方式、作用。

4.培养和锻炼在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力。通过课程设计,要求熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,得到微机开发应用方面的初步训练。同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。

二、设计内容

根据所学内容和对8255A的应用,整个系统硬件采用8086微处理器和8255A可编程并行接口芯片和8个LED等连成硬件电路。设计8个LED灯,实现如下要求:首先是1、3、5、7号LED依次亮1秒钟,当7号LED亮后,这四个灯同时闪烁5下。然后是2、4、6、8号LED依次亮1秒钟,当8号LED亮后,这四个灯同时闪烁5下。

三、设计要求

使用8255A可编程接口芯片实现8个LED灯以十种不同的方式显示。画出硬件电路图,能在PROTEUS中模拟实现。

四、设计原理与硬件电路

1、整体设计思想

采用8086微处理器,通过并行接口芯片8255A和计算机的硬件连接,通过软件延时计数,来实现10种显示方式的交替循环,用不同的输出值确定8个LED灯如何亮。

2、使用各芯片的作用及工作原理

(1)可编程并行通信接口芯片8255A:

方式0为简单I/O,查询方式,端口A、端口B、端口C均可使用。

方式1为选通I/O,中断方式,端口A、端口B可以使用,选通的输入/输出方式。

方式2为双向I/O,中断方式,只有端口A可以使用,双向的传输方式。

方式0也叫基本输入/输出方式。一种方式,不需要应答联络信号,端口A、端口B和端口C的高4位及低4位都可以作为输入或输出端口。方式0的应用场合有无条件传送和查询传送2种;故根据我们系统设计的要求,综上可知,选择8255A为工作方式0。

然而8255A的3种基本工作方式:由方式选择控制字来决定,D7=1(特征位)表明是设定方式选择控制字;D7=0,则表示是端口C按位置位/复位控制字;

端口C分成高4位(PC7~PC4)和低4位(PC3~PC0),可分别设置成输入端口或输出端口;端口C的高4位与端口A配合组成A组,端口C的低4位与端口B配合组成B组。

综上可得此系统需要满足A端口为输出,输出数据给到8个LED灯;端口C为输入,需要检测按键的输入情况;

(2)8086微处理器

选择最小工作模式,所有的总线控制信号均由8086产生;8086CPU的地址\数据总线AD15-AD0和地址\状态总线A16/S3-A19/S6是复用的,必须通过地址锁存器把地址总线和数据总线分离。

3、使用软件说明:

Proteus

Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等

Emu8086

Emu8086-MicroprocessorEmulator结合了一个先进的原始编辑器、组译器、反组译器、具除错功能的软件模拟工具(虚拟PC),还有一个循序渐进的指导工具,编译源代码,并在模拟器上一步一步的执行。可视化界面令操作易如翻掌.可以在执行程序的同时可观察寄存器,标志位和内存.算术和逻辑运算单元(ALU)显示中央处理器内部的工作情况.

4、锁存器74LS273

在微控制器单元(MCU)中,寄存器是十分重要的资源。寄存器的主要作用是快速寄存算术逻辑运算单元(ALU)运算过程中的数据,其锁存功能利用74LS373来实现,

(1)锁存使能控制端 LE。

(2)控制输入端

(3)数据输入端

通过锁存器74LS373把数据存储于集成块中,当LE锁存控制端为1,\OE使能端为0时,其具有输入功能,反之其具有锁存功能,在此系统中充当一个桥梁的作用,将部分数据传送个8255A的A0,A1,和CS片选等等,从而驱动发光二级管显示不同的花色。

5、译码器74ls154

74ls154功能简介:

54/74154 为 4 线-16 线译码器,当选通端(G1、G2)均为低电平时,可将地址端(ABCD)的二进制编码在一个对应的输出端,以低电平译出。如果将G1和G2中的一个作为数据输入端,由ABCD对输出寻址,74LS154还可作1线-16线数据分配器。

74LS154管脚图:

引脚功能介绍

A、B、C、D 译码地址输入端(低电平有效) G1、G2 选通端(低电平有效)

0-15 输出端(低电平有效)

推荐工作条件

74ls154电气参数

极限值

电源电压: 7V

输入电压: 5.5V

工作环境温度

54154:-55~125℃

74154:0~70℃

贮存温度:-65~150℃

五、程序代码

见附页

六、硬件连接图及运行情况

见附页

七、设计难点与重点

1、在调试过程中,由于led灯一端都接地,按下启动键,并没有什么现象,总让人产生错觉是不是程序出现问题,仿真不出来;为了便于启动按键按下有现象,可将led灯的另一端接高电平,但是想来想去,如果是在现实中,不可能用LED灯突然全部亮来说明系统启动,故可以在连接启动键导线中用一个led灯是否亮了来检测系统的启动成功,此时所有的按键的另一端也要求接高电平了。

2、程序运行过程中,查阅了相关资料,得知代码中loop的两步操作:1、cx=cx-1;2、判断cx的值,决定跳转还是向下执行。进而使得程序运行更加地顺利了。

八、设计心得

经过这次课程设计,我觉得我有了很大的收获,:

1、开始时候设计存在很多的问题,这主要表现在基础知识掌握的不牢固。不能灵活运用所学知识解决实际问题,所以在基础知识这一块还应该多加强和巩固。8255芯片和软件(编程)结合使用可以有更灵活的运用方法。一开始我们联系连得比较复杂,和同组的同学一块动脑筋,最后终于使问题得到很好的解决。

2.更一步深化了程序设计步骤的思想,之前的混乱状态逐渐清晰起来;编写程序时我遇到了许多的麻烦,开始时我把程序编了出来,但是我用Proteus仿真就和我想要的结果不一致,然后我又通过认真的分析,发现我的逻辑思维出错了,用汇编语言编写时要求有很好的逻辑思维能力,在今后的练习中得加强这方面的锻炼;

3.我对于工科设计的严谨性、仔细性有了更深地体会。我们本次设计的8个LED灯循

环闪烁,仅仅是工科设计中非常简单的一个,思想并不是非常复杂,手头也有一定的资料,但是我们在研发,调试过程中还是出现了一些错误。简单的一些程序好检查,但是如果说是以后要设计的一些大型程序,出现故障就不是那么容易检查了。这就要求我们在以后的工程设计当中要更为细致仔细。

4.对专业设计的许多流程、原则、注意事项以及撰写专业报告的有关事项有了一定的了解。

5.学到了书本上没有的知识,掌握了一些程序设计的技巧,对以后的学习与设计有深远影响。

总之,经过这次课程设计,我对今后的专业学习所要注意的事项有了更深刻地了解,这对我以后的学习必将产生深远的影响。

相关文档