当前位置:文档之家› lcd 1602 VHDL编程流水灯设置

lcd 1602 VHDL编程流水灯设置

lcd 1602 VHDL编程流水灯设置
lcd 1602 VHDL编程流水灯设置

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code.

--library UNISIM;

--use UNISIM.VComponents.all;

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code.

--library UNISIM;

--use UNISIM.VComponents.all;

entity div10 is

port(clk:in std_logic;

clkout:out std_logic);

end div10;

architecture Behavioral of div10 is

signal counter:std_logic_vector(2 downto 0):="000";

signal clk_tmp:std_logic:='0';

begin

process(clk)

begin

if rising_edge(clk) then

if counter="100" then

counter<=(others =>'0');

clk_tmp<=NOT clk_tmp;

else

counter<=counter+'1';

end if;

end if;

end process;

clkout<=clk_tmp;

end Behavioral;

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

---- Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code.

--library UNISIM;

--use UNISIM.VComponents.all;

entity fenpin is

port(rst,clkin:in std_logic;

led:out std_logic_vector(3 downto 0);

end fenpin;

architecture Behavioral of fenpin is

signal cnt:std_logic_vector(1 downto 0);

component div10

port( clk:in std_logic;

clkout:out std_logic);

end component;

signal f_10M,f_1M,f_100K,f_10K,f_1K,f_100,f_10,f_1:std_logic:='0'; begin

u1:div10 port map(clk=>clkin,clkout=>f_10M);

u2:div10 port map(clk=>f_10M,clkout=>f_1M);

u3:div10 port map(clk=>f_1M,clkout=>f_100K);

u4:div10 port map(clk=>f_100K,clkout=>f_10K);

u5:div10 port map(clk=>f_10K,clkout=>f_1K);

u6:div10 port map(clk=>f_1K,clkout=>f_100);

u7:div10 port map(clk=>f_100,clkout=>f_10);

u8:div10 port map(clk=>f_10,clkout=>f_1);

process(rst,f_1)

begin

if rst='1' then

led<="0000";

elsif rising_edge(f_1) then

if (cnt="11") then

cnt<="00";

else

cnt<=cnt+'1';

end if;

case cnt is

when"00"=>led<="0001";

when"01"=>led<="0010";

when"10"=>led<="0100";

when"11"=>led<="1000";

when others=>led<="0000"; end case;

end if;

end process;

end Behavioral;

lcd1602四线驱动

LCD1602 4 位数据线连接方式驱动程序(转载) 2008-10-14 11:00 LCD1602 4 位数据线连接方式驱动程序(转载) /* 单片机 I/O口使单片机资源的重要组成部分,也是用来扩展外围设备的必选资源, 尽可能以更少的 I/O口实现更多的功能是单片机工程师追求的目标,现在的一些串 行器件也为这一目标的实现添加了更多的可能性,比如 I2C总线,MAXIM 力推 的 1-WIRE 等等,都可以以很少的I/O 口实现更多的功能,当然这是以降低一定的速度 为代价的。 显示器件多见的是 LED数码管,LCD 液晶屏等。一般的数码管成本低廉,在显示内 容要求不多的时候适用;LCD 液晶屏以更多的显示空间得到了许多人的爱好,不过 成本上要高的多(市场价在 20元左右),本文以 LCD1602为例说明如何驱动液晶屏。 LCD1602 外接的控制接口有RS,R/W,E;数据接口为 DB7--DB0。总共有11 跟 线与单 片机的 I/O口连接,若使用标准的 51单片机,至少占用了一个端口再加上另一个端 口的部分 I/O 口。这再很多应用场合是不大可取的。所以很有必要减少连接数。从 其数据手册上介绍的 4线连接方式可以达到只使用 7个 I/O口即可满足要求,其中为 3 个控制口 RS , R/W , E 和数据口的 DB7--DB 4 ;写入数据或指令的顺序是先写高半个 字节,再写低半个字节。 其中 P2 口的高四位接到 LCD1602 的 DB7-DB4,P2.2-P2.3 分别接 RS,E; RW 接地

下面给出驱动源程序*/ /* -------------------------------------------------------- 液晶 LCD1602C 使用4 条数据线(D4~D7) ---------------------------------------------------------- */ /* ------------------------------------------------------------ LCD 引脚定义 1---GND 2---VCC 3---VO 4---RS 5---RW 6---EN 7 到 14--D0-D7 15--背景灯+ 16--背景灯- ---------------------------------------------------------------- */ #include #include #define LCD_DATA P2 sbit LCD1602_RS=P2^2; sbit LCD1602_EN=P2^3; //1602_RW 接地 int p=0; /* 函数说明 ----------------------------- */ void LCD_init(void);

EDA课程设计---流水灯设计

EDA课程设计流水灯设计

目录 一、摘要··3 二、流水灯设计目的··4 三、流水灯设计流程··4 四、流水灯设计程序··5 五、流水灯设计管脚分配··7 六、功能仿真图··8 七、原理图波形图··9 八、设计注意事项··10

九、课程设计总结··11 十、参考文献··12 十一、评分表··13 一、摘要 随着EDA技术发展和应用领域的扩大与深入,EDA技术在电子信息、通讯、

自动控制及计算机应用等领域的重要性突出。随着技术市场与人才市场对EDA 的需求不断提高,产品的市场需求和技术市场的要求也必然会反映到教学领域和科研领域中来。因此学好EDA技术对我们有很大的益处。EDA是指以计算机为工具,在EDA软件平台上,根据设计社描述的源文件(原理图文件、硬件描述语言文件或波形图文件),自动完成系统的设计,包括编译、仿真、优化、综合、适配(或布局布线)以及下载。 流水灯是一串按一定的规律像流水一样连续闪亮,流水灯控制是可编程控制器的一个应用,其控制思想在工业控制技术领域也同样适用。流水灯控制可用多种方法实现,但对现代可编程控制器而言,基于EDA技术的流水灯设计也是很普遍的。 课程设计主要的目的是通过某一电路的综合设计,了解一般电路综合设计过程、设计要求、应完成的工作内容和具体的设计方法、通过设计也有助于复习、巩固以往的学习内容、达到灵活应用的目的。在设计完成后,还要将设计的电路进行安装、调试以加强学生的动手能力。在此过程中培养从事设计工作的整体观念。 课程设计应强调以能力培养为主,在独立完成设计及制作任务同时注意多方面能力的培养与提高,主要包括以下方面: ·独立工作能力和创造力。 ·综合运用专业及基础知识,解决实际工程技术问题的能力。 ·查阅图书资料、产品手册和各种工具书的能力。 ·写技术报告和编制技术资料的能力。 ·实际动手能力。

单片机流水灯课程设计

单片机流水灯课程 设计

基于AT89C51单片机的流水灯 1 引言 1.1 课题简介 单片机全称叫单片微型计算机(Single Chip Microcomputer),是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 当前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:在智能仪器仪表上的应用,例如精密的测量设备;在工业控制中的应用,用单片机能够构成形式多样的控制系统、数据采集系统,例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算

机联网构成二级控制系统等;在家用电器中的应用可从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。单片机在医用设备领域中的应用,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等;在各种大型电器中的模块化应用,如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。 本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。本系统就是充分利用了8051芯片的I/O引脚。系统以采用MCS-51系列单片机Intel8051为中心器件来设计LED流水灯系统,实现8个LED霓虹灯的左、右循环显示,并实现循环的速度可调。 1.2 设计目的 (1) 学习基本理论在实践中综合运用的初步经验,掌握电路设计的基本方法、设计步骤,培养综合设计与调试能力。 (2) 掌握汇编语言程序设计方法。 (3) 培养实践技能,提高分析和解决实际问题的能力。 1.3 设计任务及要求 (1) 彩灯用8个发光二极管代替。 (2) 电路具有控制彩灯点亮右移、左移、全亮及全灭等功能。

流水灯课程设计(免费)..

数字电子技术课程设计报告 (彩灯控制器) 专 专业:电子信息工程 班级:7B1211 学号:123025 姓名:白旭飞 年月:2014-6-28

一、设计要求 1. 以8或10个指示灯作为显示器件,能自动的从左到右、从右到左自动的依次被点亮,如此周而复始,不断循环。 2.打开电源时控制器可自动清零,每个指示灯被点亮的时间相同约为0.5S~2S 范围内。 3.用计算机画出设计电路图,进行仿真分析验证其正确性。 4.写设计说明书一份(画总原理框图以及说明主要工作原理,单元电路的设计和元器件的选择,画出完整的电路图和元器件明细表,收获、体会及建议) 二、设计的作用,目的 1.作用 利用控制电路可使彩灯(例如霓虹灯)按一定的规律不断的改变状态,不仅可获得良好的观赏效果,且可以省电(与彩灯全亮相比)。 2.目的 用NE555芯片,74LS151芯片,74LS163芯片,74LS194,以及一些逻辑门芯片完成彩灯控制器。 三、设计的具体实现 1.系统概述 接通电源时,555占空比可调振荡器产生1s单位的脉冲,脉冲送到下一个模块74LS151计数器,目的实现模5计数器,达到每五秒生成一个脉冲输向下一个芯片74LS194移位寄存器以及计数器74LS163。进而彩灯在脉冲的作用下依次点亮,并实现循环,完成实验要求。 2.总体思路 先用555定时器用来生成1s标准单位cp脉冲,把脉冲给计数器74LS151,通过74LS151形成模5加法计数器,再将74LS151输出信号供给74LS194移位寄 存器输入端,Q 0,Q 1, Q 2 和Q 3 接彩灯然后连接几个逻辑门,把74LS194接成环形 计数器。就能实现基本电路要求。 3.方案设计 总体电路共分三大块。第一块实现时钟信号的产生;第二块实现灯亮灭情况的演示;第三块实现灯亮灭的控制及节拍控制。

微机原理课程设计流水灯控制系统.doc

微机原理课程设计 流水灯控制系统 姓名 :XX 学院:物理电气信息学院 班级: 2010 电子 姓名 :12010245

流水灯控制系统 一、设计内容: 本课程设计选用8086 对 8255A的 A口控制来实现模拟流水灯功能的 实现。编写相关程序,通过proteus仿真软件来实现我名字“安亮” 两个字的闪烁,“安”字接 8255 的 A 口的 P0,“亮”字接 A 口的 P1。先让“安”字和“亮”字同时点亮,再让两个字同时暗,接着让“安”字点亮,再让“亮”字点亮,然后让“安”字和“亮”字同时亮暗闪 烁八次,再跳到开始,以此循环。 二、设计目的: 1、了解流水灯的基本工作原理 2、熟悉 8255A 并行接口的各种工作方式和应用 3、利用 8255A 接口,LED 发光二极管,设计一个流水灯模拟系统,让我的名字“安亮”两个字按一定规律点亮。 三、实验原理 在 8086 系统中,采用 16 位数据总线,进行数据传输时,CPU

总是将低 8 位数据线上的数据送往偶地址端口,而过高8位数据线上 的数据送往奇地址端口反过来,从偶地址端口取得的数据总是通过低 8 位数据线传送到CPU,从奇地址端口取得的数据总是通过高8 位数据线送到 CPU。在 8086 系统中,将 8255A的 A1端和地址总线的 A29255A 在对 CPU并且,相连, A1 端和地址总线的 A0 的 8255A 而将相连, 的端口进行访问时,将地址总线的 A0 位总是设置为 0。本课程设计通 过对 8255A 的 A 口控制来实现模拟流水灯功能的实现。“安”接 A 口 的 P0,“亮”接 A口的 P1,实现两个字按一定规律的一个闪烁。 8255 的内部结构 255A 内部结构由以下四部分组成:数据端口A、B、C;A组控制和 B 组控制;读 / 写控制逻辑电路;数据总线缓冲器。 端口 A:包括一个 8 位的数据输出锁存 / 缓冲器和一个 8 位的数据 输入锁存器,可作为数据输入或输出端口,并工作于三种方式中的任何一种。

花样流水灯课程设计.

课程论文 花样流水灯的设计 课程单片机技术及系统设计 学生姓名 学号 所在学院 所在班级 任课教师 提交时间2014年5月 25日至2014年5月30日

目录 一.前言 1.1 设计概述................................................................................ (2) 1.2设计主要功能 (2) 二.设计过程 2.1原理图中所使用的元器件功能 (3) 2.2程序在功能实现过程中的作用 (5) 三体会 3.1课程设计体会 (5) 四. 文献 4.1参考文献 (6) 五. 附录 5.1流水灯电路图 (7) 5.2流水灯程序 (7)

摘要:当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。 关键词:单片机控制系统流水灯 一.前言 1.1设计概述 整个系统工作由软件程序控制运行,根据需要,可以上电后系统经过初始化,进入用户设定模式状态。于AT89C51单片机的彩灯控制方案,实现对LED灯的控制。本方案以AT89C52单片机作为主控核心,与驱动等模块组成核心主控制模块。在主控模块上设有晶振电路和8个LED灯,根据需要编写若干种亮灯模式,根据各种亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号 1.2设计主要功能 通过发光二极管显示不同的花样,并且可以通过按键来控制流水灯的速度通过学习单片机工作原理和各种工作方式及各管脚的功能,想通过P3 口的俩管脚P3.2和P3.3第二功能,即外部中断来使CPU 响应,达到控制流水灯的目的

LCD1602资料及单片机对其驱动

技术支持:https://www.doczj.com/doc/1d18800708.html,/bbs 主 讲:wang1jin Wang1jin 带您从零学单片机 配套开发板:WJ-V4.0 AVR+51开发板 第三章:LCD 部分

技术支持:https://www.doczj.com/doc/1d18800708.html,/bbs 主 讲:wang1jin 单片机驱动LED ?LCD1602简介 ?LCD1602硬件原理图?LCD1602工作方式?LCD1602时序及应用?LCD1602显示应用流程 ?实例操作:在LCD1602上显示一个字符?实例操作:在LCD1602上显示一串字符?实例操作:在LCD1602上显示自定义图形

这里介绍的字符型液晶模块是一种用 5x7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等,这里我们使用常用的2行16个字的LCD1602液晶模块来介绍它的编程方法。 技术支持:https://www.doczj.com/doc/1d18800708.html,/bbs 主讲:wang1jin

LCD1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,其代码与标准的ASCII字符代码一致。因此,我们只要写入显示字符的ASCII码即可,这种标准化的设计给使用带来很大的方便。 比如大写的英文字母“A”的ASCII代码是01000001B (41H),显示时单片机往液晶模块写入显示指令,模块就把地址41H中的点阵字符图形显示出来,我们就能在相应位置上看到字母“A”。 技术支持:https://www.doczj.com/doc/1d18800708.html,/bbs 主讲:wang1jin

花样流水灯设计

单片机课程设计 2014年 6月 15日 课 程 单片机课程设计 题 目 花样流水灯 院 系 电气工程及其自动化系 专业班级 1112班 学生姓名 温亿锋 学生学号 201111631227 指导教师 张瑛

一丶任务 设计一款以AT89C51单片机作为主控核心,按键控制电路、流水灯显示电路以及单片机最小系统等模块组成的核心主控制电路。 二丶设计要求 通过发光二极管显示不同的花样(至少有六种花样),并且可以通过按键来控制流水灯的速度。 三丶设计方案 本方案主要是通过对基于单片机的多控制、多闪烁方式的LED流水灯循环系统的设计,来达到本设计的要求。其硬件构成框图如下图所示,以单片机为核心控制,由单片机最小系统(时钟电路、复位电路、电源)、按键控制电路、LED 发光二极管和5V直流电源组成。 单片机流水灯循环控制系统硬件框图 此设计方案中单片机的P1口接5路按键控制电路,实现流水灯花型的切换功能;单片机的P3.7引脚接上一个按钮开关以实现对流水灯闪烁频率的控制,即实现了快慢两种节拍实现花型的变换;单片机上的P2口接八路LED发光二极管组成流水灯电路,显示流水灯循环情况。 四丶系统硬件设计 4.1 直流稳压电源电路

对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源电路的稳定可靠是系统平稳运行的前提和基础。电子设备除用电池供电外,还采用市电(交流电网)供电。通过变压、整流、滤波和稳压后,得到稳定的直流电。直流稳压电源是电子设备的重要组成部分。本项目直流稳压电源为+5V。 直流稳压电源的制作一般有3种制作形式,分别是分立元件构成的稳压电源、线性集成稳压电源和开关稳压电源。下图为稳压电源采用的是三端集成稳压器7805构成的正5V直流电源。 三端固定式集成稳压电源电路图 AT89C51单片机的工作电压范围:4.0V---5.5V,所以通常给单片机外接5V 直流电源。此处用3节1.5V的干电池供电。 4.2 单片机最小系统 要使单片机工作起来,最基本的电路的构成由单片机、时钟电路、复位电路等组成,单片机最小系统如图所示。 时钟电路:本系统采用单片机内部方式产生时钟信号,用于外接一个12MHz 石英晶体振荡器和2个30pF微调电容,构成稳定的的自激振荡器,其发出的脉冲直接送入内部的时钟电路。 复位电路:确定单片机工作的起始状态,完成单片机的启动过程。单片机系统的复位方式有上电自动复位和手动按键复位。本设计采用手动按键复位,该复位方式同样具有上电自动复位功能。

流水灯课程设计

河南理工大学 电子技术课程设计报告 心 形 流 水 灯 姓名:明* 学号:3110080020** 专业班级:电气10-7班 指导老师:李端 所在学院:电气工程与自动化学院、

目录 摘要 (3) 一、设计指标(要求) (4) 二、系统框图 (4) 三、各单元电路设计、参数计算和元器件选择 3.1 脉冲产生电路 (5) 3.2 复位电路 (8) 3.3 分频电路 (8) 3.4 移位控制电路 (10) 3.5 显示部分 (11) 四、电路图及工作原理 (12) 五、元器件清单 (12) 六、实际PCB图或布线 (13) 七、设计总结 7.1 电路的特点和方案的优缺点 (13) 7.2 心得体会 (14) 八、参考文献 (15)

摘要 随着时代的进步,人们审美方式的提高,流水灯在都市生活中扮演着愈加不可或缺的角色。酒店,婚庆,酒吧,KTV,广场,商场,招牌等场所的流星雨灯条、流水瀑布灯、月花灯等,给人以繁星闪耀,流水似瀑的感觉。而彩色LED闹钟,手机外壳的跑马灯的应用点缀了我们的日常生活。 流水灯的控制方法可通过多种方法实现,但相对现代可编程控制器而言,利用移位寄存器实现最为便利。通常用左移寄存器实现灯的单方向移动,通过双向移位寄存器实现灯的双向移动。 此次课程设计,是通过制作四路流水灯来实现18个LED心形灯的控制。 关键词:双向移位寄存器,NE555脉冲电路,LED灯。

一、 设计指标 (1)输出为4路(18个)LED 灯; (2)要求能实现左移右移功能,左右移自动切换; (3)移动速度可调节 (4)每个循环左移和右移的步数和变化规律自定。 二、系统框图

LCD1602液晶显示实验要点

实验报告 实验名称: [LCD1602液晶显示实验]姓名: 学号: 指导教师: 实验时间: [2013年6月15日] 信息与通信工程学院

LCD1602液晶显示实验 1.实验原理 1.1 基本原理 1.1.1 1602字符型LCD简介 字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。 1.1.2 1602LCD的基本参数及引脚功能 1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图1-2所示: 图1-2 1602LCD尺寸图 1.1602LCD主要技术参数: 显示容量: 16×2个字符 芯片工作电压: 4.5~5.5V 工作电流: 2.0mA(5.0V) 模块最佳工作电压: 5.0V 字符尺寸: 2.95×4.35(W×H)mm 2.引脚功能说明: 1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表: 表1-3引脚接口说明表 编 符号引脚说明编号符号引脚说明 号 1 VSS 电源地9 D 2 数据 2 VDD 电源正极10 D 3 数据 3 VL 液晶显示偏压11 D 4 数据 4 RS 数据/命令选择12 D 5 数据 5 R/W 读/写选择13 D 6 数据 6 E 使能信号14 D 7 数据 7 D0 数据15 BLA 背光源正极 8 D1 数据16 BLK 背光源负极

1.1.3 1602LCD的指令说明及时序 1602液晶模块内部的控制器共有11条控制指令,如表1-4所示: 表1-4 控制命令表 序号指令RS R/W D7 D6 D5 D4 D3 D2 D1 D0 1 清显示0 0 0 0 0 0 0 0 0 1 2 光标返回0 0 0 0 0 0 0 0 1 * 3 置输入模式0 0 0 0 0 0 0 1 I/D S 4 显示开/关控制0 0 0 0 0 0 1 D C B 5 光标或字符移位0 0 0 0 0 1 S/C R/L * * 6 置功能0 0 0 0 1 DL N F * * 7 置字符发生存贮器 地址 0 0 0 1 字符发生存贮器地址 8 置数据存贮器地址0 0 1 显示数据存贮器地址 9 读忙标志或地址 0 1 BF 计数器地址 10 写数到CGRAM或 DDRAM) 1 0 要写的数据内容 11 从CGRAM或 DDRAM读数 1 1 读出的数据内容 1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)读写操作时序如图1-5和1-6所示: 图1-5 读操作时序

Proteus花样流水灯课程设计

Proteus花样流水灯课程设计

课程论文 题目:基于51单片机LED流水灯设计 课程名称: 学生姓名: 学生学号: 系别: 专业: 年级: 任课教师: 电气信息工程学院制 1月 基于51单片机的LED流水灯设计

1 单片机AT89C51芯片简介 MCS-51兼容4K字节,可编程闪烁存储器,寿命:1000写/擦循环,数据保留时间:。全静态工作:0Hz—24Hz,三级程序存储器锁定。128*8位内部RAM,32可编程I/O线,两个16位定时器/计数器,5个中断源可编程串行通道,低功耗的闲置和掉电模式,片内震荡器和时钟电路。 图1 AT89C51芯片

1.1电源引脚 Vcc(40脚):典型值+5V。 Vss(20脚):接低电平。 1.2外部晶振 XTAL1、XTAL2分别与晶振两端相连接。 1.3输入输出口引脚 P0口:I/O双向口。作输入口时,应先软件置“1”. P0口:是一个8位漏极开路输出型双向I/O端口。作为输出端口时,每位能以吸收电流的方式驱动8 个TTL输入,对端口写1时,又可作高阻抗输入端用。在访问外部程序或数据存储器时,它是时分多路转换的地址(低8位)/数据总线,在访问期间将激活内部的上拉电阻。 1.4控制引脚 RST、ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51的控制总线。 RST (9脚):复位信号输入端(高电平有效)。ALE/-PROG(30脚):地址锁存信号输出端.第一功能:编程脉冲输入。-PSEN(29脚):外部程序存储器读选通信号。-EA/Vpp(31脚):外部程序存储器使能端。第二功能:编程电压输入端(+21V)。 2硬件电路 2.1晶振电路 单片机晶振的作用是为系统提供基本的时钟信号。一般一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使

流水灯课程设计

基于单片机的流水灯设计 学院: 专业: 指导老师: 姓名: 班级: 学号: 年月日

摘要:当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。 This age is a new technology emerge in endlessly era, in the electronic field especially automation intelligent control field, the traditional schism components or digital logic circuit, is composed of control system with unprecedented speed was replaced by microcontroller intelligent control system. SCM has small, strong function, low cost, etc, it can be said that wide application, intelligent control and automatic control core is the microcontroller. 关键词:LED 单片机控制系统流水灯 目录 1.前言 1.1 设计概述 (2) 1.2 设计主要功能 (2) 2. 硬件组成 2.1 80C51单片计算机的组成原理 (3) 2.组成框图及内部总体结构 (3) 2.寄存器和存储器………………………………………………………

[VHDL代码]LCD1602驱动

[VHDL代码]LCD1602驱动 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity LCD1602 is Port ( Clk : in std_logic; --状态机时钟信号,同时也是液晶时钟信号,其周期应该满足液晶数据的建立时间Sec_low,Sec_high,Min_low,Min_high,Hour_low,Hour_high: in std_logic_vector(3 downto 0); LCD_RS : out std_logic; --寄存器选择信号 LCD_RW : out std_logic; --液晶读写信号 LCD_EN : out std_logic; --液晶时钟信号 LCD_Data : out std_logic_vector(7 downto 0)); --液晶数据信号 end LCD1602; architecture Behavioral of LCD1602 is type STATE_TYPE is (START,write_C,write_D,WRITE_BYTE_C,WRITE_BYTE_D,wait_3m1,wait_3m2,wait_5m1,wait_5m2,w ait_100m); type MY_ARRAY1 is array(0 to 4) of std_logic_vector(7 downto 0); type MY_ARRAY2 is array(0 to 7) of std_logic_vector(7 downto 0);--长度为14的8位/字数组 constant c_d: MY_ARRAY1:=(x"38",x"0c",x"06",x"01",x"84"); signal d_d: MY_ARRAY2:=(x"20",x"20",x"3A",x"20",x"20",x"3A",x"20",x"20"); signal STATE: STATE_TYPE:=START; signal w_c_flag : integer range 0 to 2:=0; signal w_d_flag : integer range 0 to 2:=0; signal write_c_cnt : integer range 0 to 5:=0; signal write_d_cnt : integer range 0 to 8:=0; signal cnt : integer range 0 to 10000:=0; signal count : integer range 0 to 10000:=0; begin LCD_RW <= '0' ; --写数据 d_d(0)<="0000"&Hour_high+x"30"; d_d(1)<="0000"&Hour_low+x"30"; d_d(3)<="0000"&Min_high+x"30"; d_d(4)<="0000"&Min_low+x"30"; d_d(6)<="0000"&Sec_high+x"30"; d_d(7)<="0000"&Sec_low+x"30";

电子科技大学 数字逻辑课程设计——流水灯的实现

数字逻辑课程设计 ——流水灯的设计 1问题概述: 设计一个可以循环移动的流水灯,灯总数为8盏,具体要求如下: 1、5亮,其余灭,右移三次后全灭 4、8亮,其余灭,左移三次后全灭 4、5亮,其余灭,各向两边移三次后全灭 1、8亮,其余灭,各向中间移三次后全灭 所要求的彩灯电路在某电路板上完成,该电路板能够提供48MHz标准时钟信号,附带有8个共阳的LED管可作为彩灯使用。 2问题分析 本装置可以看作一个具有20个状态的无输入、8个输出的Moore型时钟同步状态机,每一个状态对应依次出现的每一种亮灯情况,用5位状态编码表示。这里构造一个模20的计数器来循环产生这20种状态。同时对于输入的48MHz的标准时钟信号,需要将其转化为1HZ的信号,此处同样用计数器来实现分频功能。8个输出分别控制LED的发光情况。这里使用5-32的译码器实现输出函数的构造。电路框图如下: 这里使用一个5位的状态编码Q4Q3Q2Q1Q0,表示20个状态。8位的输出函数F7F6F5F4F3F2F1F0分别表示由左至右每一个灯的通断情况。由于本题中LED灯采用共阳极连接方式,所以当Fn为低电平时,对应的LED灯发光。 本电路状态图如下:

本电路的转移/输出表如下: 现针对每一部分设计具体电路 3设计方案 3.11/48MHz分频电路 对于48MHz的信号,一秒钟内有4.8*10^7个周期,而所需1Hz信号,每秒只有一个周期。使输入信号每经过2.4*10^7个周期,输出信号翻转一次方向,便可获得所需的1Hz信号。可以构造一个模4.8*10^7的计数器用于计数,并使计数器输出的最高位在一秒之内恰好变化一次,且占空比为50%,故采用7片74x163进行级联。计数范围为:0110100100011100101000000000-1001011011100011010111111111。这样恰好可以保证最高

课程设计8位流水灯设计

电子技术课程设计 《电子设计基础》 课程报告 设计题目:8位流水灯设计 学生班级:通信0902 学生学号:20096050 学生姓名:卢朝飞 指导教师: 曹文、黎恒、刘春梅 2011年6月21日 时间:

西南科技大学 信息工程学院 一、8位流水灯设计目的及要求 1. 设计一个8位流水灯循环点亮电路。 2. 要求采用74ls42芯片。 二、流水灯功能设计分析 分析:(1)要实现8个led依次循环点亮,只需要将发光二极管依次循环点亮和熄灭,8只led便会依次循环点亮熄灭了 三、电路设计基本原理及主要器件 1. 74ls42芯片简介 74LS42 由8 个反相器和10 个4 输入端的与非门组成。反相器成对连接以便接受4 位BCD 输入,经由与非门译码后输出,该电路为BCD —十进制的多用途译码器。其输入为高电平有效,而输出是低电平有效。74LS42 的逻辑设计保证了当大于9 的二进制代码加到输入端上时,所有的输出端均处于高电平(无效)。当LS42 用作3 线—8 线译码时,最高有效输入D可产生一个有用的“禁止”功能。D 输入还可在8 输出的解调应用中用来作为数据输入。 2.74ls161 3.74ls10 4.8个发光二极管 5.一个220欧姆电阻

四、流水灯仿真图、原理图及PCB板图 1.8位流水灯仿真图如下: 2. 8位流水灯原理图如下:

底层: 顶层:

五、总结与体会 1、总结 在用protel设计与制板过程中自己总结了一些经验: 【1】接地的标号中一定要把Net选项选为GND才可以,不然在PCB制作中将没有接地这一个选项出现;还有Dasignator的选项填写的是元件的标号,只有这个填上了在PCB制作中才会有该元件出现。 【2】对PCB制作过程的要求。从板层的选择,到对元器件的布局最后是加入输入输出,以及对输入输出的连线,每一个都有很多的细节需要注意。其中最为典型的就是对输入输出的连线,它需要把两端节点及连线都定义为相同的名称才行,即需要对Net进行统一命名,不然系统将不把它默认为导通的连线。

嵌入式课程设计流水灯

流水灯编程 实验目的: 掌握GPIO端口的基本控制方法 掌握硬件电路仿真方法。 实验内容: 1、复习流水灯的工作原理。 2、按教材上 3、4节的内容或实验指导书2、1节的内容创建好项目,生成可执行文件。 3、阅读LED示例程序代码。 4、软件模拟,无误后下载到实验板上运行,观察效果。 5、通过硬件仿真的方式调试程序。分析LED_Init、main这2个函数中每一行代码的作用。 6、修改程序使得灯改变一次状态的时间间隔为0、02、0、01、0、1、0、3、0、5、1、2秒。 7、修改程序使得灯闪动的方向反向。 8、修改循环亮灯的程序,使每次亮灯的起始位置依次下移。 选做进阶版 1.用左边4个灯闪烁代表绿灯,右边4个灯闪烁代表红灯,8个灯 全亮代表黄灯。模拟交通信号灯运行(绿灯10秒,红灯20秒, 绿到红过渡时黄灯3秒) 2、将自己的学号编码用LED灯效果展示出来。 实验原理:

电路中有L0,L1,L2,L3,L4,L5,L6,L7共八个发光二极管,当引脚LED_SEL输入为1,对于A、B、C、D、E、F、G、H引脚,只要输入为1,则点亮相连接的发光二极管。 A~H引脚连接STM32F108VB芯片的PE8~PE15,程序初始化时,对其进行初始设置。引脚LED_SEL为1时,发光二极管才工作,否则右边的数码管工作。注意,LED_SEL连接于PB3,该引脚具有复用功能,在默认状态下,该引脚的IO不可用,需对AFIO_MAPR寄存器进行设置,设置其为IO可用。 实验过程及结果描述: 按实验内容的步骤一步一步的来。重点描述实验内容的6、7、8还有选修进阶的1、2、 要实现改变灯状态的时间间隔,只需改变delay_ms这函数的里面的参数即可,例如时间间隔改为0、02秒就将参数改为20,1秒就将参数改为1000,(delay_ms()函数里面参数的单位为ms)其它以此类推。通过参数的改变可以瞧到灯状态改变的时延相应的改变了。 改变灯的闪动方向则将light左移或者右移位数的值赋给light,例如循环一次左移一位,则light=light<<1,右移则就是light=light>>1;这里又涉及到当左移(右移)到最左(右)一位时,再次亮灯时的起始位置设置的问题,这里就可以设置当左移(右移)到最左(最右),设置一个判断语句当左移(右移)到左(右)端点时,将初始值赋给题目要求的位置即可。 实验结果:灯的移动方向改变。每次循环完一次之后通过改变赋给初

单片机课程设计报告--心形流水灯

单片机课程设计报告--心形流水灯

井冈山大学 机电工程学院 单片机 课程设计报告 课程名称:单片机 设计题目:心形流水灯 姓名:彭玉红 专业:生物医学工程 班级:11级医工本一班 学号:110615017 指导教师:王佑湖 2013年11月27日

目录 1引言 (2) 1.1设计任务 (2) 1.2设计要求……………………………………………… ..2 2 课题综述 (2) 2.1课题的来源 (2) 2.2面对的问题 (2) 3 系统分析 (2) 3.1 STC89C52单片机引脚图及引脚功能介绍 (2) 4 系统设计 (4) 4.1硬件设计 (4) 4.1.1硬件框图 (4) 4.1.2硬件详细设计 (5) 4.2 软件设计 (5) 4.3 硬件原理图 (6) 4.4 元件清单 (6) 4.5 硬件焊接图 (6) 4.6 代码编写 (7) 5心得体会 (7) 6致谢 (8) 参考文献 (8)

1 引言 单片机课程设计主要是为了让我们增进对STC89C51单片机电路的感性认识,加深对理论方面的理解。了解软硬件的有关知识,并掌握软硬件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。另外,通过简单课题的设计练习,使我们了解必须提交的各项工程文件,达到巩固、充实和综合运用所学知识解决实际问题的目的。 1.1设计任务 设计一个单片机控制的流水灯系统 1.2设计要求 (1)32个LED灯; (2)可实现多种的亮灯(如左循环,右循环,间隔闪,90度交叉闪等)。 2 课题综述 2.1 课题的来源 当今社会,这种由单片机芯片控制各种硬件工作的技术也日益成熟,并普及在交通、化工、机械等各个领域。而流水灯这项技术在生活中的应用更是广泛,较为贴近生活。而流水灯控制的设计所需要的知识也正好吻合了我们本学期对于单片机这门课程的学习,所以设计流水灯控制的这个课题让我们对知识的学习和巩固都有了进一步的加深。 2.2 面对的问题

LCD1602驱动详解

一.接口 LCD1602是很多单片机爱好者较早接触的字符型液晶显示器,它的主控芯片是HD44780或者其它兼容芯片。刚开始接触它的大多是单片机的初学者。由于对它的不了解,不能随心所欲地对它进行驱动。经过一段时间的学习,我对它的驱动有了一点点心得,今天把它记录在这里,以备以后查阅。与此相仿的是LCD12864液晶显示器,它是一种图形点阵显示器,能显示的内容比LCD1602要丰富得多,除了普通字符外,还可以显示点阵图案,带有汉字库的还可以显示汉字,它的并行驱动方式与LCD1602相差无几,所以,在这里花点时间是值得的。 一般来说,LCD1602有16条引脚,据说还有14条引脚的,与16脚的相比缺少了背光电源A(15脚)和地线K(16脚)。我手里这块LCD16 02的型号是HJ1602A,是绘晶科技公司的产品,它有16条引脚。如图1所示:

图1 再来一张它的背面的,如图2所示:

图2它的16条引脚定义如下:

3. VO是液晶显示的偏压信号,可接10K的3296精密电位器。或同样阻值的RM065/RM063蓝白可调电阻。见图3。 图3 4. RS是命令/数据选择引脚,接单片机的一个I/O,当RS为低电 平时,选择命令;当RS为高电平时,选择数据。 5. RW是读/写选择引脚,接单片机的一个I/O,当RW为低电平时,向LCD1602写入命令或数据;当RW为高电平时,从LCD1602读取状态 或数据。如果不需要进行读取操作,可以直接将其接VSS。 6. E,执行命令的使能引脚,接单片机的一个I/O。 7. D0—D7,并行数据输入/输出引脚,可接单片机的P0—P3任意 的8个I/O口。如果接P0口,P0口应该接4.7K—10K的上拉电阻。如果是4线并行驱动,只须接4个I/O口。 8. A背光正极,可接一个10—47欧的限流电阻到VDD。 9. K背光负极,接VSS。见图4所示。

简易音乐流水灯课程设计

课程设计任务书

成绩评定表

到了21世纪,电子技术获得了飞速的发展,电子技术正在逐渐改善着人们的学习、生活、工作,因此开发本系统希望能够给人们多带来一点生活上的乐趣。在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 如今,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS 化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。单片机应用的重要意义还在于它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。单片机控制的音乐流水灯,体积小,重量轻,能演奏和旋音乐,功能多,外观效果多彩,使用方便,并具有一定的商业价值。 本设计是以AT89C51芯片的电路为基础,外部加上放音设备,以此来实现音乐演奏控制器的硬件电路,通过软件程序来控制单片机内部的定时器使其演奏出优美动听的音乐。用户可以按照自己的喜好选择音乐并将其转化成机器码存入单片机的存储器中。对于不同型号的单片机只需要相应的改变一下地址即可。该软、硬件系统具有很好的通用性,很高的实际使用价值,为广大的单片机和音乐爱好者提供了很好的借鉴。

本设计是一种基于A T89C51单片机音乐控制彩灯的方案,实现单片机演奏音乐,并且对LED灯随音符频率的不同而闪烁发光。本方案以AT89C51单片机作为主控核心,利用单片机和蜂鸣器,通过蜂鸣器播放音乐,利用编程实现亮灯循环模式,在有16个LED灯,根据用户需求可以编写若干种亮灯模式.例如左右闪烁,隔几个亮灭,蜂鸣器可以根据用户需求改写编程播放各种音乐。本方案具有设计简单、体积小、元器件少、电路结构简单等优点。该设计方案设计及其简单,典型的89c51单片机,亮灯模式多,播放各种类型的音乐,具有体积小、价格低、低能耗等优点。在美丽的都市夜晚,彩灯的循环亮灭,播放动人的音乐,衬托出美丽的氛围,音乐彩灯具有更广阔的发展天地。 关键字:AT89C51LED灯音乐PROTEUS

lcd1602C语言驱动

/*LCD1602 驱动程序 */ display (行号,数据指针) displayUser (行号,列号,字符/字符串) Ddisplay (行号、列号、字符/字符串) Fldisplay (行号、列号、字符/字符串) /* 声明代码(放工程中需要包含的自定义头文件中) void delay(unsigned char n); void init(); void display(unsigned char a,unsigned char table[]); void write_date(uchar); void write_command(uchar); void displayUser(unsigned char hang,unsigned lie,unsigned char table[]); void Ddisplay(unsigned char hang,unsigned lie,unsigned char table[]); void Fldisplay(unsigned char hang,unsigned lie,unsigned char table[]); */ #include #define uchar unsigned char sbit rs=P2A 4; sbit rw=P2A5; sbit e=P2A6; uchar busyc,line; void delay(uchar n) { uchar x,y; for(x=n;x>0;x--) for(y=110;y>0;y--); } void busy(uchar busyc) { rs=0; rw=1;e=1; delay(1); busyc=P0; e=0; } void write_command(uchar command) { /* 程序用法: 1、按行显示: 2、定位显示 3、动态显示 4、闪烁显示 */

相关主题
文本预览
相关文档 最新文档