


付費下載
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
FPGAverilog實現的1602時鐘計數器熬夜到了1點了,終于寫出了1602的時鐘計數器代碼。為什么是時鐘計數器呢?因為我還沒來得及做校準時間,所以只能稱之為時鐘計數器,不能成為電子鐘。網上很少用人公開這一類代碼,一搜FPGA
1602,都是寫一個靜態的顯示,在實際應用中,是沒有用的,因此這個簡單的例子,給大家拋磚引玉了!上代碼:Qii9.0編譯過,21EDA開發板測試OKmoduleLCD
(
rst,
key1,
clk,
rw,
rs,
en,
data
);
inputclk,rst,key1;
outputrs,en,rw;
output[7:0]data;
regrs,en_sel;
reg[7:0]data;
reg[7:0]shi,fen,miao;
reg[31:0]count,count1;
//LCDCLK分頻計數器
reglcd_clk;
reg[7:0]one_1,one_2,one_3,one_4,one_5,one_6,one_7,one_8,one_9,one_10,one_11,one_12,one_13,one_14,one_15,one_16;
reg[7:0]two_1,two_2,two_3,two_4,two_5,two_6,two_7,two_8,two_9,two_10,two_11,two_12,two_13,two_14,two_15,two_16;
reg[7:0]next,xianshi,two;
parameter
state0
=8'h00,
//設置8位格式,2行,5*7
8'h38;
state1
=8'h01,
//整體顯示,關光標,不閃爍
8'h0C
閃爍8'h0e
state2
=8'h02,
//設定輸入方式,增量不移位
8'h06
state3
=8'h03,
//清除顯示
8'h01
state4
=8'h04,
//顯示第一行的指令
80H
state5
=8'h05,
//顯示第二行的指令
80H+40H
scan
=8'h06,
nul
=8'h07;
parameter
data0
=8'h10,
//2行,共32個數據
data1
=8'h11,
data2
=8'h12,
data3
=8'h13,
data4
=8'h14,
data5
=8'h15,
data6
=8'h16,
data7
=8'h17,
data8
=8'h18,
data9
=8'h19,
data10
=8'h20,
data11
=8'h21,
data12
=8'h22,
data13
=8'h23,
data14
=8'h24,
data15
=8'h25,
data16
=8'h26,
data17
=8'h27,
data18
=8'h28,
data19
=8'h29,
data20
=8'h30,
data21
=8'h31,
data22
=8'h32,
data23
=8'h33,
data24
=8'h34,
data25
=8'h35,
data26
=8'h36,
data27
=8'h37,
data28
=8'h38,
data29
=8'h39,
data30
=8'h40,
data31
=8'h41;
initial
//初始值
begin
//第一行顯示
TEL/p>
one_1<="T";one_2<="E";one_3<="L";one_4<=":";one_5<="1";one_6<="3";one_7<="8";one_8<="6";
one_9<="8";one_10<="1";one_11<="6";one_12<="0";one_13<="5";one_14<="6";one_15<="9";one_16<="";
//第二行顯示Clock:00-00-00
two_1<="C";two_2<="l";two_3<="o";two_4<="c";two_5<="k";two_6<=":";two_7<="";two_8<="";
two_9<="-";two_10<="";two_11<="";two_12<="-";two_13<="";two_14<="";two_15<="";two_16<="";
shi<=0;fen<=0;miao<=0;
end
always@(posedgeclk)
//獲得LCD時鐘
begin
count<=count+1;
if(count==250000)
begin
count<=0;
lcd_clk<=~lcd_clk;
end
end
always@(posedgeclkornegedgerst
)
//時鐘計數器
begin
if(!rst)
begin
shi<=0;fen<=0;miao<=0;
count1<=0;
end
else
begin
en_sel<=1;
two_7<=
(shi/10)+8'b00110000;
two_8<=
(shi%10)+8'b00110000;
two_10<=(fen/10)+8'b00110000;
two_11<=(fen%10)+8'b00110000;
two_13<=(miao/10)+8'b00110000;
two_14<=(miao%10)+8'b00110000;
count1<=count1+1'b1;
if(count1==49999999)
//時鐘計數
begin
count1<=0;
miao<=miao+1;
if(miao==59)
begin
miao<=0;
fen<=fen+1;
if(fen==59)
begin
fen<=0;
shi<=shi+1;
if(shi==23)
begin
shi<=0;
end
end
end
end
end
end
always@(posedgelcd_clk
)
begin
case(next)
state0:
beginrs<=0;data<=8'h38;next<=state1;end
//配置液晶
state1:
beginrs<=0;data<=8'h0e;next<=state2;end
state2:
beginrs<=0;data<=8'h06;next<=state3;end
state3:
beginrs<=0;data<=8'h01;next<=state4;end
state4:
beginrs<=0;data<=8'h80;next<=data0;end
//顯示第一行
data0:
beginrs<=1;data<=one_1;next<=data1;end
data1:
beginrs<=1;data<=one_2;next<=data2;end
data2:
beginrs<=1;data<=one_3;next<=data3;end
data3:
beginrs<=1;data<=one_4;next<=data4;end
data4:
beginrs<=1;data<=one_5;next<=data5;end
data5:
beginrs<=1;data<=one_6;next<=data6;end
data6:
beginrs<=1;data<=one_7;next<=data7;end
data7:
beginrs<=1;data<=one_8;next<=data8;end
data8:
beginrs<=1;data<=one_9;next<=data9;end
data9:
beginrs<=1;data<=one_10;next<=data10;end
data10:
beginrs<=1;data<=one_11;next<=data11;end
data11:
beginrs<=1;data<=one_12;next<=data12;end
data12:
beginrs<=1;data<=one_13;next<=data13;end
data13:
beginrs<=1;data<=one_14;next<=data14;end
data14:
beginrs<=1;data<=one_15;next<=data15;end
data15:
beginrs<=1;data<=one_16;next<=state5;end
state5:
beginrs<=0;data<=8'hC0;next<=data16;end//顯示第二行
data16:
beginrs<=1;data<=two_1;next<=data17;end
data17:
beginrs<=1;data<=two_2;next<=data18;end
data18:
beginrs<=1;data<=two_3;next<=data19;end
data19:
beginrs<=1;data<=two_4;next<=data20;end
data20:
beginrs<=1;data<=two_5;next<=data21;end
data21:
beginrs<=1;data<=two_6;next<=data22;end
data22:
beginrs<=1;data<=two_7;next<=data23;end
data23:
beginrs<=1;data<=two_8;next<=data24;end
data24:
beginrs<=1;data<=two_9;next<=data25;end
data25:
beginrs<=1;data<=two_10;next<=data26;end
data26:
beginrs<=1;data<=two_11;next<=data27;end
data27:
beginrs<=1;data<=two_12;next<=data28;end
data28:
beginrs<=1;data<=two_13;next<=data29;end
data29:
beginrs<=1;data<=two_14;next<=data30;end
data30:
be
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業廢水處理與環保技術創新
- 工業旅游的興起與發展機遇
- 工業安全管理與職業病防治
- 工業建筑改造與再生策略
- 工業自動化中實時機器視覺系統的研究
- 工業設備中的熱傳導與熱設計
- 工業生產中的火災風險評估
- 工業自動化與智能制造的結合點
- 工業設計中的材料與工藝選擇研究
- 工業自動化與生產監控系統
- 區域國別研究的跨學科性
- 園藝論文開題報告范文
- 兒科學知到智慧樹章節測試課后答案2024年秋山東第一醫科大學
- 林業工程開工申請
- 寵物醫院服務行業可行性分析報告
- 2025年甘肅省中考語文作文預測題及范文
- 高等教育信息化建設方案
- GB/T 44757-2024鈦及鈦合金陽極氧化膜
- 《BOM培訓資料》課件
- 2024年廣東省公務員錄用考試《行測》真題及答案解析
- 生態養殖羊圈施工合同
評論
0/150
提交評論