昆明網(wǎng)站制作推薦軟文營(yíng)銷(xiāo)代理
文章目錄
- 設(shè)計(jì)目標(biāo)
- 硬件設(shè)計(jì)
- 數(shù)碼管
- 串口
- 軟件設(shè)計(jì)
- 頂層模塊
- 串口接收模塊
- 數(shù)據(jù)處理模塊
- 時(shí)鐘模塊
- 串口發(fā)送模塊
- 總結(jié)
設(shè)計(jì)目標(biāo)
環(huán)境:ACX720開(kāi)發(fā)板
實(shí)現(xiàn)功能:
- 數(shù)碼管能夠顯示時(shí)分秒
- 能夠接收串口數(shù)據(jù)修改時(shí)間
- 能夠?qū)?dāng)前時(shí)間以1s一次速率發(fā)送到電腦
硬件設(shè)計(jì)
數(shù)碼管
串轉(zhuǎn)并芯片:74hc595:
兩片級(jí)聯(lián),一片控制數(shù)碼管的位選,一片控制段選。
使用的是共陽(yáng)極數(shù)碼管
兩片級(jí)聯(lián)一次發(fā)送16位數(shù)據(jù),也就是2個(gè)字節(jié)。
芯片輸入:
SER:DIO:數(shù)據(jù)輸入引腳
RCK:RCLK:鎖存引腳,上升沿對(duì)輸入數(shù)據(jù)鎖存輸出
SCK:SCLK:移位引腳,將SER引腳數(shù)據(jù)輸入,下降沿放數(shù)據(jù),上升取數(shù)據(jù)并移位。
芯片在不同工作溫度和工作電壓下 74HC595 的芯片工作頻率值不相同,本設(shè)計(jì)供電電壓采用3.3V,并結(jié)合時(shí)鐘頻率,設(shè)置其工作頻率為12.5MHz。
常見(jiàn)的顯示設(shè)備有:
數(shù)碼管:7段管、米字型、點(diǎn)陣
液晶屏:字符型(LCD1602、12864)、真彩液晶屏(TFT-LCD)
OLED
VGA、HDMI、DP顯示器
串口
往期博文介紹:
https://blog.csdn.net/qq_30255657/article/details/132563322?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22132563322%22%2C%22source%22%3A%22qq_30255657%22%7D
軟件設(shè)計(jì)
頂層模塊
串口接收—數(shù)據(jù)處理—時(shí)間設(shè)置、控制數(shù)碼管顯示時(shí)間、輸出時(shí)間值
1s驅(qū)動(dòng)—分析時(shí)間值并處理發(fā)送
uart_rx_ctrl_lcd(Clk,Reset_n,uart_rx, Ds,Sclk,Rclk,uart_tx);
串口接收模塊
uart_rx uart_rx_in(.Clk(Clk),.Reset_n(Reset_n),.Baund_set(4),.uart_Rx(uart_rx),.Data(rx_data),.Rx_Done(rx_done));
數(shù)據(jù)處理模塊
uart_cmd uart_cmd(.Clk(Clk),.Reset_n(Reset_n),.rx_data(rx_data),.rx_done(rx_done),.ctrl(ctrl),.time_set(time_set));
時(shí)鐘模塊
shiZhong shiZhong1(.Clk(Clk),.Reset_n(Reset_n),.Set_en(ctrl),.Set_time(time_set),.Ds(Ds),.Sclk(Sclk),.Rclk(Rclk),.Out_time(Out_time));
串口發(fā)送模塊
UART UART(.Clk(Clk),.Reset_n(Reset_n),.Baud_set(3'd1),.Data(data),.Send_en(send_con),.Tx_Done(Tx_Done),.Tx_State(),.uart_tx(uart_tx));always@(posedge Clk or negedge Reset_n)if(!Reset_n)start <= 0;else if(tcont == 1)beginstart <= 1;state <= 0;endelse if(tcont == 500000)start <= 0;else if(Tx_Done)state <= state + 1;always@(posedge Clk or negedge Reset_n)if(!Reset_n)data <= 0;else if(start)begincase(state)0:begin data = 8'h30 + Out_time[23:20]; send_con <= 1;end1:data = 8'h30 + Out_time[19:16];2:data = 8'h3a;3:data = 8'h30 + Out_time[15:12];4:data = 8'h30 + Out_time[11:8];5:data = 8'h3a;6:data = 8'h30 + Out_time[7:4];7:data = 8'h30 + Out_time[3:0];8:data = 8'h0d;9:data = 8'h0a;default:begin send_con <= 0; endendcaseend
總結(jié)
規(guī)劃好每一根信號(hào)線的時(shí)序再寫(xiě),每個(gè)部分一個(gè)信號(hào),不能多個(gè)部分驅(qū)動(dòng)一個(gè)信號(hào)。