版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 1 绪论1.1课程设计背景led显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。当今世界,电子技术迅猛发展,点阵式显示器件作为现代信息显示的重要媒体,在金融证券、体育、机场、交通、商业、广告宣传、邮电电信、指挥调度、国防军事等许多领域中得到了广泛应用。因此点阵式显示器件的研制、生产也的到了迅速的发展,并逐步形成产业,成为光电子行业的新兴产业领域。目前,点阵式显示器件具体包括led显示模块和lcd显示模块等。现在发展的lcd比较先进,lcd的优点较为明显,他体积小,容易控制,功能强,价格适宜,能够适应显示器的发展方向,因而在通信、家电、大屏幕投影等领域得到了越来越广泛的应用;随着
2、社会经济的迅猛发展,工业生产逐渐实现了自动化,其中,设备的工作状态和生产过程状态的显示与监控起到了非常重要的作用,对于那些需要显示的信息量不是很大,分辨率不是很高,又需要制造成本相对比较低的场合,使用大、小屏幕led点阵显示器是比较经济适用的,他可以显示字符、数字、汉字和简单图形,可以根据需要使用不同字号、字型,显示亮度较高,并且对环境条件要求比较低。led显示又可以分为单色显示和双色显示,可以按照需要的大小、形状和颜色进行组合,并用单片机控制实现各种文字或图形的变化,达到宣传和提示的目的。1.2 课程设计目的掌握点阵led显示驱动电路的设计原理,并能够在实际生活中正确应用;学会在max+pl
3、us软件环境中仿真;锻炼自己独立解决问题的能力,学会有效获取有用信息。2 课程设计总体方案点阵led显示方式有两种:方案一、每次显示一个汉字,一秒钟后刷新显示第二个汉字,再一秒钟后刷新显示第三个汉字,依次刷新显示班级和学号数。循环显示以上内容。方案二、滚屏显示。考虑到一次显示一个汉字比较容易,最终我们选择方案一,一次显示一个汉字,一秒后换下一个字,直到显示完,再从复显示以上内容。3 设计的基本原理 设计的原理框图如下所示:控制器点阵led显示屏计数器功能键功能键模块用于启动显示或者停止显示;控制器模块用来选择要显示的字,它通过给16×16个二极管设置状态来显示字;计数器用来控制每个字
4、显示的时间长短,当计数器计数达到设定的值后,显示屏就换下一个字;点阵led显示屏用来显示字。4 设计的步骤和过程4.1 功能键模块的设计 本模块就用一个拨码开关来控制,闭合就代表扫描点阵并显示汉字,断开就表示停止扫描,不显示汉字。4.2 控制器模块的设计点阵led显示的原理就是用高低电平来控制16×16个二极管的点亮或者熄灭,达到显示字的目的,所以我们先要把要显示的字的十六进制代码编写出来,可用字模提取软件提取。图4.1演示了用字模提取软件“磊”字的十六进制代码。图4.1 字模提取软件的应用经分析,然后用vhdl语言编写的控制器模块源程序如下所示:library ieee; use
5、ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity dot_led is port(clk :in std_logic; -system clk(250khz) r :out std_logic_vector(3 downto 0)l :out std_logic_vector(15 downto 0);end dot_led;architecture display of dot_led issignal cnt:integer range 0 to 15; s
6、ignal number:integer range 0 to 8; beginprocess(clk)beginif clk'event and clk='1' then if cnt=15 then cnt<=0;else cnt<=cnt+1;end if; if number=8 then number<=0; else number<=number+1; end if; case number is when 0=> case cnt iswhen 0=>r<="0000"l<=x"
7、0000"when 1=>r<="0001"l<=x"1ff0"when 2=>r<="0010"l<=x"1010"when 3=>r<="0011"l<=x"1010"when 4=>r<="0100"l<=x"1ff0"when 5=>r<="0101"l<=x"0000"when 6=>
8、;r<="0110"l<=x"0000"when 7=>r<="0111"l<=x"3ff8"when 8=>r<="1000"l<=x"0100"when 9=>r<="1001"l<=x"0100"when 10=>r<="1010"l<=x"fffe"when 11=>r<="1011&
9、quot;l<=x"0280"when 12=>r<="1100"l<=x"0240"when 13=>r<="1101"l<=x"0420"when 14=>r<="1110"l<=x"1810"when 15=>r<="1111"l<=x"600c" end case; when 1=> case cnt iswhen 0=>
10、;r<="0000"l<=x"3ff8"when 1=>r<="0001"l<=x"0400"when 2=>r<="0010"l<=x"0800"when 3=>r<="0011"l<=x"1ff0"when 4=>r<="0100"l<=x"2810"when 5=>r<="0101&qu
11、ot;l<=x"4810"when 6=>r<="0110"l<=x"8ff0"when 7=>r<="0111"l<=x"0000"when 8=>r<="1000"l<=x"fefe"when 9=>r<="1001"l<=x"1020"when 10=>r<="1010"l<=x"204
12、0"when 11=>r<="1011"l<=x"7efc"when 12=>r<="1100"l<=x"a344"when 13=>r<="1101"l<=x"2244"when 14=>r<="1110"l<=x"3e7c"when 15=>r<="1111"l<=x"0000" end cas
13、e; when 2=> case cnt iswhen 0=>r<="0000"l<=x"0040"when 1=>r<="0001"l<=x"0040"when 2=>r<="0010"l<=x"fbf8"when 3=>r<="0011"l<=x"0848"when 4=>r<="0100"l<=x"17fe
14、"when 5=>r<="0101"l<=x"1048"when 6=>r<="0110"l<=x"3bf8"when 7=>r<="0111"l<=x"0840"when 8=>r<="1000"l<=x"8bf8"when 9=>r<="1001"l<=x"5040"when 10=>r&
15、lt;="1010"l<=x"5040"when 11=>r<="1011"l<=x"37fc"when 12=>r<="1100"l<=x"2040"when 13=>r<="1101"l<=x"5040"when 14=>r<="1110"l<=x"8840"when 15=>r<="1111&
16、quot;l<=x"07fc" end case; when 3=> case cnt iswhen 0=>r<="0000"l<=x"0200"when 1=>r<="0001"l<=x"0200"when 2=>r<="0010"l<=x"0200"when 3=>r<="0011"l<=x"7ff0"when 4=>r&l
17、t;="0100"l<=x"4210"when 5=>r<="0101"l<=x"4210"when 6=>r<="0110"l<=x"7ff0"when 7=>r<="0111"l<=x"4210"when 8=>r<="1000"l<=x"4210"when 9=>r<="1001"l
18、<=x"7ff0"when 10=>r<="1010"l<=x"4210"when 11=>r<="1011"l<=x"0200"when 12=>r<="1100"l<=x"0204"when 13=>r<="1101"l<=x"0204"when 14=>r<="1110"l<=x"03f
19、c"when 15=>r<="1111"l<=x"0000" end case; when 4=> case cnt iswhen 0=>r<="0000"l<=x"0880"when 1=>r<="0001"l<=x"0840"when 2=>r<="0010"l<=x"0ffe"when 3=>r<="0011"l
20、<=x"1000"when 4=>r<="0100"l<=x"1000"when 5=>r<="0101"l<=x"37fc"when 6=>r<="0110"l<=x"5000"when 7=>r<="0111"l<=x"9000"when 8=>r<="1000"l<=x"17fc&quo
21、t;when 9=>r<="1001"l<=x"1000"when 10=>r<="1010"l<=x"13f8"when 11=>r<="1011"l<=x"1208"when 12=>r<="1100"l<=x"1208"when 13=>r<="1101"l<=x"1208"when 14=>r&
22、lt;="1110"l<=x"13f8"when 15=>r<="1111"l<=x"1000" end case; when 5=> case cnt iswhen 0=>r<="0000"l<=x"0000"when 1=>r<="0001"l<=x"0000"when 2=>r<="0010"l<=x"1fe0&quo
23、t;when 3=>r<="0011"l<=x"0020"when 4=>r<="0100"l<=x"0020"when 5=>r<="0101"l<=x"0020"when 6=>r<="0110"l<=x"0040"when 7=>r<="0111"l<=x"0080"when 8=>r<=&
24、quot;1000"l<=x"0100"when 9=>r<="1001"l<=x"0200"when 10=>r<="1010"l<=x"0400"when 11=>r<="1011"l<=x"0800"when 12=>r<="1100"l<=x"0800"when 13=>r<="1101"l
25、<=x"0800"when 14=>r<="1110"l<=x"0800"when 15=>r<="1111"l<=x"0ff0" end case; when 6=> case cnt iswhen 0=>r<="0000"l<=x"0100"when 1=>r<="0001"l<=x"0904"when 2=>r<=&
26、quot;0010"l<=x"7dfe"when 3=>r<="0011"l<=x"2110"when 4=>r<="0100"l<=x"2510"when 5=>r<="0101"l<=x"2510"when 6=>r<="0110"l<=x"2510"when 7=>r<="0111"l<
27、=x"f57c"when 8=>r<="1000"l<=x"2510"when 9=>r<="1001"l<=x"2910"when 10=>r<="1010"l<=x"2110"when 11=>r<="1011"l<=x"2210"when 12=>r<="1100"l<=x"3a10"
28、;when 13=>r<="1101"l<=x"e214"when 14=>r<="1110"l<=x"44fe"when 15=>r<="1111"l<=x"0800" end case; when 7=> case cnt iswhen 0=>r<="0000"l<=x"0000"when 1=>r<="0001"l<
29、=x"0000"when 2=>r<="0010"l<=x"3f04"when 3=>r<="0011"l<=x"0114"when 4=>r<="0100"l<=x"0124"when 5=>r<="0101"l<=x"0244"when 6=>r<="0110"l<=x"0484"wh
30、en 7=>r<="0111"l<=x"0884"when 8=>r<="1000"l<=x"10ff"when 9=>r<="1001"l<=x"2004"when 10=>r<="1010"l<=x"2004"when 11=>r<="1011"l<=x"2004"when 12=>r<=&q
31、uot;1100"l<=x"3f04"when 13=>r<="1101"l<=x"0004"when 14=>r<="1110"l<=x"0000"when 15=>r<="1111"l<=x"0000" end case; when 8=> case cnt iswhen 0=>r<="0000"l<=x"0010"wh
32、en 1=>r<="0001"l<=x"1ff8"when 2=>r<="0010"l<=x"1010"when 3=>r<="0011"l<=x"1010"when 4=>r<="0100"l<=x"1010"when 5=>r<="0101"l<=x"1ff0"when 6=>r<="
33、;0110"l<=x"0004"when 7=>r<="0111"l<=x"fffe"when 8=>r<="1000"l<=x"0400"when 9=>r<="1001"l<=x"0810"when 10=>r<="1010"l<=x"1ff8"when 11=>r<="1011"l<=x
34、"0010"when 12=>r<="1100"l<=x"0010"when 13=>r<="1101"l<=x"0010"when 14=>r<="1110"l<=x"00a0"when 15=>r<="1111"l<=x"0040" end case; end case;end if;end process ;end display;4.3
35、计数器模块的设计设计要求每屏汉字要显示一秒,而实验室硬件的频率f=250khz,这就要求我们对时钟脉冲信号进行计数,当计数器计数达到250000时,控制器模块换下一个汉字。计数器模块源程序如下所示:process(clk) variable ct:integer range 0 to 250000 ;beginif ct=250000 then - 1 second ct:=0;else ct:=ct+1;end if; end process(clk);4.4 点阵led显示屏模块的设计该模块由实验室提供,它以发光二极管为像素。它通过对16×16个发光二极管设置状态(点亮或者熄灭)
36、来达到显示汉字或数字的目的。4.5 模块的整合整个软件的程序流程图如4.2所示。开始开关是否闭合number:=0显示选定的字number:=number+1number是否为9图4.2 流程图按流程图将四个模块整合到一个程序中,整理后的原程序见附录一。5 设计的仿真和运行结果5.1 设计的仿真把源程序通过键盘输入电脑,先在max+plus软件环境下进行编译,将编译提示的错误完全改正后,在max+plus软件环境下进行仿真的结果如图5.1所示。图5.1仿真结果 经分析,仿真结果与预测结果一样,符合要求。5.2 运行结果 软件仿真完全正确后,线封锁引脚,然后连接硬件,再次编译,没有错误后下载程序
37、到硬件之中,当拨码开关闭合时,得到的点阵led显示结果如图5.2所示,其中每个汉字显示时间为一秒,一秒过后自动换下一个汉字,直到显示完姓名、班级和学号,再循环显示以上内容;当拨码开关断开时,点阵led不显示任何内容。 图5.2 运行结果6 总结6.1 课程设计总结 这次实习的结果符合设计任务书上面的各项要求。6.2 课程设计心得课程设计心得在这两周的课程设计过程中,我和我的搭档始终坚持不懈,不惧困难,在各位老师的帮助下,终于在规定时间内,比较出色的完成了各项设计任务。刚开始设计时,我觉得自己是迷茫的,由于平时上课都是学的理论知识,很少有机会将理论知识运用到实际生活中,因而极其缺乏实践经验,所以
38、我根本就不知道要设计出点阵led显示驱动电路要多少模块、每一个模块该怎么做,后来在范老师的细心讲解下,我终于恍然大悟,然后根据老师的讲解编写出了源程序,尽管最初的程序编译时还有或多或少的错误存在,但我心里还是十分高兴的。后来在慢慢的尝试中我们终于把源程序全部改正确了,从而离成功又进了一大步。最后,我们用硬件成功显示了我和搭档的姓名、班级和学号,这无疑是对我和搭档的努力最好的奖励。经过这次实习,我对eda课程有了跟深入的认识,对于eda技术在现实生活中的应用也有了进一步的认识,就如我所做的点阵led显示,它在现实生活中无处不在,我们所看到的各种显示器、显示屏都是由此原理制造的。最重要的是这次实习
39、锻炼了我独立解决问题的能力,锻炼了我学习资料、应用资源的能力,更加锻炼了我的实际动手能力,这一点是最重要的,对我将来毕业找工作有很大的帮助。所以我十分感激带我们课程设计的各位老师,感谢他们的悉心教导。参考文献1 阎石 主编,数字电子技术基础,高等教育出版社,19982 谭会生等主编,eda技术及应用,西安电子科技大学出版社,20013 廖裕评等主编,cpld数字电路设计使用max+plus入门篇,清华大学出版社,20014 冯涛等主编,可编程逻辑器件开发技术:max+plus入门与提高,人民邮电出版社,20025 杨崇志,特殊新型电子元件手册,辽宁科学技术出版社,19996 彭介华,电子技术课
40、程设计指导高等教育出版社.2000年出版.7 mark zwolinski, digital system design with vhdl, 电子工业出版社,20028 alan b. marcovitz introduction to logic design, 电子工业出版社,2002附录 源程序library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity dot_led is port(clk :in std_logic; -sy
41、stem clk(250khz) set: in std_logic; r:out std_logic_vector(3 downto 0); l:out std_logic_vector(15 downto 0); -matrix dot leds line inputend dot_led;architecture display of dot_led is signal cnt:integer range 0 to 15; signal number:integer range 0 to 8; beginprocess(clk) variable ct:integer range 0 t
42、o 250000 ;begin if clk'event and clk='1' then if set='1' then if cnt=15 then cnt<=0; else cnt<=cnt+1; end if; if ct=250000 then - 1 second ct:=0; if number=8 then number<=0; else number<=number+1; end if; else ct:=ct+1; end if; case number is when 0=> case cnt iswh
43、en 0=>r<="0000"l<=x"0000"when 1=>r<="0001"l<=x"1ff0"when 2=>r<="0010"l<=x"1010"when 3=>r<="0011"l<=x"1010"when 4=>r<="0100"l<=x"1ff0"when 5=>r<="
44、;0101"l<=x"0000"when 6=>r<="0110"l<=x"0000"when 7=>r<="0111"l<=x"3ff8"when 8=>r<="1000"l<=x"0100"when 9=>r<="1001"l<=x"0100"when 10=>r<="1010"l<=x&
45、quot;fffe"when 11=>r<="1011"l<=x"0280"when 12=>r<="1100"l<=x"0240"when 13=>r<="1101"l<=x"0420"when 14=>r<="1110"l<=x"1810"when 15=>r<="1111"l<=x"600c"
46、 end case; when 1=> case cnt iswhen 0=>r<="0000"l<=x"3ff8"when 1=>r<="0001"l<=x"0400"when 2=>r<="0010"l<=x"0800"when 3=>r<="0011"l<=x"1ff0"when 4=>r<="0100"l<=x&q
47、uot;2810"when 5=>r<="0101"l<=x"4810"when 6=>r<="0110"l<=x"8ff0"when 7=>r<="0111"l<=x"0000"when 8=>r<="1000"l<=x"fefe"when 9=>r<="1001"l<=x"1020"when 1
48、0=>r<="1010"l<=x"2040"when 11=>r<="1011"l<=x"7efc"when 12=>r<="1100"l<=x"a344"when 13=>r<="1101"l<=x"2244"when 14=>r<="1110"l<=x"3e7c"when 15=>r<=&qu
49、ot;1111"l<=x"0000" end case; when 2=> case cnt iswhen 0=>r<="0000"l<=x"0040"when 1=>r<="0001"l<=x"0040"when 2=>r<="0010"l<=x"fbf8"when 3=>r<="0011"l<=x"0848"when 4
50、=>r<="0100"l<=x"17fe"when 5=>r<="0101"l<=x"1048"when 6=>r<="0110"l<=x"3bf8"when 7=>r<="0111"l<=x"0840"when 8=>r<="1000"l<=x"8bf8"when 9=>r<="100
51、1"l<=x"5040"when 10=>r<="1010"l<=x"5040"when 11=>r<="1011"l<=x"37fc"when 12=>r<="1100"l<=x"2040"when 13=>r<="1101"l<=x"5040"when 14=>r<="1110"l<=x&
52、quot;8840"when 15=>r<="1111"l<=x"07fc" end case; when 3=> case cnt iswhen 0=>r<="0000"l<=x"0200"when 1=>r<="0001"l<=x"0200"when 2=>r<="0010"l<=x"0200"when 3=>r<="001
53、1"l<=x"7ff0"when 4=>r<="0100"l<=x"4210"when 5=>r<="0101"l<=x"4210"when 6=>r<="0110"l<=x"7ff0"when 7=>r<="0111"l<=x"4210"when 8=>r<="1000"l<=x"
54、4210"when 9=>r<="1001"l<=x"7ff0"when 10=>r<="1010"l<=x"4210"when 11=>r<="1011"l<=x"0200"when 12=>r<="1100"l<=x"0204"when 13=>r<="1101"l<=x"0204"when 1
55、4=>r<="1110"l<=x"03fc"when 15=>r<="1111"l<=x"0000" end case; when 4=> case cnt iswhen 0=>r<="0000"l<=x"0880"when 1=>r<="0001"l<=x"0840"when 2=>r<="0010"l<=x"
56、0ffe"when 3=>r<="0011"l<=x"1000"when 4=>r<="0100"l<=x"1000"when 5=>r<="0101"l<=x"37fc"when 6=>r<="0110"l<=x"5000"when 7=>r<="0111"l<=x"9000"when 8=>
57、;r<="1000"l<=x"17fc"when 9=>r<="1001"l<=x"1000"when 10=>r<="1010"l<=x"13f8"when 11=>r<="1011"l<=x"1208"when 12=>r<="1100"l<=x"1208"when 13=>r<="110
58、1"l<=x"1208"when 14=>r<="1110"l<=x"13f8"when 15=>r<="1111"l<=x"1000" end case; when 5=> case cnt iswhen 0=>r<="0000"l<=x"0000"when 1=>r<="0001"l<=x"0000"when 2=>
59、;r<="0010"l<=x"1fe0"when 3=>r<="0011"l<=x"0020"when 4=>r<="0100"l<=x"0020"when 5=>r<="0101"l<=x"0020"when 6=>r<="0110"l<=x"0040"when 7=>r<="0111&qu
60、ot;l<=x"0080"when 8=>r<="1000"l<=x"0100"when 9=>r<="1001"l<=x"0200"when 10=>r<="1010"l<=x"0400"when 11=>r<="1011"l<=x"0800"when 12=>r<="1100"l<=x"0
61、800"when 13=>r<="1101"l<=x"0800"when 14=>r<="1110"l<=x"0800"when 15=>r<="1111"l<=x"0ff0" end case; when 6=> case cnt iswhen 0=>r<="0000"l<=x"0100"when 1=>r<="0001&qu
62、ot;l<=x"0904"when 2=>r<="0010"l<=x"7dfe"when 3=>r<="0011"l<=x"2110"when 4=>r<="0100"l<=x"2510"when 5=>r<="0101"l<=x"2510"when 6=>r<="0110"l<=x"2510
63、"when 7=>r<="0111"l<=x"f57c"when 8=>r<="1000"l<=x"2510"when 9=>r<="1001"l<=x"2910"when 10=>r<="1010"l<=x"2110"when 11=>r<="1011"l<=x"2210"when 12=>r<="1100"l<=x"3a10"when 13=>r<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年智能床垫健康监测与预警装置数据应用
- 管理项目实施方案(9篇)
- 2026年从试点到示范:海绵城市建设长效机制与政策保障体系
- 汽服店2026年留在牌桌就是胜利的降本增效实战手册
- 2025年前台服务规范考核题
- 2026年住建领域数据信托实践:河北建工施工现场数据资产化路径
- 管道保温施工方案
- 护理学习手册大全
- 母婴护理师客户满意度提升
- 2026年校园安全教育全套
- 2026江苏苏州市昆山市自然资源和规划局招聘编外人员8人笔试参考题库及答案解析
- 2026年及未来5年市场数据中国演出行业市场发展数据监测及投资潜力预测报告
- 2026年学士学位英语测试题及答案
- 2026年甘肃平凉市华亭煤业集团有限责任公司招聘笔试参考题库附带答案详解
- (一模)2026年深圳市高三年级第一次调研考试政治试卷(含官方答案)
- 上海市普陀区学校(五四制)2025-2026学年六年级上学期期中语文试题(解析版)
- 2023年吉林大学自考生物制药专业招生简章
- 公路工程质量与安全管理课件
- 架桥机安装使用验收表
- 第一课冬休みの予定 单词课件-高中日语华东理工版新编日语教程2
- 中石油设备及管道定点测厚指导意见
评论
0/150
提交评论