


付費下載
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
FPGAverilog實現(xiàn)的1602時鐘計數(shù)器熬夜到了1點了,終于寫出了1602的時鐘計數(shù)器代碼。為什么是時鐘計數(shù)器呢?因為我還沒來得及做校準時間,所以只能稱之為時鐘計數(shù)器,不能成為電子鐘。網(wǎng)上很少用人公開這一類代碼,一搜FPGA
1602,都是寫一個靜態(tài)的顯示,在實際應(yīng)用中,是沒有用的,因此這個簡單的例子,給大家拋磚引玉了!上代碼:Qii9.0編譯過,21EDA開發(fā)板測試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分頻計數(shù)器
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,
//設(shè)置8位格式,2行,5*7
8'h38;
state1
=8'h01,
//整體顯示,關(guān)光標,不閃爍
8'h0C
閃爍8'h0e
state2
=8'h02,
//設(shè)定輸入方式,增量不移位
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個數(shù)據(jù)
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
)
//時鐘計數(shù)器
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)
//時鐘計數(shù)
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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 草原之行:自然美景與人文情感同步教學教案
- 老舊市政排水管網(wǎng)修復(fù)工程可行性研究報告(范文)
- 2025年四川省成都市中考物理真題含答案
- 課文知識點歸納與講解
- 失業(yè)保險對經(jīng)濟轉(zhuǎn)型期就業(yè)穩(wěn)定作用分析
- 游戲美術(shù)設(shè)計與制作流程
- 歷史學中的古代文明發(fā)展閱讀題
- 智慧城市數(shù)據(jù)采集與分析服務(wù)合同
- 公園的夜晚事件類寫景作文(11篇)
- 工業(yè)自動化技術(shù)測試卷設(shè)計案例
- 小學語文-“實用性閱讀與交流”學習任務(wù)群設(shè)計與實施例談
- 中國工商銀行委托貸款委托合同
- JGT295-2010 空調(diào)變風量末端裝置
- PLC三層電梯控制系統(tǒng)
- (醫(yī)學課件)《喚醒護理》解讀
- 混凝土凝結(jié)時間隨機
- VDA6.3-2016過程審核對應(yīng)的資料
- 研學與酒店合作協(xié)議書
- 基于TMS320VC5402的電能質(zhì)量監(jiān)測系統(tǒng)設(shè)計
- 《論語》十二章對比閱讀復(fù)習精講精練含答案
- 電子物證專業(yè)考試復(fù)習題庫(含答案)
評論
0/150
提交評論