fpga课程设计(编辑修改稿)内容摘要:
00001 when state =CLEAR else //0x01清屏 00000010 when state =RETURNCURSOR else //0x02光标返回 00000110 when state = SETMODE else //0x06//显示光标移动设置,当读或写一个字符后地址指针加 1,且光标加 1 00001100 when state =SWITCHMODE else //0x0c//开显示。 不显示光标。 光标不闪烁 0001 amp。 zanting amp。 yi amp。 00 when state = SHIFT else //0x81//显示位移。 左移 00111100 when state=SETFUNCTION else//0x3C//8 位。 两行显示 16*2。 字体 5*10 01000000 when state =SETCGRAM else //0x40 字符发生器储存器地址 ACG 10000000 when state =SETDDRAM and counter =0 else //0x80 显示数据储存器地址 ADD 11000000 when state =SETDDRAM and counter /=0 else //0xc0 显示数据储存器地址 ADD 第二行开头 data_in when state = WRITERAM else //写入数据 11 ZZZZZZZZ。 char_addr =conv_std_logic_vector( counter,7) when state =WRITERAM and counter40 else //默认第一个字符地址为 0x80 // 039 conv_std_logic_vector( counter,7) when state= WRITERAM and counter40 and counter88 else //counter40 and counter73 相当于在第二行中后移 8 个字符显示以区分第一行 839 conv_std_logic_vector( counter,7) when state= WRITERAM and counter88 and counter89 else //counter73 and counter81 17 0000001。 process(clk_int,Reset) begin if(Reset=39。 039。 )then state=IDLE。 counter=0。 flag=39。 039。 div_counter=0。 elsif(clk_int39。 event and clk_int=39。 139。 )then //分频 t=50ms f=20hz case state is when IDLE = //(1) if(flag=39。 039。 )then state=SETFUNCTION。 ////0x3C//8 位。 两行显示 16*2。 flag=39。 139。 counter=0。 //初始地址 div_counter=0。 else if(div_counterDIVSS )then //constant DIVSS : integer :=15。 div_counter=div_counter +1。 state=IDLE。 else div_counter=0。 state =SHIFT。 //0x81//显示位移。 左移 最后一直在这里 移动: t=50ms*15=750ms= end if。 end if。 when SETFUNCTION = //(2)////0x3C//8 位。 两行显示 16*2。 state=SWITCHMODE。 when SWITCHMODE =//(3)//0x0c//开显示。 不显示光标。 光标不闪烁 state=CLEAR。 when CLEAR =//(4) //0x01清屏 state=SETMODE。 12 when SETMODE =//(5)//0x06//显示光标移动设置,当读或写一个字符后地址指针加 1,且光标加 1 state=WRITERAM。 when WRITERAM =//(6) if(counter =40)then state=SETDDRAM。 counter=counter+1。 elsif(counter/=40 and counter81)then state=WRITERAM。 counter=counter+1。 else state=SHIFT。 //开始位移 end if。 when SETDDRAM = //(7) state=WRITERAM。 when SHIFT = //(7) state=IDLE。 when SETCGRAM = state=IDLE。 when RETURNCURSOR = state=WRITERAM。 when READFLAG = state=IDLE。 when READRAM = state=IDLE。 when others = state=IDLE。 end case。 end if。 end process。 end Behavioral。 元件例化的程序: library IEEE。 use。 use。 entity char_ram2 is port( address : in std_logic_vector(6 downto 0)。 data : out std_logic_vector(7 downto 0) )。 end char_ram2。 13 architecture fun of char_ram2 is function char_to_integer ( indata :character) return integer is variable result : integer range 0 to 167F。 begin case indata is when 39。 39。 = result := 32。 when 39。 !39。 = result := 33。 when 39。 39。 = result := 34。 when 39。 39。 = result := 35。 when 39。 $39。 = result := 36。 when 39。 %39。 = result := 37。 when 39。 amp。 39。 = result := 38。 when 39。 39。 39。 = result := 39。 when 39。 (39。 = result := 40。 when 39。 )39。 = result := 41。 when 39。 *39。 = result := 42。 when 39。 +39。fpga课程设计(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。