導航:首頁 > 操作系統 > 單片機led滾動

單片機led滾動

發布時間:2023-08-31 07:01:37

單片機製作led顯示屏,怎麼讓字滾動,思路是什麼

按照時間段來說,一開始先顯示一個字,延時500mS後,這個字的每個亮的點都向換到旁邊的點亮,然後再延時500mS……依此類推,這個字就向左滾動了,要讓它快點或者慢點滾,改變延時時間即可。

⑵ 單片機C語言如何實現8個LED流水燈來迴流動

1、可以通過左移函數_crol_()和右移函數_cror_()來實現LED等的來迴流動。

2、具體實現方法可以參考如下程序:

2、單片機又稱單片微控制器,它不是完成某一個老笑邏輯功能的晶元,而是把一個計算機系統集成到一個晶元上。相當於一個微型的計算機,和計算機相比,單片機只缺少了I/O設備。概括的講:一塊晶元就成了一台計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。

3、單片機的使用領域已十分廣泛,如智能儀表、實時工控、通訊設備、導航系統、家用電器等。各種產品一旦用上了單片機,就能起到使產品升級換代的功效,常在產品名稱前冠以形容詞——「智能型」,如智能型洗衣機等。

⑶ keil51單片機數碼管滾的顯示

一,LED數碼管顯示的原理
數碼管的發光原理實際是七段LED燈(不包括小數點)或者八段LED燈被點亮的結果。八段依次是 a,b,c,d,e,f,g,dp(表示點)。LED數碼管是常見的顯示器件,在很多場合都可以看到,比如,鬧鍾沖胡的顯示,家電的顯示功能,車站等等。我們看到的數碼管為「8」字形,數碼管又分為共陰極和共陽極兩種。

1.共陰極:就是將八段數碼管的陰極(負極)接地在一起,需要高電平點亮。如下圖所示



2.共陽極:就是將八段數碼管的陽極(正極)接(+5v)在一起,需要低電平點亮。如下圖所示


3.數碼管的具體顯示

①共陰數碼管的點亮

為使數碼管的不同段顯示不同的字元,需要點亮和熄滅不同段的LED燈,才可以實現。對於共陰極數碼管來說,只需要給高電平LED燈就會被點亮,對應的斷碼就會亮起。給低電平相應的斷碼就會熄滅。

以顯示「0」為例 只需要給「dp」和「g」給低電平熄滅就可以了

斷碼的順序為:dp g f e d c b a



「0」斷碼用16進製表示為:3FH

其他字元的斷碼以此類推:如下表所示


②共陽數碼管的點亮

為使數碼管的不同段顯示不同的字元,需要點亮和熄滅不同段的LED燈,才可以實現。對於共陽極數碼管來說,只需要給低電平LED燈就會被點亮,對應的斷碼就會亮起。給高電平相應的斷碼就會熄滅。

以顯示「0」為例 只需要給「dp」和「g」給高電平熄滅就可以了

斷碼的順序為:dp g f e d c b a

1 1 0 0 0 0 0 0



「0」斷碼用16進製表示為:C0H

其他字元的斷碼以此類推:如下表所示


二.動態數碼管的顯示(共陰)
思路: 建立顯存、斷碼、位碼表格,將軟體延時部分設計成子函數的結構,在主函數中利用查表的方法來獲得相應的位碼和段碼,這種思路經常用於顯示變化的字元。
顯示的狀態(左移動態顯示,類似於常見的廣告牌)

3.原理圖(protues模擬圖)


4.設計方法
在多個數碼管的顯示中點亮數碼管需要 位碼和段碼共同作核搏用才能點亮

位碼(低電平有效):表示要點亮的數碼管的位置。

斷碼(上面講過了):就是要點亮哪一段數碼管

舉例說明:


如果要在上面的六個數碼管中點亮第一個數碼管,且讓它顯示「1」,首先確定它的位置是第六個。用八個二進製表示,最低位從0開始,最高位為7 那麼它的位碼為:11111110 (低電平有效)

斷碼為0x06

其他的以此類推

先要數碼管動態顯示要建一個數組。下圖為斷碼


源代碼:
#include#include#define uchar unsigned char#define uint unsigned intsbit an=P2^6; sbit wei=P2^7; uchar code tab[18]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f, 0x6f,0x77,0x7c,0x39,0x5e,0x79,0x00,0x40}; //共陰極數碼管段碼表uchar idata dis_buf[6]={17,17,17,17,17,17}; //顯示緩沖區數據(十進制)void delayms(uint i) //延時1ms函數{ uint j; for(;i>0;i--) for(j=120;j>0;j--) {;}}void main() //主函數{ uchar k,m,n,bitcode,segcode; while(1) { for(n=0;n<17;n++) { dis_buf[0]=dis_buf[1]; //數據移動 dis_buf[1]=dis_buf[2]; dis_buf[2]=dis_buf[3]; dis_buf[3]=dis_buf[4]; dis_buf[4]=dis_buf[5]; dis_buf[5]=n; for(m=0;m<100;m++) //100次掃描,大約600ms { bitcode=0xfe; //起始位碼 for(k=0;k<6;k++) { P0=0xff; //消影 wei=1; wei=0; segcode=dis_buf[k]; //取數據 P0=tab[segcode]; //送段碼散氏攔 an=1; an=0; P0=bitcode; //送位碼 wei=1; wei=0; delayms(1); bitcode=_crol_(bitcode,1); //更新位碼,准備顯示下一位 } } } }}

閱讀全文

與單片機led滾動相關的資料

熱點內容
安卓51如何優化 瀏覽:174
活塞式壓縮機原理圖 瀏覽:842
水環式壓縮機工作原理 瀏覽:713
阿里雲伺服器安裝後怎麼使用 瀏覽:931
去做APP開戶有什麼危險沒得啊 瀏覽:696
8分之1乘58演算法 瀏覽:170
php提交過濾 瀏覽:356
豪斯曼檢驗stata命令 瀏覽:769
雲看地是什麼APP 瀏覽:885
數學指南pdf 瀏覽:858
phpcurldll64位 瀏覽:982
程序員脫產一年半 瀏覽:851
hr招程序員有什麼條件 瀏覽:589
android開源集合 瀏覽:872
華為雲伺服器登錄密碼和賬號 瀏覽:155
中世紀java程序員 瀏覽:788
什麼開發引擎使用python 瀏覽:178
sh腳本運行命令 瀏覽:318
廣聯達加密鎖怎麼看到期 瀏覽:174
cad軌跡命令 瀏覽:981