日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一个基于verilog的FPGA 的LCD 1602 显示程序

發(fā)布時間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个基于verilog的FPGA 的LCD 1602 显示程序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

FPGA LCD1602 顯示程序

    • 代碼片

#這段代碼 是我參考網(wǎng)上的程序修改的代碼,代碼最終實現(xiàn)在LCD1602 上顯示 “小姐姐”字樣, 由于LCD的點陣只能實現(xiàn)5*8,“姐”字我用了兩個字節(jié)顯示,以下是代碼。 代碼我自己親自測試過的。

代碼片

去博客設置頁面,選擇一款你喜歡的代碼片高亮樣式,下面展示同樣高亮的 代碼片.

// An highlighted block module lcd_1602(clk_50M,rst,en,RS,RW,data);input clk_50M; input rst; output en; output RS; output RW; output [7:0] data; wire clk_500; clk_50M_500 u_clk50M_500(.clk_50M(clk_50M),.rst(rst),.clk_500(clk_500));lcd_show u_lcd_show(.clk_LCD(clk_500),.rst(rst),.en(en),.RS(RS),.RW(RW),.data(data));endmodule module clk_50M_500(clk_50M,rst,clk_500); input clk_50M; input rst; output clk_500;reg [8:0] cnt_1; reg [7:0] cnt_2; reg clk_500hz;always@(posedge clk_50M) begin if(!rst)begin clk_500hz<=0;cnt_1<=0;cnt_2<=0;endelse if(cnt_2==8'd199)begin cnt_2<=0;if(cnt_1==9'd499)begin cnt_1 <=0;clk_500hz<=~clk_500hz;endelsecnt_1<=cnt_1+1;endelse cnt_2 <=cnt_2+1; endassign clk_500=clk_500hz; endmodulemodule lcd_show(clk_LCD,rst,en,RS,RW,data); input clk_LCD; input rst; output en,RS,RW; output reg [7:0] data; reg RS,en_sel; reg [4:0] disp_count; reg [4:0] write_count; reg [2:0] num; reg [3:0] state;parameter clear_lcd =4'b1000,set_disp_mode =4'b1001,disp_on =4'b1010,shift_down =4'b1011,write_cgram =4'b1100,write_data_first =4'b1101,write_data_second =4'b1110,idel =4'b1111;//此處參數(shù)無特別意義,似乎只是狀態(tài)機標號assign RW=1'b0; assign en = en_sel?clk_LCD:1'b0;reg [7:0] data_character [7:0]; reg [7:0] data_character2 [7:0]; reg [7:0] data_character3 [7:0]; reg [7:0] data_character4 [7:0];always @(posedge clk_LCD)begin data_character[0] <= 8'h00;data_character[1] <= 8'h04;data_character[2] <= 8'h04;data_character[3] <= 8'h0E;data_character[4] <= 8'h15;data_character[5] <= 8'h04;data_character[6] <= 8'h0C;data_character[7] <= 8'h04;data_character2[0] <= 8'h08;data_character2[1] <= 8'h0A;data_character2[2] <= 8'h1F;data_character2[3] <= 8'h0A;data_character2[4] <= 8'h0E;data_character2[5] <= 8'h04;data_character2[6] <= 8'h0A;data_character2[7] <= 8'h11;data_character3[0] <= 8'h00;data_character3[1] <= 8'h0E;data_character3[2] <= 8'h0A;data_character3[3] <= 8'h0E;data_character3[4] <= 8'h0A;data_character3[5] <= 8'h0E;data_character3[6] <= 8'h0A;data_character3[7] <= 8'h1F;data_character4[0] <= 8'h1F;data_character4[1] <= 8'h01;data_character4[2] <= 8'h01;data_character4[3] <= 8'h01;data_character4[4] <= 8'h1D;data_character4[5] <= 8'h01;data_character4[6] <= 8'h01;data_character4[7] <= 8'h1F;endreg [7:0] data_first_line [15:0]; reg [7:0] data_second_line [15:0]; always @(posedge clk_LCD)begin data_first_line[0] <= 8'h01;//Tdata_first_line[1] <= 8'h6F;//odata_first_line[2] <= 8'h20;// data_first_line[3] <= 8'h6d;//mdata_first_line[4] <= 8'h79;//ydata_first_line[5] <= 8'h20;//data_first_line[6] <= 8'h66;//fdata_first_line[7] <= 8'h72;//rdata_first_line[8] <= 8'h69;//idata_first_line[9] <= 8'h65;//edata_first_line[10] <= 8'h6e;//ndata_first_line[11] <= 8'h64;//ddata_first_line[12] <= 8'h8a;//sdata_first_line[13] <= 8'h8a;//不顯示data_second_line[1] <= 8'h00;//字0data_second_line[2] <= 8'h01;//字2data_second_line[3] <= 8'h02;//字3data_second_line[4] <= 8'h01;//字2data_second_line[5] <= 8'h02;//字3data_second_line[6] <= 8'h03;//字4data_second_line[7] <= 8'h03;//pdata_second_line[8] <= 8'h03;//pdata_second_line[9] <= 8'h8a;//ydata_second_line[10] <= 8'h64;//ydata_second_line[11] <= 8'h64;//yendalways @(posedge clk_LCD or negedge rst)begin if(!rst)begin state <= clear_lcd;RS <= 1'b0;data <= 8'b0;en_sel <= 1'b1;disp_count <= 5'b0;num <= 3'b0;write_count <= 5'b0;endelse case(state)clear_lcd:begin state <=set_disp_mode;data <=8'h01;//清屏代碼endset_disp_mode:begin state <=disp_on;data <=8'h38;enddisp_on:begin state <=shift_down;data <=8'h0c;//顯示開關控制指令endshift_down:begin state <=write_cgram;data <=8'h06;endwrite_cgram:begin case (num)0:begin data <= 8'h40; //num <= num +1;state <= write_cgram;end1:begin if(write_count == 8)begin data <= 8'h48; //RS <= 1'b0;num <= num +1;state <= write_cgram;write_count<=0;endelse begin data <=data_character[write_count];RS <=1'b1;write_count <= write_count+1'b1;state <= write_cgram;endend2:begin if(write_count==8)begin data<=8'h50; //RS <=1'b0;num <= num+1;state <= write_cgram;write_count<=0;endelse begindata<=data_character2[write_count];RS <=1'b1;write_count <=write_count+1'b1;state <=write_cgram;endend3:begin if (write_count==8)begin data<=8'h58; //RS<=1'b0;num <= num+1;state<=write_cgram;write_count<=0;endelse begin data<=data_character3[write_count];RS<=1'b1;write_count <=write_count+1'b1;state <=write_cgram;endend4:begin if (write_count==8)begin data<=8'h80; //RS<=1'b0;state<= write_data_first;write_count<=0;endelse begin data<=data_character4[write_count];RS<=1'b1;write_count <=write_count+1'b1;state <=write_cgram;endendendcaseendwrite_data_first: begin if(disp_count ==14)begin data <= 8'hc2;RS <= 1'b0;disp_count <= 4'b0;state <= write_data_second;endelse begin data <= data_first_line[disp_count];RS <= 1'b1;disp_count <=disp_count+1'b1;state <= write_data_first;endendwrite_data_second:begin if(disp_count==11)begin en_sel <= 1'b0;RS <= 1'b0;disp_count<= 4'b0;state <= idel;endelse begin data <= data_second_line[disp_count+1];RS <= 1'b1;disp_count <= disp_count+1'b1;state <= write_data_second;endendidel:begin state <= idel;enddefault: state <= clear_lcd;endcase end endmodule

總結

以上是生活随笔為你收集整理的一个基于verilog的FPGA 的LCD 1602 显示程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 色婷婷91 | 亚洲欧美视频 | 欧美成人一区二区三区 | 在线观看www视频 | 欧美另类极品videosbest最新版本 | 久久中文娱乐网 | 三级黄色在线视频 | 永久免费视频网站直接看 | 日韩淫视频 | 亚洲系列中文字幕 | 99精品欧美一区二区蜜桃免费 | 亚洲私人影院 | 日本伊人网 | 开心色站 | 久草影音 | 动漫av一区二区 | 日本打屁股网站 | av狠狠 | 乱老熟女一区二区三区 | 被两个男人吃奶三p爽文 | 在线观看欧美视频 | 韩国三级在线视频 | 大尺度做爰无遮挡露器官 | 99久久精 | 亚洲 欧美 精品 | 四虎综合 | 我把护士日出水了视频90分钟 | 九色网址 | 欧美一级成人 | 日韩黄大片| 国产精品黄色在线观看 | 国产欧美精品一区二区 | 日韩一道本 | 精品人妻一区二区三区四区 | 欧美性欧美zzzzzzzzz | 丰满大肥婆肥奶大屁股 | 欧美性生活网 | 久久久蜜桃一区二区人 | 人妻在客厅被c的呻吟 | 国模精品一区二区三区 | 黑人性高潮| 欧美黑人三级 | 好好热视频 | 亚洲人精品 | a√在线观看 | 久久五月网 | 久久久久成人精品免费播放动漫 | 久久精品久久久精品美女 | 久久人人爽人人人人片 | 懂色aⅴ一区二区三区免费 国产精品99在线观看 | 国内偷拍精品视频 | 中国美女毛片 | 91爱爱视频 | 欧美一二三 | 最新日韩在线视频 | 手机看片一区 | 性――交――性――乱a | 五月花成人网 | av美女网站 | 新天堂网 | 免费色片网站 | 美女一级黄 | 中文字幕天堂 | 久久aaaa片一区二区 | 日韩专区一区 | 国产精品国产精品国产专区 | 无码人妻久久一区二区三区蜜桃 | 香蕉国产精品 | 日日夜夜中文字幕 | 亚洲第一天堂av | 性生交生活片1 | 日本免费三区 | 在线成人小视频 | 麻豆传媒在线观看 | 成人激情小说网站 | 污污视频在线观看网站 | 爱情岛亚洲首页论坛小巨 | mm131美女大尺度私密照尤果 | 国产色婷婷一区二区三区竹菊影视 | 中文字幕一区二区人妻电影丶 | 91一级视频| 法国经典free性复古xxxx | 日韩伦人妻无码 | 91精品国产麻豆 | 床上激情网站 | 男男一级淫片免费播放 | 98视频在线| 中文字幕亚洲日本 | 毛片在哪看 | 中文无码一区二区三区在线观看 | 午夜视频精品 | 婷婷成人在线 | 亚洲区久久 | 久久99热人妻偷产国产 | 亚洲欧美强伦一区二区 | 免费黄色小说视频 | 伊人加勒比 | 精品一区二区久久久久久按摩 | 四虎影视免费看 |