8个LED灯循环闪烁课程设计
- 格式:docx
- 大小:129.43 KB
- 文档页数:6
黄山学院专业姓名班级学号指导老师八路循环彩灯控制电路一、 设计要求(1)设计一组8路循环彩灯控制电路,发光二极管的亮度要明显可见。
(2)、点亮要有一定的规律,即按顺序点亮。
(3)、元件、芯片的摆放要合理。
(4)、布线要紧密、尽量短(5)用protuse 仿真,1 题目分析:八路彩灯循环点亮电路功能描述:八只彩灯按顺序轮流点亮,首先点亮第一盏灯,在第一盏灯熄灭之后,点亮第二盏灯,在第二盏灯熄灭之后,再去点亮第三盏灯,依次类推,直到点亮第八盏灯,看上去的效果就像亮点从第一盏灯依次流向第八盏灯,然后又点亮第一盏灯,反复循环这一过程。
2 整体构思:彩灯的控制是用数字集成电路的构成来实现的,用彩灯(LED 发光二极管)构成一个发光矩阵。
主要用计数器和译码器等来实现,其特点是用发光二极管显示,构成具有循环功能的彩灯控制电路。
将振荡器的振荡脉冲进行计数,计数器的输出作为译码器的地址输入,经译码器控制各路彩灯依次发亮。
用框图表示如下。
3 具体实现: (1)、根据题目要求,找到可能完成此功能的芯片。
一共有八只灯所以要用74LS138 3线-8线译码器74LS161十进制上升沿计数器。
(2)、确定芯片后,完成电路图。
(3)、根据题目要求,要实现八只灯按顺序点亮电路就要用到74LS138 3线-8线译码器和74LS161具有异步清零、同步置数、可以保持状态不变的十进制上升沿计数器。
以及发光二极管、电阻、导线、电平开关和万用版。
(4)、按照电路图连接线路,检查是否连接正确 。
(5)、检查功能实现,如果不能进行调试、修改。
二、单元电路设计参考1、振荡器设计:用集成555电路构成多谐振荡器。
电路如下图所示。
振荡器计数器 译码器 8路彩灯 → → →U 0的周期: 2、计数器的选用:选四位二进制同步加/减计数器74LS161。
其引脚功能图如下所示。
其真值表如下:)C 2R 0.7(R T 21+=三、设计原理电路四、材料清单:五、protuse仿真部分截图图:六、心得体会:实验之前必须认真阅读有关方面的知识,在心中要有一个大概的模型或过程。
课程设计说明书(论文)题 目: 循环彩灯电路设计课程名称: 数字电子技术学 院: 电子信息与电气工程学院学生姓名: 李振振学 号: 201202010115专业班级: 自动化2012级2班指导教师: 翟亚芳2014 年 6 月 6日课程设计任务书循环彩灯电路设计摘要:设计了一个循环彩灯电路,该电路可以实现8个彩灯从左到右依次点亮,然后依次熄灭,且点亮和熄灭的时间间隔均为1秒的功能。
该电路主要由555定时器、74LS164移位寄存器、74LS00与非门、LED等组成,555定时器提供周期为1s的脉冲信号,74LS164和74LS00共同提供顺序脉冲,从而达到设计要求。
经Multisim仿真测试,该电路可以实现功能要求。
利用Altium Designer软件对电路进行了原理图设计和PCB设计,并对电路进行了安装和调试,调试结果正常。
关键词:循环彩灯;555定时器;74LS164移位寄存器;74LS00与非门;电路仿真;PCB设计目录1.设计背景 (1)1.1数字电路的介绍 (1)1.2时钟电路的作用及基本结构 (1)1.3Multism和Aultism软件的功能及使用 (1)2.设计方案 (2)2.1 课题任务 (2)2.2 任务分析 (2)3.实施方案 (2)3.1原理图设计 (2)3.2电路仿真 (5)3.3 PCB制作 (7)3.4安装与调试 (7)4.结果与结论 (8)5.收获与致谢 (8)6.参考文献 (9)7.附件 (9)7.1电路原理图 (9)7.2仿真图 (11)7.3PCB布线图 (11)7.4实物图 (12)7.5元器件清单 (13)1.设计背景1.1数字电路的介绍数字电子技术是信息、通信、计算机、自动控制等领域工程技术人员必须掌握的基本理论和技能。
数字电路系统的主要内容:数值、逻辑门电路、数模/模数转换电路、半导体存储器等。
数字电路系统一般包括输入电路、控制电路、输出电路、时钟电路和电源等。
电子课程设计——8路彩灯显示目录一、设计任务与要求——————————————3二、总体框图—————————————————3三、选择器件—————————————————4四、功能模块—————————————————5五、总体设计电路———————————————7六、总结———————————————————9参考文献—————————————————9八路彩灯设计一、设计任务与要求控制8个LED进行花色显示,设计五种模式:LED从左到右依次闪烁;LED 从右到左依次闪烁;LED从中间到两边依次闪烁;LED奇数指示灯依次闪烁;LED偶数指示依次闪烁。
五种模式循环切换,复位键(CLR)控制系统的运行与停止。
二、总体框图方案一:图(1)方案一框图时钟输入:给分频电路时钟脉冲;计数器:控制五种循环模式的转换;移位寄存器:通过移位实现每种模式的所有状态;LED显示:彩灯演示;清零输入:CLR键,实现复位功能。
方案二;图(2)方案二框图时钟输入:给分频电路时钟脉冲;控制电路:状态机,当时钟输入给状态机一个脉冲输入后,状态机就会自动进行第一种循环,当第一种循环结束后,状态机会自动进行下一个循环,依次类推,当第五种循环模式结束后,状态机就会自动转换到第一种模式,这样一直循环下去。
LED显示:彩灯演示;清零输入:CLR键,实现复位功能;方案选择:方案二;选择理由:结构简单,易于实现。
三、选择器件1、Quartus II 6.0 软件;2、FPGA适配器实验板:标准配置是EP1C12Q240C8;3、下载接口是数字芯片的下载接口(JTAG),下载形式为USB-Blaster,主要用于FPGA芯片的数据下载;4、时钟源;5、电源、八个LED灯。
四、功能模块1、LED(状态机)模块图(3)LED(状态机)模块LED模块由两个主控进程控制,时序进程和辅助进程组成,各进程分工明确。
在完整的循环过程中,状态机中最先启动的是以CP为敏感信号的时序进程,当时序进程被启动后,按顺序进行五种循环模式,当CLR接收到一个低电平脉冲时,循环将自动恢复到第一种循环模式,继而进行循环.2、LED模块VHDL程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cdxs isport(led : out std_logic_vector(7 downto 0);vga: out std_logic_vector(3 downto 0); ---控制小灯亮暗cp ,clr : in std_logic;ledd: out std_logic); ---20MHZ clock signalend cdxs;architecture one of cdxs is--signal fre :STD_LOGIC;signal s :std_logic_vector(5 downto 0); ---6花色signal s1 :std_logic_vector(7 downto 0); ---赋值给8个小灯beginvga<="0001";p1:process(cp,clr)beginif clr='1' thens<= "000000";ledd<=s(1);elsif cp'event and cp='1' thenif s<="100010" then s<=s+1;elses<="000000";end if;end if;ledd<=s(1);if s= "000000" then s1<="10000000";elsif s= "000001" then s1<="01000000";elsif s= "000010" then s1<="00100000";elsif s= "000011" then s1<="00010000";elsif s= "000100" then s1<="00001000";elsif s= "000101" then s1<="00000100";elsif s= "000110" then s1<="00000010";elsif s= "000111" then s1<="00000001";elsif s= "001000" then s1<="00000010";elsif s= "001001" then s1<="00000100";elsif s= "001010" then s1<="00001000";elsif s= "001011" then s1<="00010000";elsif s= "001100" then s1<="00100000";elsif s= "001101" then s1<="01000000";elsif s= "001110" then s1<="10000000";elsif s= "001111" then s1<="00011000";elsif s= "010000" then s1<="00100100";elsif s= "010001" then s1<="01000010";elsif s= "010010" then s1<="10000001";elsif s= "010011" then s1<="10000000";elsif s= "010100" then s1<="00100000";elsif s= "010101" then s1<="00001000";elsif s= "010110" then s1<="00000010";elsif s= "010111" then s1<="01000000";elsif s= "011000" then s1<="00010000";elsif s= "011001" then s1<="00000100";elsif s= "011010" then s1<="00000001";elsif s= "100000" then s1<="11111111";else s1<="00000000";end if;led<=not s1;3、仿真结果图(4)时序仿真图仿真分析:有仿真结果可以看出,在清零端 CLR输入无效时,在时钟脉冲的作用下,LED[7..0]的状态分别为011111111,10111111,11011111,11101111,11110111,11111011,11111101,11111110。
单片机8个led灯循环点亮程序一、前言单片机是一种非常重要的电子元件,它可以通过编程来实现各种功能。
其中,点亮LED灯是最基础的操作之一。
本文将介绍如何使用单片机8个LED灯循环点亮。
二、硬件准备1. 单片机:STC89C52RC或其他8051系列单片机;2. LED灯:8个;3. 电阻:8个(220欧姆);4. 面包板:1个;5. 杜邦线:若干。
三、程序设计首先,我们需要了解一些基本的概念和知识:1. 端口:单片机的I/O口被称为端口,其中P0、P1、P2、P3四个端口分别对应着不同的引脚。
2. 输出:通过控制端口输出高电平或低电平来控制外部设备。
3. 延时函数:为了让程序在执行时停留一段时间,需要使用延时函数。
接下来,我们开始编写程序。
具体步骤如下:1. 定义引脚首先,我们需要定义每个LED所对应的引脚。
这里我们将8个LED分别连接到P0口的0~7引脚上。
sbit led0=P0^0;sbit led1=P0^1;sbit led2=P0^2;sbit led3=P0^3;sbit led4=P0^4;sbit led5=P0^5;sbit led6=P0^6;sbit led7=P0^7;2. 定义延时函数为了让程序在执行时停留一段时间,我们需要定义一个延时函数。
这里我们使用循环来实现延时。
void delay(unsigned int i){while(i--);}3. 循环点亮LED灯接下来,我们就可以开始循环点亮LED灯了。
这里我们使用for循环来实现。
void main(){while(1){for(int i=0;i<8;i++){switch(i){case 0:led0=1;break;case 1:led1=1;break;case 2:led2=1;break;case 3:led3=1;break;case 4:led4=1;break;case 5:led5=1;break;case 6:led6=1;break;case 7:led7=1;break;}delay(50000);switch(i){case 0:led0=0;break;case 1:led1=0;break;case 2:led2=0;break;case 3:led3=0;break;case 4:led4=0;break;case 5:led5=0;break;case 6:led6=0;break;case 7:led7=0;break;}}}}四、总结通过以上步骤,我们就可以实现单片机8个LED灯循环点亮的程序了。
单⽚机实训报告(8个LED指⽰灯循环移动)⼀、实验⽬的:通过所学汇编语⾔和C语⾔知识,熟悉并掌握单⽚机综合仿真实验仪的使⽤⽅法,学会使⽤Keil uVision2编写程序。
⼆、实验器材:单⽚机综合仿真实验仪、AT89C51、计算机、导线。
三、实验功能:利⽤定时计数器T0⼯作⽅式1,实现定时50ms,中断20次,实现精确定时1秒以控制8个LED指⽰灯从左到右间隔1秒时间循环移动,当LED指⽰灯移动次数到32次时,8个LED指⽰灯停⽌循环移动,蜂鸣器响1秒后停⽌声⾳提⽰;⼜接着控制8个LED指⽰灯从右到左间隔1秒时间循环移动,依此类推。
四、实验要求:只能利⽤单⽚机的4个P1⼝控制74HC138译码器以及蜂鸣器来实现上述功能,并对程序进⾏注解;注明:刚开始时,最左边的LED指⽰灯点亮,画出电路图。
五、计算定时/计数器的初值X(2^16-X)*1=50000,X=15536D=03CB0H.低8位送给TL0,⾼8位送给TH0,即(TL0)=0B0H,(TH0)=03CH六、实验原理图:七、实验参考程序:#includebit direct=1,speak=0,counter=0;int i=0,j=0,k=0,p=0,m,n;sbit P13=P1^3; //定义P1.3引脚main() //主函数{TMOD=0x01; //T0计数⽅式1TL0=0xb0; //定时50msTH0=0x3c;EA=1; //开T0中断ET0=1;TR0=1; //启动T0 while(1) //等待中断{while(speak){P13=~P13; //输出取反for(m=0;m<2;m++)for(n=0;n<2;n++);}if(counter){counter=0;TR0=1;if(direct&&!speak){P1=i;i++;if(i==8){j++;if(j==4){j=0;direct=0;speak=1;}elsei=0;}}else if(!direct&&!speak){i--; //循环右移P1=i;if(i==0){j++; //循环左移if(j==4) //移动周期{j=0;direct=1;speak=1;}elsei=8;}}}}}void time0(void) interrupt 1 //T0中断服务函数{ TR0=0; //重启动TL0=0xb0; //重装初值TH0=0x3c;if(speak){++p;if(p==20) //蜂鸣器响应时间{p=0;speak=0;}}else++k;if(k==20) //LED灯间隔1秒移动{k=0;counter=1;}elseTR0=1;}⼋、实验总结:通过这次实训,我拓宽了知识⾯,锻炼了能⼒,综合素质得到较⼤提⾼。
摘要“微机原理与接口技术”是高等学校电子信息工程、通信工程、自动化、电气工程及其自动化等工科电气与电子信息类各专业的核心课程。
该课程以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灯以十种不同的方式显示。
目录第一章总体设计 (5)1.1设计目的 (5)1.2设计任务与要求 (5)1.3基本工作原理 (5)1.4设计方案 (5)第二章单片机简介 (6)2.1单片机结构 (6)2.2单片机的封装形式、引脚定义及功能 (7)2.3单片机的工作原理 (8)2.4 CPU的工作原理 (8)2.5存储器结构 (9)2.6 CPU时序及时钟电路 (10)2.7复位操作 (12)第三章硬件设计 (14)3.1整体硬件接结构 (14)3.2功能模块电路 (14)3.3系统硬件原理电路图 (16)第四章软件设计 (17)4.1软件总体结构设计 (17)4.2各功能模块设计 (18)总结与心得 (25)参考文献: (26)第一章总体设计1.1设计目的1)了解单片机的基本原理及相关的简单应用。
2)掌握用单片机设计系统的一般步骤。
3)了解LED数码管的基本知识和驱动方法。
4)掌握单片机系统各个组成部分的作用以及分布位置。
5)学会运用单片机的硬件资源。
1.2设计任务与要求8个彩灯的控制电路的任务为:用AT89S51单片机设计设计一个8个彩灯控制电路。
要求:完成以下花形变化:1) 从左到右依次点亮,8个灯全亮;从右到左依次熄灭,8个灯全灭。
时间节拍为1秒。
2)从两边向中间依次点亮,8个灯全亮;从中间向两边依次熄灭,8个灯全灭。
时间节拍为1秒。
3)循环往复,用LED管模拟彩灯。
4)用汇编语言编程,用proteus仿真。
1.3基本工作原理此次使设计一个能控制八路彩灯的控制器,其中彩灯用发光二极管模拟。
由P1.6和P1.7口控制电路启动与停止,根据彩灯的亮灭要求,利用数据指针查表,将查到的内容送给P2口进行显示,然后调用1s延时程。
若查到的内容为跳出代码就重新开始循环。
1.4设计方案软件方面:通过汇编语言编程实现不同要求的状态,由延时程序实现1秒的延时时间。
硬件方面:彩灯启动与停止由P1.6和P1.7口进行控制,彩灯的显示状态由AT89C51的P2口输出显示。
说明书目录1前言 (1)1.1序言 (1)1.2目前彩灯的应用情况 (1)1.3主要工作概述 (2)2 总体方案设计 (3)2.1方案比较 (3)2.2方案论证 (4)2.3方案选择 (4)3.单元模块电路设计 (5)3.1时钟信号发生器 (5)3.2 序列信号发生器 (7)3.3 移位输出显示电路 (13)4软件设计 (16)4.1Proteus仿真软件 (16)4.2 Altium designer软件 (16)4.3软件的设计结构 (18)5系统调试 (19)5.1脉冲信号发生器的调试 (19)5.2序列信号发生器和以为输出显示电路调试 (20)5.3整体电路的调试 (20)5.4系统实现的功能 (21)6设计总结与收获 (22)7 参考文献 (24)附录:彩灯显示控制电路原理图 (25)说明书1前言1.1序言由于集成电路的迅速发展,使得数字逻辑电路的设计发生了根本性的变化。
在设计中更多的使用中,规模集成电路,不仅可以减少电路组件的数目,使电路简捷,而且能提高电路的可靠性,降低成本。
因此用集成电路来实现更多更复杂的器件功能则成为必然。
随着社会市场经济的不断繁荣和发展,各种装饰彩灯、广告彩灯越来越多地出现在城市中。
在大型晚会的现场,彩灯更是成为不可缺少的一道景观。
小型的彩灯多为采用霓虹灯电路则不能胜任。
在彩灯的应用中,装饰灯、广告灯、布景灯的变化多种多样,但就其工作模式,可分为三种主要类型:管做成各种各样和多种色彩的灯管,或是以日光灯、白炽灯作为光源,另配大型广告语、宣传画来达到效果。
这些灯的控制设备多为数字电路。
而在现代生活中,大型楼宇的轮廓装饰或大型晚会的灯光布景,由于其变化多、功率大,数字长明灯、流水灯及变幻灯。
长明灯的特点是只要灯投入工作,负载即长期接通,一般在彩灯中用以照明或衬托底色,没有频繁的动态切换过程,因此可用开关直接控制,不需经过复杂的编程。
流水灯则包括字形变化、色彩变化、位置变化等,其主要特点是在整个工作过程中周期性地花样变化。
led8路彩灯课程设计一、课程目标知识目标:1. 学生能理解LED的基础知识,掌握8路彩灯电路的组成与原理。
2. 学生能描述8路彩灯程序设计的基本步骤,了解程序中用到的关键代码和功能。
3. 学生了解电子制作中的安全性知识,认识到安全意识在实践活动中的重要性。
技能目标:1. 学生能够独立完成8路彩灯电路的搭建,并编写控制程序使其正常工作。
2. 学生通过动手实践,培养解决实际问题的能力,提高电子电路故障排查与处理技巧。
3. 学生能够运用所学知识,发挥创意,设计并实现具有个性化的LED彩灯效果。
情感态度价值观目标:1. 学生培养对电子科学的兴趣,激发探究未知世界的热情。
2. 学生通过合作学习,培养团队协作意识,学会分享与交流。
3. 学生在创作过程中,认识到科技与生活的密切关系,增强环保意识和社会责任感。
二、教学内容本课程以《电子技术基础》教材中关于LED应用的相关章节为基础,结合以下教学内容:1. LED基础知识:介绍LED的发光原理、种类、参数及其在电子电路中的应用。
- 教材章节:第二章第二节“发光二极管”2. 8路彩灯电路设计:讲解8路彩灯电路的组成、工作原理及电路图的识读。
- 教材章节:第三章第三节“数字电路及其应用”3. 程序设计:学习8路彩灯控制程序的基本结构、编程方法和关键代码。
- 教材章节:第五章“微控制器与应用”4. 动手实践:指导学生进行8路彩灯电路搭建、编程及调试。
- 实践内容:按照教学大纲,分阶段完成电路搭建、程序编写及故障排查。
5. 安全制作:强调电子制作过程中的安全意识,教授安全操作方法。
- 教材章节:第一章“电子制作安全常识”教学进度安排:1. 第1课时:LED基础知识学习及电路原理讲解。
2. 第2课时:8路彩灯电路设计及程序设计方法。
3. 第3课时:动手实践,分组完成8路彩灯制作及调试。
4. 第4课时:总结分享,展示作品,交流心得。
教学内容确保科学性和系统性,注重理论与实践相结合,培养学生动手能力和创新意识。
51单片机8个发光二极管闪烁设计方案1. 方案目标本方案旨在设计一个基于51单片机的电路和程序,实现8个发光二极管的闪烁效果。
具体目标如下:1.实现8个发光二极管的交替闪烁。
2.控制每个发光二极管的亮灭时间和频率。
3.确保方案具有可行性和高效性。
2. 实施步骤2.1 硬件设计根据目标需求,我们需要以下硬件组件:1.51单片机(如STC89C52):作为主控芯片,负责控制8个发光二极管的亮灭状态。
2.8个发光二极管:用于显示亮灭状态。
3.8个电流限流电阻:用于限制发光二极管的工作电流,防止过流损坏。
4.连接线:用于连接主控芯片、发光二极管和电流限流电阻。
硬件连接步骤如下:1.将主控芯片与发光二极管之间通过连接线连接起来。
2.将每个发光二极管与对应的电流限流电阻连接起来,确保电流在安全范围内。
2.2 软件设计软件设计包括编写主控芯片的程序代码,实现对8个发光二极管的控制。
以下是一个基本的软件设计思路:1.定义8个IO口用于连接发光二极管,并设置为输出模式。
2.定义一个变量ledState表示当前发光二极管的亮灭状态,初始值为0。
3.在主循环中,通过改变ledState的值来控制发光二极管的亮灭状态。
4.使用延时函数或定时器来控制每个发光二极管的亮灭时间和频率。
具体步骤如下:1.初始化IO口:将8个IO口设置为输出模式。
2.定义变量:定义一个整型变量ledState用于记录当前发光二极管的亮灭状态,默认为0。
3.进入主循环:–设置第一个发光二极管为亮,其他7个发光二极管为灭。
–延时一段时间(如200ms)。
–设置第一个发光二极管为灭,第二个发光二极管为亮,其他6个发光二极管为灭。
–延时一段时间(如200ms)。
–重复以上步骤,依次控制每个发光二极管的亮灭状态。
4.返回主循环。
2.3 预期结果通过上述硬件和软件设计,我们可以实现8个发光二极管的交替闪烁效果。
具体预期结果如下:1.8个发光二极管按照顺序交替亮灭。
摘要
“微机原理与接口技术”是高等学校电子信息工程、通信工程、自动化、电气工程及其自动化等工科电气与电子信息类各专业的核心课程。
该课程以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.学到了书本上没有的知识,掌握了一些程序设计的技巧,对以后的学习与设计有深远影响。
总之,经过这次课程设计,我对今后的专业学习所要注意的事项有了更深刻地了解,这对我以后的学习必将产生深远的影响。