EDA16x16点阵滚动动画显示

EDA16x16点阵滚动动画显示
EDA16x16点阵滚动动画显示

四、课程设计的总体步骤

1、单个字符的显示(如:黄):

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity xianshi is

port( clk2:in std_logic;

rck,sck:out std_logic;

si:out std_logic);

end ;

architecture one of xianshi is

signal sel:std_logic_vector(3 downto 0);

signal q: std_logic_vector(31 downto 0);

signal i:integer range 0 to 31;

signal coi:std_logic;

begin

process(sel,clk1)

begin

case sel is

when"0000"=>q<="00000100000000000111111111111111";

when"0001"=>q<="00000100000000011011111111111111";

when"0010"=>q<="00100100000000011101111111111111";

when"0011"=>q<="00100101111110101110111111111111";

when"0100"=>q<="00100101010100101111011111111111";

when"0101"=>q<="11111101010101001111101111111111";

when"0110"=>q<="00100101010100001111110111111111";

when"0111"=>q<="00100111111100001111111011111111";

when"1000"=>q<="00100101010100001111111101111111";

when"1001"=>q<="11111101010101001111111110111111";

when"1010"=>q<="00100101010101001111111111011111";

when"1011"=>q<="01100111111100101111111111101111";

when"1100"=>q<="00100100100000101111111111110111";

when"1101"=>q<="00001100000000011111111111111011";

when"1110"=>q<="00000100000000001111111111111101";

when"1111"=>q<="00000000000000001111111111111110"; when others =>null;

end case;

if clk1'event and clk1='1'then

si<=q(i);i<=i+1;coi<='0';

if i=31 then i<=0;coi<='1';sel<=sel+'1';

end if;

rck<=not coi;

end if;

end process;

sck<=clk1;

end ;

时序仿真:

从图中可以看出,当clk1在第32个上升沿rck变为低电频,sck与clk1是同一电频,故此程序满足要求。

2、多个字符的跳动显示(如:黄小红):

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity xianshi is

port( clk1:in std_logic;

clk2:in std_logic;

rck,sck:out std_logic;

si:out std_logic);

end ;

architecture one of xianshi is

signal lie:std_logic_vector(3 downto 0); signal sel:std_logic_vector(3 downto 0); signal q: std_logic_vector(31 downto 0); signal i:integer range 0 to 31;

signal coi:std_logic;

begin

process(sel,clk1,clk2)

begin

if clk2'event and clk2='1' then

lie<=lie+'1';

end if;

case lie is

when "0000"=>

case sel is

when"0000"=>q<="00000100000000000111111111111111";

when"0001"=>q<="00000100000000011011111111111111";

when"0010"=>q<="00100100000000011101111111111111";

when"0011"=>q<="00100101111110101110111111111111";

when"0100"=>q<="00100101010100101111011111111111";

when"0101"=>q<="11111101010101001111101111111111";

when"0110"=>q<="00100101010100001111110111111111";

when"0111"=>q<="00100111111100001111111011111111";

when"1000"=>q<="00100101010100001111111101111111";

when"1001"=>q<="11111101010101001111111110111111";

when"1010"=>q<="00100101010101001111111111011111";

when"1011"=>q<="01100111111100101111111111101111";

when"1100"=>q<="00100100100000101111111111110111";

when"1101"=>q<="00001100000000011111111111111011";

when"1110"=>q<="00000100000000001111111111111101";

when"1111"=>q<="00000000000000001111111111111110";

when others =>null;

end case;

when"0001"=>

case sel is

when"0000"=>q<="00000000000000000111111111111111";

when"0001"=>q<="00000000000100001011111111111111";

when"0010"=>q<="00000000001000001101111111111111";

when"0011"=>q<="00000000010000001110111111111111";

when"0100"=>q<="00000001100000001111011111111111";

when"0101"=>q<="00000110000000101111101111111111";

when"0110"=>q<="00000000000000011111110111111111";

when"0111"=>q<="11111111111111101111111011111111";

when"1000"=>q<="00000000000000001111111101111111";

when"1001"=>q<="00000100000000001111111110111111";

when"1010"=>q<="00000010000000001111111111011111";

when"1011"=>q<="00000001000000001111111111101111";

when"1100"=>q<="00000000100000001111111111110111";

when"1101"=>q<="00000000011000001111111111111011";

when"1110"=>q<="00000000000000001111111111111101";

when"1111"=>q<="00000000000000001111111111111110"; when others =>null;

end case;

when"0010"=>

case sel is

when"0000"=>q<="00000100010001000111111111111111";

when"0001"=>q<="00001100111001101011111111111111";

when"0010"=>q<="00110101010001001101111111111111";

when"0011"=>q<="11000110010010001110111111111111";

when"0100"=>q<="00000100010010001111011111111111";

when"0101"=>q<="00001000010010101111101111111111";

when"0110"=>q<="00100000000000101111110111111111";

when"0111"=>q<="00100000000000101111111011111111";

when"1000"=>q<="00100000000000101111111101111111";

when"1001"=>q<="00100000000000101111111110111111";

when"1010"=>q<="00111111111111101111111111011111";

when"1011"=>q<="00100000000000101111111111101111";

when"1100"=>q<="01100000000000101111111111110111";

when"1101"=>q<="00100000000001101111111111111011";

when"1110"=>q<="00000000000000101111111111111101";

when"1111"=>q<="00000000000000001111111111111110";

when others =>null;

end case;

when others=>null;

end case;

if clk1'event and clk1='1'then

si<=q(i);i<=i+1;coi<='0';

if i=31 then i<=0;coi<='1';sel<=sel+'1';

end if;

rck<=not coi;

end if;

end process;

sck<=clk1;

end ;

时序仿真:

从上图看出,当clk1在第32个上升沿rck变为低电频,sck与clk1是同一电频,故此程序满足要求。

3、汉字的滚动和动画显示(如:黄小红+笑脸):

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity xianshi is

port( clk1:in std_logic;

clk2:in std_logic;

rck,sck:out std_logic;

si:out std_logic);

end ;

architecture one of xianshi is

signal lie:std_logic_vector(3 downto 0); signal sel:std_logic_vector(3 downto 0); signal q: std_logic_vector(31 downto 0); signal i:integer range 0 to 31;

signal coi:std_logic;

begin

process(sel,clk1,clk2)

begin

if clk2'event and clk2='1' then

lie<=lie+'1';

end if;

case lie is

when "0000"=>

case sel is

when"0000"=>q<="00000100000000000111111111111111";

when"0001"=>q<="00000100000000011011111111111111";

when"0010"=>q<="00100100000000011101111111111111";

when"0011"=>q<="00100101111110101110111111111111";

when"0100"=>q<="00100101010100101111011111111111";

when"0101"=>q<="11111101010101001111101111111111";

when"0110"=>q<="00100101010100001111110111111111";

when"0111"=>q<="00100111111100001111111011111111";

when"1000"=>q<="00100101010100001111111101111111";

when"1001"=>q<="11111101010101001111111110111111";

when"1010"=>q<="00100101010101001111111111011111";

when"1011"=>q<="01100111111100101111111111101111";

when"1100"=>q<="00100100100000101111111111110111";

when"1101"=>q<="00001100000000011111111111111011";

when"1110"=>q<="00000100000000001111111111111101";

when"1111"=>q<="00000000000000001111111111111110"; when others =>null;

end case;

when"0001"=>

case sel is

when"0000"=>q<="00100101111110101110111111111111";

when"0001"=>q<="00100101010100101111011111111111";

when"0010"=>q<="11111101010101001111101111111111";

when"0011"=>q<="00100101010100001111110111111111";

when"0100"=>q<="00100111111100001111111011111111";

when"0101"=>q<="00100101010100001111111101111111";

when"0110"=>q<="11111101010101001111111110111111";

when"0111"=>q<="00100101010101001111111111011111";

when"1000"=>q<="01100111111100101111111111101111";

when"1001"=>q<="00100100100000101111111111110111";

when"1010"=>q<="00001100000000011111111111111011";

when"1011"=>q<="00000100000000001111111111111101";

when"1100"=>q<="00000000000000001111111111111110";

when"1101"=>q<="00000000000000000111111111111111";

when"1110"=>q<="00000000000100001011111111111111";

when"1111"=>q<="00000000001000001101111111111111"; when others =>null;

end case;

when"0010"=>

case sel is

when"0000"=>q<="00100101010100001111110111111111";

when"0001"=>q<="00100111111100001111111011111111";

when"0010"=>q<="00100101010100001111111101111111";

when"0011"=>q<="11111101010101001111111110111111";

when"0100"=>q<="00100101010101001111111111011111";

when"0101"=>q<="01100111111100101111111111101111";

when"0110"=>q<="00100100100000101111111111110111";

when"0111"=>q<="00001100000000011111111111111011";

when"1000"=>q<="00000100000000001111111111111101";

when"1001"=>q<="00000000000000001111111111111110";

when"1010"=>q<="00000000000000000111111111111111";

when"1011"=>q<="00000000000100001011111111111111";

when"1100"=>q<="00000000001000001101111111111111";

when"1101"=>q<="00000000010000001110111111111111";

when"1111"=>q<="00000110000000101111101111111111"; when others =>null;

end case;

when"0011"=>

case sel is

when"0000"=>q<="11111101010101001111111110111111";

when"0001"=>q<="00100101010101001111111111011111";

when"0010"=>q<="01100111111100101111111111101111";

when"0011"=>q<="00100100100000101111111111110111";

when"0100"=>q<="00001100000000011111111111111011";

when"0101"=>q<="00000100000000001111111111111101";

when"0110"=>q<="00000000000000001111111111111110";

when"0111"=>q<="00000000000000000111111111111111";

when"1000"=>q<="00000000000100001011111111111111";

when"1001"=>q<="00000000001000001101111111111111";

when"1010"=>q<="00000000010000001110111111111111";

when"1011"=>q<="00000001100000001111011111111111";

when"1100"=>q<="00000110000000101111101111111111";

when"1101"=>q<="00000000000000011111110111111111";

when"1110"=>q<="11111111111111101111111011111111";

when others =>null;

end case;

when"0100"=>

case sel is

when"0000"=>q<="00100100100000101111111111110111";

when"0001"=>q<="00001100000000011111111111111011";

when"0010"=>q<="00000100000000001111111111111101";

when"0011"=>q<="00000000000000001111111111111110";

when"0100"=>q<="00000000000000000111111111111111";

when"0101"=>q<="00000000000100001011111111111111";

when"0110"=>q<="00000000001000001101111111111111";

when"0111"=>q<="00000000010000001110111111111111";

when"1000"=>q<="00000001100000001111011111111111";

when"1001"=>q<="00000110000000101111101111111111";

when"1010"=>q<="00000000000000011111110111111111";

when"1011"=>q<="11111111111111101111111011111111";

when"1100"=>q<="00000000000000001111111101111111";

when"1101"=>q<="00000100000000001111111110111111";

when"1110"=>q<="00000010000000001111111111011111";

when"1111"=>q<="00000001000000001111111111101111"; when others =>null;

end case;

when"0101"=>

case sel is

when"0000"=>q<="00000000000000001111111111111110";

when"0001"=>q<="00000000000000000111111111111111";

when"0010"=>q<="00000000000100001011111111111111";

when"0011"=>q<="00000000001000001101111111111111";

when"0100"=>q<="00000000010000001110111111111111";

when"0101"=>q<="00000001100000001111011111111111";

when"0110"=>q<="00000110000000101111101111111111";

when"0111"=>q<="00000000000000011111110111111111";

when"1000"=>q<="11111111111111101111111011111111";

when"1001"=>q<="00000000000000001111111101111111";

when"1010"=>q<="00000100000000001111111110111111";

when"1011"=>q<="00000010000000001111111111011111";

when"1100"=>q<="00000001000000001111111111101111";

when"1101"=>q<="00000000100000001111111111110111";

when"1110"=>q<="00000000011000001111111111111011";

when"1111"=>q<="00000000000000001111111111111101"; when others =>null;

end case;

when"0110"=>

case sel is

when"0000"=>q<="00000000001000001101111111111111";

when"0010"=>q<="00000000010000001110111111111111";

when"0011"=>q<="00000001100000001111011111111111";

when"0100"=>q<="00000110000000101111101111111111";

when"0101"=>q<="00000000000000011111110111111111";

when"0110"=>q<="11111111111111101111111011111111";

when"0111"=>q<="00000000000000001111111101111111";

when"1000"=>q<="00000100000000001111111110111111";

when"1001"=>q<="00000010000000001111111111011111";

when"1010"=>q<="00000001000000001111111111101111";

when"1011"=>q<="00000000100000001111111111110111";

when"1100"=>q<="00000000011000001111111111111011";

when"1101"=>q<="00000000000000001111111111111101";

when"1110"=>q<="00000000000000001111111111111110";

when"1111"=>q<="00000100010001000111111111111111"; when others =>null;

end case;

when"0111"=>

case sel is

when"0001"=>q<="00000000000000011111110111111111";

when"0010"=>q<="11111111111111101111111011111111";

when"0011"=>q<="00000000000000001111111101111111";

when"0100"=>q<="00000100000000001111111110111111";

when"0101"=>q<="00000010000000001111111111011111";

when"0110"=>q<="00000001000000001111111111101111";

when"0111"=>q<="00000000100000001111111111110111";

when"1000"=>q<="00000000011000001111111111111011";

when"1001"=>q<="00000000000000001111111111111101";

when"1010"=>q<="00000000000000001111111111111110";

when"1011"=>q<="00000100010001000111111111111111";

when"1100"=>q<="00001100111001101011111111111111";

when"1101"=>q<="00110101010001001101111111111111";

when"1110"=>q<="11000110010010001110111111111111";

when"1111"=>q<="00000100010010001111011111111111"; when others =>null;

end case;

when"1000"=>

case sel is

when"0000"=>q<="00000000000000001111111101111111";

when"0001"=>q<="00000100000000001111111110111111";

when"0011"=>q<="00000001000000001111111111101111";

when"0100"=>q<="00000000100000001111111111110111";

when"0101"=>q<="00000000011000001111111111111011";

when"0110"=>q<="00000000000000001111111111111101";

when"0111"=>q<="00000000000000001111111111111110";

when"1000"=>q<="00000100010001000111111111111111";

when"1001"=>q<="00001100111001101011111111111111";

when"1010"=>q<="00110101010001001101111111111111";

when"1011"=>q<="11000110010010001110111111111111";

when"1100"=>q<="00000100010010001111011111111111";

when"1101"=>q<="00001000010010101111101111111111";

when"1110"=>q<="00100000000000101111110111111111";

when"1111"=>q<="00100000000000101111111011111111"; when others =>null;

end case;

when"1001"=>

case sel is

when"0000"=>q<="00000001000000001111111111101111";

when"0001"=>q<="00000000100000001111111111110111";

when"0010"=>q<="00000000011000001111111111111011";

when"0011"=>q<="00000000000000001111111111111101";

when"0101"=>q<="00000100010001000111111111111111";

when"0110"=>q<="00001100111001101011111111111111";

when"0111"=>q<="00110101010001001101111111111111";

when"1000"=>q<="11000110010010001110111111111111";

when"1001"=>q<="00000100010010001111011111111111";

when"1010"=>q<="00001000010010101111101111111111";

when"1011"=>q<="00100000000000101111110111111111";

when"1100"=>q<="00100000000000101111111011111111";

when"1101"=>q<="00100000000000101111111101111111";

when"1110"=>q<="00100000000000101111111110111111";

when"1111"=>q<="00111111111111101111111111011111"; when others =>null;

end case;

when"1010"=>

case sel is

when"0000"=>q<="00000000000000001111111111111101";

when"0001"=>q<="00000000000000001111111111111110";

when"0010"=>q<="00000100010001000111111111111111";

when"0011"=>q<="00001100111001101011111111111111";

when"0100"=>q<="00110101010001001101111111111111";

when"0101"=>q<="11000110010010001110111111111111";

when"0110"=>q<="00000100010010001111011111111111";

when"0111"=>q<="00001000010010101111101111111111";

when"1000"=>q<="00100000000000101111110111111111";

when"1001"=>q<="00100000000000101111111011111111";

when"1010"=>q<="00100000000000101111111101111111";

when"1011"=>q<="00100000000000101111111110111111";

when"1100"=>q<="00111111111111101111111111011111";

when"1101"=>q<="00100000000000101111111111101111";

when"1110"=>q<="01100000000000101111111111110111";

when"1111"=>q<="00100000000001101111111111111011"; when others =>null;

end case;

when"1011"=>

case sel is

when"0000"=>q<="00001100111001101011111111111111";

when"0001"=>q<="00110101010001001101111111111111";

when"0010"=>q<="11000110010010001110111111111111";

when"0011"=>q<="00000100010010001111011111111111";

when"0100"=>q<="00001000010010101111101111111111";

when"0101"=>q<="00100000000000101111110111111111";

汉字点阵显示屏设计报告

广西交通职业技术学院信息工程系 作品设计报告书 课程名称电子电路设计与制作_____________ 题目16*16 汉字点阵显示屏 _________________ 班级___________ 电信2011-1班_____________ 学号007 032 ____________________ 姓名_________________ 范杰________________

任课老师_____________ 韦家正 _______________ 二O 一三年一月 目录 摘要 一、系统方案选择和论证 (2) 1.1设计要求 (2) 2.1系统基本方案 (2) 2.1.1.主控电路选择 (2) 2.1.2.点阵显示屏部分 (2) 2.1.3.显示屏控制部分 (3) 二、电路模块的设计与分析 (3) 2.1.系统程序的设计 (3) 2.2.单片机系统及外围电路 (4) 23 LED点阵显示 (6) 24.汉字扫描的原理 (7) 25.方案的实现 (7) 三、系统软件设计 (8) 四、系统测试与分析 (10) 4.1点阵显示屏的仿真与程序调试 (10) 4.2整机测试 (10) 4.3系统主程序............................... 错误!未定义书签。 4.4系统测试结果分析 (21) 五、设计制作总结 (21) 5.1 总结 (21) 5.2 致谢词 (22) 六、参考文献 (22)

附录一:系统主要元件清单 (14)

摘要 摘要 LED点阵显示屏作为一种新兴的显示器件,是由多个独立的高亮度的LED发光二极管封装而成。LED点阵显示屏可以显示数字或符号,通常用来显示时间、速度、系统状态等灵活的动态显示。文章给出了一种基于MCS-51/52单片机的 16X16点阵LED显示屏的设计方案,包括系统具体的硬件设计方案,软件流程图和汇编语言程序等方面内容。在负载范围内,只需通过简单的级联就可以对显示屏进行扩展,是一种成本低廉、亮 度高、工作电压低、功耗小、微型化、易与集成电路匹配、驱动简单、寿命长、耐冲击、性能稳定的图文显示方案。 Abstract LED dot matrix display, as a new display device, by a nu mber of in depe ndent high- bright ness LED light-emitt ing diode packages. LED dot matrix display can display nu mbers or symbols, usually used to display time, speed, system status, and a flexible dyn amic display. Pap er, a microcomputer-based MCS-51/52 16 16 dot matrix LED display desig n, in cludi ng the system specific hardware desig n, software flowcharts and assembly Ian guage programs and other aspects. Withi n the load range, by simply cascad ing Jiu expa nsion can right display Jin Xin g, is a low cost, high brightness, low voltage Gong Hao Xiao, miniaturization, Yi Yu IC match, Qu Dong simple, Shou Ming Ion g, impact resista nee, stable performa nee, graphics and display opti ons.

LED点阵显示屏实验报告解析

16?16点阵LED电子显示屏的设计 摘要:文章介绍了基于单片机AT89C51的16?16点阵LED电子显示屏的设计。分别阐述了显示屏显示的基本原理,硬件设计、控制方法及其程序的实现。经过调试和分析,设计的结果能够实现对汉字的静态和动态显示,动态显示的内容有多种方式,同时又可通过上位机更新显示的内容。 关键字:AT89C51;16?16点阵;LED;显示屏 一绪论 LED显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。它具有发光效率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。并广泛的应用于公交汽车,码头,商店,学校和银行等公共场合的信息发布和广告宣传。LED显示屏经历了从单色,双色图文显示屏到现在的全彩色视频显示屏的发展过程,自20世纪八十年代开始,LED显示屏的应用领域已经遍布交通、电信、教育、证券、广告宣传等各方面。 1 LED点阵显示屏概述 LED点阵显示屏的构成型式有多种,其中典型的有两种。一种把所需展示的广告信息烧写固化到EPROM芯片内,能进行固定内容的多幅汉字显示,称为单显示型;另一种在机内设置了字库、程序库,具有程序编制能力,能进行内容可变的多幅汉字显示,称可编程序型。 目前,国内的LED点阵显示屏大部分是单显示型,其显示的内容相对较少,显示花样较单一。一般在产品出厂时,显示内容就已写入显示屏控制系统中的EPROM芯片内,当需要更换显示内容时就非常困难,这样使该类型的显示屏使用范围受到了限制。国内的另一种LED显示屏——可编程序型LED显示屏,虽然增加了显示屏系统的编程能力,显示内容和显示花样都有所增加,但也存在着更换显示内容不便的缺点。随着社会经济的迅速发展,如今的广告牌都存在着显示内容丰富、信息量大、信息更换速度快等特点。因此传统的LED显示屏控制系统已经越来越不能满足现代广告宣传业的需要。而利用PC机通信技术控制LED显示屏,则具有显示内容丰富,信息更换灵活等优点。 2 LED显示屏控制技术状况 显示屏的控制系统包括输入接口电路、信号控制、转换和数字化处理电路及输出接口电路等,涉及的具体技术很多,其关键技术包括串行传输与并行传输技术、动态扫描与静态锁存技术、自动检测及远程控制技术等。

点阵显示汉字滚动图解

点阵的汉字滚动实现其实很简单,用一句话概括就是:一边在行(列)上进行扫描,一遍循环依次取出显示代码输入到列(行)上。 以我们板上载有的8×8点阵为例,当要实现2个汉字的滚动时,我们把整个滚动的过程拆开,会发现每一次完整的滚动,点阵要显示2×8=16个状态。我们可以把两个汉字的行(或列)扫描代码通过字模提取软件提出后保存在数组里,然后顺序循环的去取数组里的数据放到行(或列)上就可。 我们用图示来解析一下整个过程。我们假设要显示两个汉字”人”和”天”的左右滚动。 首先我们假设在行和列的输入数据中,1代表亮,0代表灭。数组code里保存好从字模软件中按行提取出来的扫描码,假设code[15]=A0,A1,A2,A3,A4,A5,A6,A7,B0,B1,B2,B3,B4,B5,B6,B7(A代表“人”字的列扫描码,B代表“天”字的列扫描码) 思路是这样的: 第1个时段T1:(完整的汉字“天”) 时刻t0,R=0000_0001,L=A0,R0那一列显示;、 时刻t1,R=0000_0010,L=A1,R1那一列显示; 时刻t2,R=0000_0100,;L=A2,R2那一列显示; ……. 时刻t7,R=1000_0000,;L=A7,R7那一列显示; 然后又回到时刻t0的扫描状态,循环扫描。只要在这个T1时间段内按这样扫描的话,就形成了A0—A7所代表的数据,即汉字“人”

第2个时段T2:(开始滚入“天”字) 时刻t0,R=0000_0001,L=A1,R0那一列显示;、 时刻t1,R=0000_0010,L=A2,R1那一列显示; 时刻t2,R=0000_0100,L=A3,R2那一列显示; ……. 时刻t7,R=1000_0000,L=B0,R7那一列显示;“天”字第1列 然后又回到时刻t0的扫描状态,循环扫描。只要在这个T2时间段内按这样扫描的话,就形成了A1—A7和B0所代表的数据,如下图: 第3个时段T3: 时刻t0,R=0000_0001,L=A2,R0那一列显示;、 时刻t1,R=0000_0010,L=A3,R1那一列显示; 时刻t2,R=0000_0100,;L=A4,R2那一列显示; ……. 时刻t6,R=1000_0000,L=B0,R6那一列显示;“天”字第1列 时刻t7,R=1000_0000,L=B1,R7那一列显示;“天”字第2列 然后又回到时刻t0的扫描状态,循环扫描。只要在这个T3时间段内按这样扫描的话,就形成了A1—A7和B0--B1所代表的数据,如下图: 第4个时段T4: 时刻t0,R=0000_0001,L=A2,R0那一列显示;、 时刻t1,R=0000_0010,L=A3,R1那一列显示; 时刻t2,R=0000_0100,;L=A4,R2那一列显示; ……. 时刻t5,R=1000_0000,L=B0,R5那一列显示;“天”字第1列 时刻t6,R=1000_0000,L=B1,R6那一列显示;“天”字第2列 时刻t7,R=1000_0000,L=B2,R7那一列显示;“天”字第3列 然后又回到时刻t0的扫描状态,循环扫描。只要在这个T4时间段内按这样扫描的话,就形成了A1—A7和B0—B2所代表的数据,如下图:

8x8led点阵显示数字

// 36 8X8LED 点阵显示数字 /* 名称:8X8LED 点阵显示数字 说明:8X8LED 点阵屏循环显 示数字 0~9,刷新过程由定时器中 断完成。 */ #include<> #include<>

#define uchar unsigned char #define uint unsigned int uchar code Table_of_Digits[]= { 0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,0x00, //0 0x00,0x00,0x00,0x21,0x7f,0x01,0x00,0x00, //1 0x00,0x27,0x45,0x45,0x45,0x39,0x00,0x00, //2 0x00,0x22,0x49,0x49,0x49,0x36,0x00,0x00, //3 0x00,0x0c,0x14,0x24,0x7f,0x04,0x00,0x00, //4 0x00,0x72,0x51,0x51,0x51,0x4e,0x00,0x00, //5

0x00,0x3e,0x49,0x49,0x49,0x26,0x00,0x00, //6 0x00,0x40,0x40,0x40,0x4f,0x70,0x00,0x00, //7 0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00, //8 0x00,0x32,0x49,0x49,0x49,0x3e,0x00,0x00 //9 }; uchar i=0,t=0,Num_Index; //主程序 void main() { P3=0x80;

单片机课程设计---16×16点阵式汉字显示

目录 摘要 (1) Abstract (2) 1设计原理 (3) 1.1 MCS-51单片机的结构及编程方法 (3) 1.2 16*16点阵LED原理 (5) 1.3 3-8译码器原理 (6) 2.设计方案介绍 (7) 2.1 设计总体思路 (7) 2.2 与题目相关的具体设计 (7) 2.3程序设计流程图 (8) 3.源程序,原理图和仿真图 (9) 3.1程序清单(见附录) (9) 3.2电路图 (9) 3.2.1电路原理图 (9) 3.2.2电路图分析 (9) 3.3仿真图 (9) 4性能分析 (10) 5.总结和心得 (11) 6.参考文献 (12) 附录:程序代码 (13)

摘要 LED点阵显示屏作为一种新兴的显示器件,是由多个独立的LED发光二极管封装而成. LED点阵显示屏可以显示数字或符号, 通常用来显示时间、速度、系统状态等。文章给出了一种基于MCS-51单片机的16×16 点阵LED显示屏的设计方案。包括系统具体的硬件设计方案,软件流程图和部分汇编语言程序等方面。在负载范围内, 只需通过简单的级联就可以对显示屏进行扩展,是一种成本低廉的图文显示方案。 关键词:MCS-51;LED;单片机

Abstract As a popular display device component, LED dot-matrix display board consists of several independent LED (Light Emitting Diode). The LED dot-matrix display board can display the number or sign, and it is usually used to show time, speed, the state of system etc. This paper introduces a kind of simple 16x16 LED display screen design process based on MCS-51 single chip minicomputer . The detail hardware scheme, software flow and assemble language programmer design and so on is followed. The display part can be cascaded to meet the need. The practice proves the design is low-cost and effective. Key words: MCS-51;LED;MCU

EDA(LED点阵显示屏控制系统设计)

《EDA技术与应用》 课程设计报告 题目: LED点阵显示屏控制系统设计院(系):机电与自动化学院 专业班级:自动化 学生姓名: 学号: 2014 指导教师: 2017年6月 19日至2017年 6 月23 日 *******

《EDA技术及应用》课程设计任务书

摘要:我国经济正处于发展的高峰期,也需要广大的公共场合信息公示平台,而利用LED点阵滚动显示正好符合情况,且这种方式已经成为信息传递的一种重要手段。因此,在日常生活中,点阵随处可见。通过多种控制手段,点阵还可以实现各种文字甚至图案的动态显示。在不同的应用场合,点阵的设计要求也是不同的。传统思路一般是应用单片机实现点阵控制,但该方法有一定的局限性。 该次课程设计主要研究利用VHDL语言编程来设计汉字的显示。首先描述相应的设计电路;然后叙述在16*16矩阵显示汉字的原理;最后给出描述功能的VHDL设计语言。并通过编程、调试、仿真、下载正确实现汉字滚动、扫描显示结果。 关键词: LED点阵;FPGA;VHDL语言;汉字滚动显示。

目录 1.实验要求及总体方案 (1) 1.1 实验要求 (1) 1.2 扫描显示 (1) 1.3 滚动显示 (1) 2.LED点阵显示原理 (1) 2.1 LED点阵原理 (1) 2.2汉字取模 (2) 3.扫描显示 (3) 3.1 设计基本原理 (3) 3.2计数器设计 (3) 3.3 列驱动设计 (4) 3.4 行驱动设计 (4) 4.仿真图原理图及实物图 (4) 4.1仿真图 (4) 4.2原理图 (5) 4.3实物图 (6) 5.程序 (7) 参考文献: (10)

8×8点阵数字滚动显示

项目一8×8点阵数字滚动显示 LED点阵的元件符号及内部结构图: 对应编码: 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;NULL 00H, 00H, 3EH, 41H, 41H, 41H, 3EH, 00H ; 0 00H, 00H, 00H, 00H, 21H, 7FH, 01H, 00H ; 1 00H, 00H, 27H, 45H, 45H, 45H, 39H, 00H ; 2 00H, 00H, 22H, 49H, 49H, 49H, 36H, 00H ; 3 00H, 00H, 0CH, 14H, 24H, 7FH, 04H, 00H ; 4 00H, 00H, 72H, 51H, 51H, 51H, 4EH, 00H ; 5 00H, 00H, 3EH, 49H, 49H, 49H, 26H, 00H ; 6 00H, 00H, 40H, 40H, 40H, 4FH, 70H, 00H ; 7 00H, 00H, 36H, 49H, 49H, 49H, 36H, 00H ; 8 00H, 00H, 32H, 49H, 49H, 49H, 3EH, 00H ; 9 00H, 00H, 00H, 00H, 00H, 00H, 00H, 00H ;NULL 硬件设计原理: 单片机利用外部晶振作为时钟信号输入,RST端口接入上电复位信号使它加电后自动进行复位操作。将要显示的字符码表编入单片机的程序中,由单片机控制时序输出相应的扫描数据和字符数据。行码数据由单片机P0口输出,经一个双向总线收发器控制传输方向后进入LED点阵,点亮相应的发光二极管。列码扫描信号由P3口输出后,直接输入LED点阵控制8列的扫描,每列选

基于FPGA的LED16×16点阵汉字显示设计(VHDL版)

毕业设计(论文)开题报告 设计(论文)题目基于FPGA的LED 16×16点阵汉字显示设计 一、选题的背景和意义: LED点阵显示屏是集微电子技术、计算机技术、信息处理技术于一体的大型显示屏系统。它以其色彩鲜艳,动态范围广,亮度高,寿命长,工作稳定可靠等优点而成为众多显示媒体以及户外作业显示的理想选择。受到体育场馆用LED显示屏需求快速增长的带动,近年来,中国LED 显示屏应用逐步增多。目前,LED已经广泛应用在银行、火车站、广告、体育场馆之中。而随着奥运会、世博会的临近,LED显示屏将广泛的应用在体育场馆以及道路交通指示中,LED显示屏在体育广场中的应用将出现快速增长。 因此,本设计是很有必要的,之所以基于FPGA设计是因为现场可编程门阵列(FPGA)设计周期小,灵活度高,适合用于小批量系统,提高系统的可靠性和集成度。并且采用编写灵活的VHDL 语言编写主程序。本设计可以方便的应用到各类广告宣传中。 二、课题研究的主要内容: 1. 实现16×16点阵的汉字显示; 2. 实现有限汉字显示; 4. 实现汉字的滚动显示; 5. 完成方案论证。 三、主要研究(设计)方法论述: 通过去图书馆查阅书籍收集资料,同时在搜索引擎上检索资料,分析借鉴已有类似产品、设计方案与成功经验,选择几种可行方案比对,最后确定最切实可行的方案展开设计。 通过Multisim或Quartus软件对系统进行模拟仿真,对电路功能进行改进与完善。 在EDA试验箱上进行调试。 四、设计(论文)进度安排:

时间(迄止日期)工作内容 2010.5.17-5.23 理解并确认毕业设计任务书,撰写完成毕业设计开题报告(第1周) 2010.5.24-5.30 完成调研与资料收集、整理 (第2周) 2010.5.31-6.6 设计方案及原理框图确定 (第3周) 2010.6.7-7.4 电路资料收集,单元电路设计 (第4、5、6、7周) 2010.7.5-7.18 电路仿真与改进、完善 (第8、9周) 2010.19-8.1 资料整理 (第10、11周) 2010..8.2-8.8 书写毕业设计报告 (第12周) 2010.8.9-8.16 (第13周)修改毕业设计报告并整理装订 五、指导教师意见: 指导教师签名:年月日六、系部意见: 系主任签名:年月日 目录

LED 点阵显示数字

LED点阵显示数字#include //--重定义函数变量--// #define uchar unsigned char #define uint unsigned int #define ulong unsigned long //--定义SPI要使用的IO--// sbit MOSIO = P3^4; sbit R_CLK = P3^5; sbit S_CLK = P3^6; //---全局变量声明--// ulong column; //点阵列 ulong row; //点阵行 ulong dt; //--点阵显示数组--// uchar code tab0[] = {0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00}; //--10字模--// uchar code tab1[] = {0, 0, 0, 0, 0, 0, 8, 24, 14, 36, 8, 66, 8, 66, 8, 66, 8, 66, 8, 66, 8, 66, 8, 36, 62, 24, 0, 0, 0, 0, 0, 0}; //--09字模--// uchar code tab2[] = {0, 0, 0, 0, 0, 0, 24, 24, 36, 36, 66, 66, 66, 66, 66, 66, 66, 100, 66, 88, 66, 64, 66, 64, 36, 36, 24, 28, 0, 0, 0, 0} ; //--08字模--// uchar code tab3[] = {0, 0, 0, 0, 0, 0, 24, 60, 36, 66, 66, 66, 66, 66, 66, 36, 66, 24, 66, 36, 66, 66, 66, 66, 36, 66, 24, 60, 0, 0, 0, 0}; //--07字模--// uchar code tab4[] = {0, 0, 0, 0, 0, 0, 24, 126, 36, 34, 66, 34, 66, 16, 66, 16, 66, 8, 66, 8, 66, 8, 66, 8, 36, 8, 24, 8, 0, 0, 0, 0};

基于51单片机的汉字点阵显示设计

湖南科技大学测控技术与仪器专业
单 片 机 课 程 设 计
题 姓 学 名 号

指导教师 成 绩 ____________________
湖南科技大学机电工程学院 二〇一五年十二月制

湖南科技大学课程设计
摘要
LED 显示屏在我们的周围随处可见,它的应用已经普及到社会中的方方面面。作为 一种新型的显示器件,在许多场合都可以见到它的身影,不仅是它的应用使呈现出来的 东西更加美观,更重要的是它的应用方便,成本很低,除了能给人视觉上的冲击外,更 能给人一种美的享受。LED 显示屏是由多个发光二极管按矩阵形式排列封装而成,通常 用来显示时间、图文等各种信息。本设计是基于 ATS52 单片机的 16*16 点阵式显示屏, 该 LED 显示屏能实现 16*16 个汉字,简单的显示图像, 然后一直循环着显示下去。该设 计包含了硬件、软件、调试等方案,只需简单的级联就能实现显示屏的拓展,但要注意 不要超过负载能力。本次设计的作品体积小、功能多、方便实用、花费小,电路具有结 构简单、操作方便、精度高、应用广泛的特点。 关键词: LED,ATS51 单片机,显示屏
-2-

湖南科技大学课程设计
目录
摘要…………………………………………………………………………i 第一章 系统功能要求 ……………………………………………………1 1.1 系统设计要求 ……………………………………………………1 第二章 方案论证 …………………………………………………………1 2.1 方案论证 …………………………………………………………1 第三章 系统硬件电路设计 ………………………………………………1 3.1 AT89S51 芯片的介绍 ………………………………………………1 3.1.1 系统单片机选型…………………………………………………1 3.1.2 AT89S51 引脚功能介绍 …………………………………………2 3.2 LED 点阵介绍………………………………………………………2 3.2.1LED 点阵……………………………………………………………2 3.3 系统各硬件电路介绍 ………………………………………………3
3.3.1 系统电源电路设计介绍……………………………………………3 3.3.2 复位电路……………………………………………………………4 3.3.3 晶振电路……………………………………………………………4 3.4 系统的总的原理图……………………………………………………5 第四章 系统程序设计 ………………………………………………………5 4.1 基于 PROTEUS 的电路仿真……………………………………………5 4.2 用 PROTEUS 绘制原理 ………………………………………………6
4.3PROTEUS 对单片机内核的仿真 ………………………………………6
-3-

LED显示屏基础知识

LED显示屏基础知识 (一)、概述: LED电子显示屏是集计算机技术、光电技术、微电子技术等一身的现代高科技产品。它广泛应用在车站、码头、办公大厅等公共场所,是广告宣传、新闻发布的最佳首选媒体,它不但可以播放文字、图像还可以播放VCD、DVD、TV等多媒体节目,能对其播放的文件进行编辑,利用计算机应用软件进行特殊处理后播放,还能显示时钟、天气温度等信息。 (二)、系统组成(参见LED显示屏连接示意图) 1、电子显示屏屏体 2、计算机及网络控制系统 3、通信系统 4、显示屏供配电系统 5、多媒体音、视频编辑、制作、播放系统 (三)、显卡的设置 在显示器桌面空白处单击鼠标右键,进入“属性”设置项,单击“屏幕保护程序”,将屏幕保护程序设为“无”,然后单击右下脚“电源”项,将电源使用方案下的“关闭监视口、关闭硬盘、系统待机、系统休眠”全设为“全不”然后应用该设置 回到主设置菜单,单击“设置”选项。将显示屏分辨率设为1024X768,颜色质量设为“最高32位”应用设置。 单击右下角“高级”选项,单击“监视器”项设屏幕刷新频率为60HZ, 单击“显示”项,使第四项即PDF项按扭显示为绿色,应用该设置显卡设置完毕. (四)、网线制作 使用普通8芯5类网线传输距离在100米内。 网线压线线序为:白橙、橙、白绿、蓝、白蓝、绿、白棕、棕,即国标网线568B压法。

一、相关配件说明 1、框架结构图,此图仅供参考(图1-1) 1-1 2、箱体后视结构 2.1 B、C为RJ45水晶头插座,用于连接各箱体之间的信号线。 3、控制系统 3.1 显示卡如图(1-3) ·P为数字视频输出口(DVI) ·Q为CRT显示接口 3.2发送卡如图(1-4) 1-3 ·DVI为数字视频输入口 ·U、D为RJ45信号线输出口 ·232为串口信号输入 3.3 接收卡如图(1-5) ·P为接收卡电源线输入端 ·A为RJ45信号线输入口 ·B为RJ45信号线输出口 U D 232 DVI P A B 1-4 1-5

16×16点阵滚动显示汉字c51程序

16×16点阵滚动显示汉字c51程序 给大家共享一个51单片机驱动的16×16点阵滚动显示汉字的程序,是公车上用的。 下载源代码 #include #define int8 unsigned char #define int16 unsigned int #define int32 unsigned long int8 flag; int8 n; int8 code table[][32]={ 欢迎您乘坐广州三汽公司公共汽车大学城2线开往大学城请您坐好扶稳 具体的字码省略,请点此处下载本列16×16点阵汉字滚动显示源代码 }; void delay(void); int16 offset; void main(void) { int8 i; int8 *p; flag=0x10;

n=0; TMOD=0x01; TH0=0xb1; TL0=0xe0; ET0=1; EA=1; TR0=1; p=&table[0][0]; while (1) { for (i=0;i<8;i++) //显示左半边屏幕 { P0=*(p+offset+2*i); P2=i|0x08; //P2.4=0,P2.3=1 选中U2, 输出扫描码给U6 delay(); P0=*(p+offset+2*i+1); P2=i|0x10; //P2.4=1,P2.3=0 选中U3, 输出扫描码给U7 delay(); } for (i=8;i<16;i++) //显示右半边屏幕 {

P0=*(p+offset+2*i); P2=(i-8)|0x20; //P2.5=1 P2.4=0, P2.3=0 选中U4,输出扫描码U8 delay(); P0=*(p+offset+2*i+1); P2=(i-8)|0x40; //P2.6=1 P2.5=0, P2.4=0 选中U5,输出扫描码U9 delay(); } } } void delay(void) { int16 i; for (i=0;i<50;i++) ; } void timer0() interrupt 1 using 3 { TF0=0; TH0=0xb1; TL0=0xe0; if (n1100)

8×8LED点阵显示汉字课程设计

目录 第1章本设计的研究背景及目的要 求 0 1.1凌阳单片 机 0 1.2 LED(8×8)点阵模块简 介 (1) 第2章设计方案和基本原 理 (3) 2.1设计方 案 (3) 2.2 基本原 理 (3) 1. 8×8LED点阵的工作原 理 (3) 第3章程序设 计 (6) 3.1程序流程 图 (6) 3.2 程序代 码 (6) 第4章调试结果及分 析 (8) 4.1调试结 果 (8) 4.2结果分 析 (9) 第5章结论与体 会 (10) 参考文 献 .................................................................. 11 附 录 .................................................................. . (12) 第1章本设计的研究背景及目的要求

1.1凌阳单片机 (1)来源 随着单片机功能集成化的发展,其应用领域也逐渐地由传统的控制,扩展为控制处理数据处理以及数字信号处理,DSP(Digital Signal Processing)等领域。凌阳的16位单片机就是为适应这种发展而设计的。 (2)构造 它的CPU内核采用凌阳最新推出的Microcontroller and Signal Processor 16 位微机处理器芯片,以下简称μ'nSP?。围绕μ'nSP?所形成的16位μ'nSP?系 列单片机,以下简称μ'nSP? 家族。采用的是模块式集成结构,它以μ'nSP?内核为中心集成不同规模的ROM PAM和功能丰富的各种外设部件。μ'nSP?内核 是一个通用的和结构。除此之外的其它功能模块均为可选结构。以及这种结构可大可小可有可无,借助这种通用结构附加可选结构的积木式的构成,便可成为各种系列的派生产品,以适合不同场合,这样做无疑会使每种派生产品具有更强的功能和更低的成本。μ'nSP?家族有有以下特点:体积小,集成度高,可靠性 好易于扩展。μ'nSP? 家族把各功能把各功能部件模块化地集成在一个芯片里。内部采用总线结构,因为减少了各功能部件之间的连接,提高了其可靠性和抗干扰能力,另外,模块化的结构易于系列的扩展,以适应不同用户的需求。具有较强的中断处理能力。μ'nSP?家族的中断系统支持10个中断向量及10余个中断源,适合实时应用领域。高性能价格比:μ'nSP?家族片内带有高寻址能力的ROM,静态RAM和多功能的I/O口,另外μ'nSP?的指令系统提供出具有较高运算速度的16位,16位的乘法运算指令和内积运算指令,为其应用添加了DSP功能,使得μ'nSP?家族运用在复杂的数字信号处理方面既很便利又比专用的DSP芯片廉价。 优点: 功能强、效率高的指令系统:μ'nSP?的指令系统的指令格式紧凑,执行迅速,并且其指令结构提供了对高级语言的支持,这可以大大缩短产品的开发时间。低功耗、低电压:μ'nSP?家族采用CMOS制造工艺,同时增加了软件激发的弱振方式,空闲方式和掉电方式,极大地降低了其功耗,另外,μ'nSP?家族的工 作电压范围大,能在低电压供电时正常工作,且能用电池供电,这对于其在野外作业等领域中的应用具有特殊的意义。 (3)应用领域 凌阳单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴: 1.在智能仪器仪表上的应用 单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控例且功能比起采用电子或数字电路更加强大。智能化、微型化,制使得仪器仪表数字化、. 。如精密的测量设备(功率计,示波器,各种分析仪)在工业控制中的应用2. 例如工厂流水线的智能化管数据采集系统。用单片机可以构成形式多样的控制系统、

题目:16×16点阵LED电子显示屏的设计

机器人创新设计 课程设计报告书 题目:16×16点阵LED电子显示屏的设计 姓名:张津 学号:1613010320 专业:国际经济与贸易

指导老师:于大泳 设计时间:2017年3月 管理学院 目录 1. 引言 (3) 1.1 设计意义 (3) 1.2 系统功能要求 (3) 2. 方案设计 (4) 3. 硬件设计 (5) 4. 软件设计 (8)

5. 系统调试 (9) 6. 设计总结 (11) 7. 附录A.:源程序 (11) 8. 附录B.:作品实物照片 (16) 9. 参考文献 (17) 16×16点阵LED电子显示屏的设计 1.引言 1.1 设计意义 目前广告牌具有显示内容丰富、信息量大、信息更换速度快等特点。因此传统的LED显示屏控制系统已经越来越不能满足现代广告宣传业的需要。而利用PC机通信技术控制LED显示屏,则具有显示内容丰富,信息更换灵活等优点。

1.2 系统功能要求 本设计是一16×16点阵LED电子显示屏的设计。整机以40脚单片机AT89C51为核心,通过该芯片控制列驱动器74HC595来驱动显示屏显示。该电子显示屏可以显示各种文字或单色图像,全屏能显示1个汉字。显示可以采用动态显示,使得图形或文字能够实现静止、移入移出等多种显示方式。开关控制显示“矿大电气五班”、“电子综合设计”的字幕。 同时还要实现的功能:5V的电压输入,时钟电路的设置,复位电路的设置,单片机给74HC154芯片同时给E1和E2低电平,74LS154才能正常的工作。例如如果想使左上角LED点亮,则Y0=1,X0=0即可。应用时限流电阻可以放在X轴或Y,16*16LED点阵如图1.2.1所示。 图1.2.1 2.方案设计 16X16点阵LED工作原理说明 : 16X16点阵共需要256个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1 电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的

16 16点阵LED循环显示汉字汇编语言设计

LED16X16点阵显示 课程设计报告 学院信息工程学院 专业通信工程 班级0801 学生姓名 指导老师 二0一0年十二月 一、设计目的 本次课程设计目的剖析试验箱,利用微机接口芯片8255,并行控制LED点阵显示;其次就是掌握8088微机系统与LED点阵显示模块之间接口电路设计及编程,了解LED点阵显示的基本原理和如何来实现汉字的的循环左移显示。 二、设计内容 利用598H试验系统扩展接口CZ7座,在控制板MC1上以并行通信的方式控制LED点阵显示。要求自建字库,编制程序实现点阵循环左移显示汉字,并要求通过protues仿真软件画出电路图,运行程序。 三、硬件电路设计 整个电路由8088CPU,两片8255,1个74ls373,1个74LS138,1个16×16的LED,5个7407。该电路可静态显示1个16*16位的汉字,也可循环显示。 1、8255 Intel8255A是一种通用的可编程序并行I/O接口芯片,又称“可编程外设接口芯片”,是为Intel8080/8085系列微处理据设计的,也可用于其它系列的微机系统。可由程序来改变其功能,通用性强、使用灵活。通过8255A,CPU可直接同外设相连接,是应用最广的并行I/O接口芯片。其中含3个独立的8位并行输入/输出端口,各端口均具有数据的控制和锁存能力。可通过编程设置各端口的工作方式和数据传送方向(入/出/双向)。 2、138译码器 译码器是组合逻辑电路的一个重要的器件,74LS138的输出是低电平有效,故实现逻辑功能时,输出端不可接或门及或非门,74LS138与前面不同,其有使能端,故

使能端必须加以处理,否则无法实现需要的逻辑功能。发光二极管点亮只须使其正向导通即可,根据LED的公共极是阳极还是阴极分为两类译码器,即针对共阳极的低电平有效的译码器;针对共阴极LED的高电平输出有效的译码器。 3、373锁存器 74LS373是低功耗肖特基TTL8D锁存器,内有8个相同的D型(三态同相)锁存器,由两个控制端(11脚G或EN;1脚OUT、CONT、OE)控制。当OE接地时,若G为高电平,74LS373接收由PPU输出的地址信号;如果G为低电平,则将地址信号锁存。工作原理:74LS373的输出端O0—O7可直接与总线相连。当三态允许控制端OE为低电平时,O0—O7为正常逻辑状态,可用来驱动负载或总线。当OE为高电平时,O0—O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端LE为高电平时,O随数据D而变。当LE为低电平时,O被锁存在已建立的数据电平。 4、LED动态显示原理 LED点阵显示系统中各模块的显示方式:有静态和动态显示两种。静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲电压驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的列数据信号,反复循环以上操作,就可显示各种图形或文字信息。 点阵式LED绝大部分是采用动态扫描显示方式,这种显示方式巧妙地利用了人眼的视觉暂留特性。将连续的几帧画面高速的循环显示,只要帧速率高于24帧/秒,人眼看起来就是一个完整的,相对静止的画面。最典型的例子就是电影放映机。在电子领域中,因为这种动态扫描显示方式极大的缩减了发光单元的信号线数量,因此在LED显示技术中被广泛使用。 以8×8点阵模块为例,说明一下其使用方法及控制过程。图2.1中,红色水平线Y0、Y1……Y7叫做行线,接内部发光二极管的阳极,每一行8个LED的阳极都接在本行的行线上。相邻两行线间绝缘。同样,蓝色竖直线X0、X1……X7叫做列线,接内部每列8个LED的阴极,相邻两列线间绝缘。 在这种形式的LED点阵模块中,若在某行线上施加高电平(用“1”表示),在某列线上施加低电平(用“0”表示)。则行线和列线的交叉点处的LED就会有电流流过而发光。比如,Y7为1,X0为0,则右下角的LED点亮。再如Y0为1,X0到X7均为0,则最上面一行8个LED 全点亮。 现描述一下用动态扫描显示的方式,显示字符“B”的过程。其过程如图3.1 图3.1用动态扫描显示字符“B”的过程 Proteus中只有5×7和8×8等LED点阵,并没有16×16LED点阵,而在实际应用中,要良好地显示一个汉字,则至少需要16×16点阵。下面我们就首先介绍使用8×8点阵构建16×16点阵的方法,并构建一块16×16LED点阵,用于本次设计。

8x8点阵LED显示键盘输入字母A~F.

课程设计报告 课程设计名称:微机原理与接口技术系别:三系 学生姓名:缪广东 班级:10计本(1) 学号:20100303130 成绩: 指导教师:巫宗宾 开课时间:2012—2013 学年 1 学期

一.设计题目 LED显示系统设计 二.主要内容 课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力的重要教学环节。它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一个重要教学环节。 通过课程设计,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。 通过课程设计实践,不仅要培养学生事实求是和严肃认真的工作态度,培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅资料,撰写设计报告表达设计思想和结果的能力。 在课程设计时,1人一组,设计报告由学生独立完成,不得互相抄袭。教师的主导作用主要在于指明设计思路,启发学生独立设计的思路,解答疑难问题和按设计进度进行阶段审查。学生必须发挥自身学习的主动性和能动性,主动思考问题、分析问题和解决问题,而不应处处被动地依赖指导老师。 学生在设计中可以引用所需的参考资料,避免重复工作,加快设计进程,但必须和题目的要求相符合,保证设计的正确。学生学会掌握和使用各种已有的技术资料,不能盲目地、机械地抄袭资料,必须具体分析,使设计质量和设计能力都获得提高。学生要在老师的指导下制定好自己各环节的详细设计进程计划,按给定的时间计划保质保量的完成个阶段的设计任务。设计中可边设计,边修改,软件设计与硬件设计可交替进行,问题答疑与调试和方案修改相结合,提高设计的效率,保证按时完成设计工作并交出合格的设计报告。

Verilog程序(汉字点阵显示

中国石油大学 数电课程设计报告题目: 学院: 班级: 姓名: 学号: 日期: 2012 年 12月

摘要 设计要求: 利用EDA/SOPC 实验开发平台提供的16*16点阵LED以及EPC235核心板,实现循环显示“中国石油大学”这6个汉字(左移或者右移均可)。 (1)手动生成“中国石油大学”这6个汉字在16*16点阵LED 上的6个字模(即控制某些LED亮,某些LED灭)。 (2)实现循环显示“中国石油大学”这6个汉字(左移或者右移均可)。 (3)拓展要求:自主设计(如控制循环速度,方向)。 关键词: 扫描分频,控制速度,点阵,点阵汉字显示,

设计原理及方案: 1、16*16点阵LED内部结构如下图所示。 2、总体设计框图: 3、各子模块的设计: (1)、分频,扫描: module fenpin (clk_50Mhz,clk_4hz,k2,k3); input clk_50Mhz,k2,k3; // 输入端口声明

output clk_4hz; // 输出端口声明reg[24:0] count,ccount; reg clk_4hz; always @(posedge clk_50Mhz) begin if ((k2==0) && (k3==0)) ccount<=500000000; if ((k2==0) && (k3==1)) ccount<=100000000; if ((k2==1) && (k3==0)) ccount<=50000000; if ((k2==1) && (k3==1)) ccount<=10000000; if(count

相关文档
最新文档