久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于51單片機和可編程邏輯器件實現LED顯示屏

基于51單片機和可編程邏輯器件實現LED顯示屏

作者: 時間:2011-11-12 來源:網絡 收藏

reg[13:0] addrout,addr;//addr地址計數器
reg[3:0] state;// 狀態寄存器
reg [2:0] shcnt; //移位脈沖讀數器
reg CE,OE,sdr,sdb,sck,le,oe1,cs;
reg [8:0] byte;
parameter s0=1'd0,s1=1'd1,s2=1'd2,s3=1'd3, s4=1'd4, s5=1'd5; //狀態常量
2.2 訪問雙口RAM時序的產生
IDT7007是具有32KB的雙口RAM電路,與ATF1508AS的連接電路如圖2所示,其中: 為片選信號, 為讀寫控制信號, 為輸出使能信號,A0R-A13R為右端口地址總線,D0R-D7R為右端口數據總線,其右端口讀寫時序如圖4所示。我們采用有限狀態機實現,其基本工作原理是:S0狀態進行初始化,S1狀態時ATF1508AS首先輸出地址信號addrout,然后置 相有效,S2狀態讀取雙口RAM的數據,并存儲到內容寄存器datain中,從而完成雙口RAM的讀數據過程。下面給出ATF1508AS讀取雙口RAM數據的主要代碼:
always @ (posedge clk)
begin //每個時鐘周期,狀態變化一次
case(state)
s0: begin //初始化狀態
CE=1'b0; //IDT7007片選
OE=1'b1; //IDT7007讀選通
le=1'b0;
oe1 = 1'b0;
cs = 1'b0;
addr= 14'b0;
SEMR=1'b1; //IDT7007 置1有
RWC = 1'b1; //寫控制 1
hcnt=4'b0000;
counter=4'b0000;
state=s1;
end
s1: begin //輸出RAM地址
CE=1'b0;
addrout=addr;//輸出地址
OE=1'b0;
SEMR=1'b1;
RWC = 1'b1;
shcnt = 3'b000;
state=s2;
end
s2: begin //讀雙口RAM數據
oe1=1'b0;
data1 = datain;
state=s3;
end
……(顯示掃描及LED驅動代碼部分)
endcase
end


基于<a class=51單片機實現" src="http://editerupload.eepw.com.cn/fetch/20140120/219667_2_0.jpg" onload="javascript:if(this.width>500)this.style.width=500;" border=0>

基于<a class=51單片機實現" src="http://editerupload.eepw.com.cn/fetch/20140120/219667_2_1.jpg" onload="javascript:if(this.width>500)this.style.width=500;" border=0>



評論


相關推薦

技術專區

關閉