VHDL红外接收课程报告资料_第1页
VHDL红外接收课程报告资料_第2页
VHDL红外接收课程报告资料_第3页
VHDL红外接收课程报告资料_第4页
VHDL红外接收课程报告资料_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、VHDL 课程设计报告版权归原作者所有题目要求( 1 ) 、红外遥控系统的设计红外遥控系统由发射编码和接收解码两个部分组成,本课程设计要求制作发射编码电路板(遥控器)以及编写程序在EDA实验板上实现接收解码,具体说明如下:1 、发射编码部分发射编码部分要求使用指定的元器件在万用板上完成红外遥控器的制作,该部分电路原理图参照PT2248 数据手册,制作前请详细阅读红外遥控器制作说明,制作时要求元器件在万用板上排列整齐,布局合理,焊接良好,各按键功能正常,均能发送编码。2、接收解码部分接收解码用VHDL言编写程序,在 EDA实验板上实现解码,要求具有以下功能:( 1)基本要求:(a)将一体化红外接

2、收解调器的输出信号解码(12个单击键、6个连续键,单击键编号为718,连续键编码为1 6),在EDA实验板上用七段数码管显示出来;(b)当按下遥控器16号连续键时,在EDA实验板上用发光二极管点亮作为连续键按下的指示,要求遥控器上连续键接下时指示灯点亮,直到松开按键时才熄灭,用于区别单击键。(c) EDA实验板上设置四个按键,其功能等同于遥控器上的14号按键,当按下此四个按键时七段数码管分别对应显示“1 ”、 “ 2”、 “ 3”、 “ 4”。(d)每当接收到有效按键时,蜂鸣器会发出提示音。( 2)扩展功能:(能完成的加分)通过遥控器跳线改变用户码,EDA实验板上用三个发光二极管正确显示发送端

3、的用 户码。、设计分析、流水灯程序:测试各发光二极管的程序。程序中只要依次给要闪亮的灯输入低电平即可。、测试8位数码管的程序。 CD4511可以将4位二进制编码转换成对应的7段显像管编码输出。真值表如下:Truth TableHT.ihOutputsLE61IJcBABbcdf9口加町XXDXXXX1H11111BX-1XXXX(3200011D0001111111口0011D0101DH1(E0D1Q11口010110111012011001111111EaH3011010001100iH4311Q101D11aii101101100二111i1eQ11D1111110G0a70111000

4、11111ii3口1110a1111fla1i90111n100口Q00aa01110110二0000口01110000000030111010-00G00011111aaa000a0 11111X1K1 XXD:00 c0D1A Gmi 七Aw .R wJh F 寺I,节后 1W U I lliraiar- 4 ,tDisplay一/mlq|5lM7q程序中只要将8位数码管显示控制端全部置 1,即可保持数码管显示状态,依 次将“ 0000” - “1001”输送给CD4511就可以实现对8位数码管的动态扫描。时钟由晶振分 频后得到。3)、矩阵键盘扫描程序测试键盘输入的程序。 程序实现了显示0

5、-4输入的输出显示。键盘输入行由“0111” 到“1110”,列也是由“ 0111”至IJ “ 1110”,直接翻译成对应的二进制编码输入 CD4511译码 显示。4)、接收译码程序本次实验的最主要程序。发射端编码方式已经在 红外遥控器制作说明及编码规则简要说明中给出,要接收发射端发射的编码最关键的问题是发射段频率和接收段频率不一 致的现象。发射端频率为 38KHz,程序中设计的接收端频率为2.048MHz的8分频,即8KHz。发射端每四个周期代表一个二进制编码,时间为1/38KHz*16*4=1.684ms ,四个周期的时间换算成接收端周期数为1.684ms/(1/8KHz)=13.47 。

6、一个周期占 13.47/4=3.37,三个周期占13.47/4*3=10.1 ,由于编码中一个周期的低电平代表“1”,三个周期的低电平代表“ 0”,再考虑到同步的问题,取(10.1+3.37) /2=6.7定7作为判断“ 0”、“1”的分界线,即当检测到 超过7个接收端周期的低电平后即可认为接收到的是“0”,否则为“1”。翻译出编码信号后根据编码的规则,分析用户和所显示的数字即可。 三、系统模块的划分以及各模块的功能描述程序采用单进程,划分为接收编码信号及翻译模块和输出显示模块。接收编码信号模块分为从键盘接收信号和从发射板接收信号,从键盘接收到的信号直接翻译对应的二进制编码输出到显示模块;从发

7、射板接收到的信号需要进行译码,每次接收 13位周期的信号,如果前 7个周期都为低电平,即可认为接收到“1”,否则为“ 0”。译码后根据编码的规则进行翻译,翻译成对应的二进制编码输出。当检测到收到的信号为16cl时,相应的彩灯发亮指示连续按键。输出显示模块主要是对每一位显像管分别的输出进行控制,根据翻译出的二进制编码分别将各位的编码输入到CD4511,驱动显像管显示。四、程序仿真(1)键盘仿真Start 4S0 Dns| * | * | End |44。Qrrs一 Interval |4Q QnmHam印 qreset qinf qclk ir qjijin 五承qbil qnum qcon q

8、user qbeep各信号描述:Qrset:复位信号Qinf:串行信号输入信号Qck:时钟信号Qjian :键盘输入信号(7代表输入0111,即输入1,同理B代表2, D代表3, E代表4)Qbit:片选信号,指示某个显像管显示Qnum:二进制编码信号,输入 CD4511编码Qcon:彩灯显示信号Qusr:用户信号(程序中全部将用户设为111)Qbeep:蜂鸣信号此图是测试键盘输入的仿真,键盘依次输入7、B、D、E (即1, 2, 3, 4)在二进制编码端识别出1、2、3、4。相应的彩灯也被置为低电平(2)发射板仿真qinEB DqclkB DqbdepB Dqr ACAtB DB 1qbi

9、t0B DpiTiii3B DqpxTUiB DqnTinB DB Dqan 岛1B 1qc&nB 1B 1D83 mi.;n ;;门:;口 ; ri; I” ; D83 mi.;n ;;门:;口 ; ri; I” ; I; ; ri : ;i; : 11 : i h : % i口 psIBO. D us契口. 0 n=48口 Q nxMO JD ae皿口 UEgBO.O ns耽nnmni则1皿喇皿喇师削皿册皿inn叫喇喇聊皿廊皿iiiiwu皿加 mu咽 呱ill卿则咖脚皿m 口仙脚则皿imiinin师皿mnruiiim喇nmuifMmumnrui喇咖喇ir弋尔W、/j晨出登鼠迸3名共号部运福

10、或记另;苔妄t也纪最密支蓝运笨逐弋尔W、9 pc303 as;处工埸.岳瑁今二辞芟樱;生工靠理深鄂幺造出二名;鼻琮;切工窗皿口叫皿加丁.吆式券宜9 pc303 asqiujti 口 qium D ccn6 ccn5J qeftn4 qc 由3 qccn2j 萼加【1】 q:ccnlJ I QUEeT E auitrll J MLgr 1口 J各信号含义与上面相同。该仿真是测试接收发射端信号的仿真。图中仿真发射端编码为,从仿真结果可以看到。Qbit片选信号正确的在两个显像管间切换。Qnum也根据片选信号的不同相应的显示0和1 (显示十位时是 0,个位为1)。Qcon (6)是连续信号的显示灯,接

11、收到 1后该显 示灯发光一段时间,之后会熄灭,因为连续信号会不停的发送编码信号,所以显示效果为连续灯常亮;而其他非连续信号输入时该灯不会亮。Qcon (5 downto 0)正确显示了接收到1信号时应该亮的指示灯。Quser显示用户为111。五、设计体会及心得本次实验锻炼了我们动手的能力,进一步熟练了焊接技巧。对布板的重要性有了更深刻的认识,基本消除了以前常发生的飞线现象。最重要的是本次实验让我们对信号远程传输的发射和接收有了具体的了解,对如何使用VHDL来实现硬件的功能有了初步了解。掌握了 CD4511、74LS224、74HC4040、max7000 等芯片的用法和各管脚的分布。实验中得到

12、各位老师的帮助,尤其是反复的取拿器件,浪费了老师很多时间, 再此表示感谢六、源程序-XIANSHI.VHD 负责各显像管的显示library ieee;use ieee.std_logic_1164.all;entity xianshi isport (acode : in std_logic_vector (4 downto 0);-翻译出的编码aclk : in std_logic;-时钟信号abit : out std_logic_vector(1 downto 0);-片选信号anum : out std_logic_vector (3 downto 0)-编码输入CD4511);en

13、d xianshi;architecture behav of xianshi isbeginprocess (aclk)variable a : std_logic ;beginif rising_edge (aclk) then a:=not a;if a=0 thenanum = 000 & acode(4); - 十位abit = 10;elseanum = acode(3 downto 0);-个位abit = 01;end if;end if;end process;end behav;-OK.VHD 提供上层接口library ieee;use ieee.std_logic_11

14、64.all;use ieee.std_logic_unsigned.all;entity ok isport (qclk : in std_logic;qreset : in std_logic;qinf : in std_logic;qjian : in std_logic_vector(3 downto 0);qbit : out std_logic_vector (1 downto 0);qnum : out std_logic_vector (3 downto 0);qcon : out std_logic_vector (6 downto 0); quser: out std_lo

15、gic_vector (2 downto 0); qbeep: out std_logic);end ok;architecture behav of ok iscomponent fenxi isport (clk : in std_logic;inf : in std_logic;reset : in std_logic;jian : in std_logic_vector(3 downto 0);code : out std_logic_vector(4 downto 0);con : out std_logic_vector (6 downto 0);user: out std_log

16、ic_vector (2 downto 0); beep: out std_logic );end component fenxi;component xianshi isport (acode : in std_logic_vector (4 downto 0);aclk : in std_logic;abit : out std_logic_vector(1 downto 0);anum : out std_logic_vector (3 downto 0) );end component xianshi;signal s : std_logic_vector(4 downto 0);be

17、gint1: fenxi port map(qclk,qinf,qreset,qjian,s,qcon,quser,qbeep);t2: xianshi port map( s,qclk,qbit,qnum);end behav;-FENXI.VHDlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenxi isport (clk : in std_logic;-时钟信号 inf : in std_logic; -串行输入信号reset : in std_logic; - 复位信号j

18、ian : in std_logic_vector(3 downto 0);-键盘输入信号code : out std_logic_vector(4 downto 0);-二进制编码,输入CD4511显像con : out std_logic_vector (6 downto 0);-彩灯控制信号user: out std_logic_vector (2 downto 0);-用户端信号beep: out std_logic );-蜂鸣信号end fenxi;architecture behav of fenxi istype statetype is (s0, s1, s2,sk,t0,ac

19、tion);signal state : statetype ;constant beeptime : integer := 28 ;beginst: process (clk,inf)variable cnt1,cnt2,cnta : integer range 0 to 30;- ,cntavariable reg : std_logic_vector(11 downto 0);variable temp : std_logic_vector (4 downto 0);variable tempcon : std_logic_vector (6 downto 0);begin- 检测键盘输

20、入和开始远程端接收部分if reset= 1 thenstate = s0; code = 00000; con = ; user if inf = 0 thenreg:=0; tempcon:=; temp:=00000;cnt1:=0; cnt2:=0;cnta := 0;state = sk;elsif jian = 0111 thencode = 00001;beep=1;con = ;user =111elsif jian = 1011 thencode = 00010;beep=1;con = ;user =111elsif jian = 1101 thencode = 00011

21、;beep=1;con = ;user =111elsif jian = 1110 thencode = 00100;beep=1;con = ;user =111elsestate = s0;beep=0;con (6) if inf = 0 thenstate = s1;elsestate if inf = 0 then cnt1:=cnt1 + 1;state = s1;elsif inf=1 then state - 计算已记多少位数cnt2:=cnt2 - 计算已记多少位数if cnt1 7 thenreg:=reg(10 downto 0) & 0;elsereg:=reg(10 downto 0) & 1; end if;if cnt2 = 12 then state = t0;else cnt1:= 0 ;state

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论