找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機(jī)數(shù)碼管筆劃跑馬燈程序怎樣實(shí)現(xiàn)?

查看數(shù): 2928 | 評論數(shù): 17 | 收藏 1
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時(shí)間: 2022-9-23 23:28

正文摘要:

本人初學(xué)51單片機(jī),最近在搞一個(gè)步進(jìn)電機(jī)的小制作,主要功能就是用51控制A4988模塊,驅(qū)動(dòng)步進(jìn)電機(jī)實(shí)現(xiàn)正反轉(zhuǎn),加減速,存儲當(dāng)前速度等功能。拜論壇各位前輩所賜,下了些代碼拼到一塊,磕磕絆絆倒也實(shí)現(xiàn)了主要功能。 ...

回復(fù)

ID:384109 發(fā)表于 2022-9-26 14:40
最簡單的是根據(jù)要顯示的內(nèi)容直接對顯示變量進(jìn)行位操作,就不用考慮數(shù)組了
ID:1044091 發(fā)表于 2022-9-26 14:17
yzwzfyz 發(fā)表于 2022-9-26 11:15
很簡單的事:
臺面上無論有多少個(gè)LED燈,只要你能將特定的一些LED燈,輪流亮、滅就達(dá)成了跑馬了。
舉一反 ...

謝大師指點(diǎn),B站上有高手做了一個(gè)數(shù)碼管跑馬燈視頻,正反流水、斜跑、追光等等很多復(fù)雜效果,很是酷炫。我剛學(xué)51,C語言基礎(chǔ)不扎實(shí),屬于現(xiàn)學(xué)現(xiàn)賣的程度,現(xiàn)在是一看數(shù)組就頭暈的狀態(tài)。

https://www.bilibili.com/video/BV1fJ411b7cU/?spm_id_from=333.337.search-card.all.click

ID:123289 發(fā)表于 2022-9-26 11:15
很簡單的事:
臺面上無論有多少個(gè)LED燈,只要你能將特定的一些LED燈,輪流亮、滅就達(dá)成了跑馬了。
舉一反三:滾字、閃動(dòng)、閃光標(biāo)、斜走字都一樣。
下面教你一個(gè)通用的方式:
本例你有4個(gè)數(shù)碼管,計(jì)8*4個(gè)LED燈。
1、用一個(gè)數(shù)組來表達(dá)每一個(gè)LED的明暗,本例:一個(gè)數(shù)組=4個(gè)字節(jié),計(jì)32位,每位的0/1對應(yīng)一個(gè)LED燈的暗/明。
2、將每一種顯示狀態(tài)用一個(gè)這個(gè)數(shù)組用表達(dá):例如:全亮={FFH,FFH,FFH,FFH};全暗={00H,00H,00H,00H},如此你有100個(gè)狀態(tài),就建立100數(shù)組。
本例轉(zhuǎn)一圈,共狀態(tài),建8個(gè)數(shù)組就行了。
3、寫個(gè)程序,每間隔一段時(shí)間依序取出一組數(shù)據(jù),送至IO口去顯示LED……,循環(huán)重復(fù)。
以上思路簡單、清晰、還易實(shí)現(xiàn)。顯示機(jī)動(dòng)靈活,修改數(shù)組就玩轉(zhuǎn)了各種顯示方式了。
如果是點(diǎn)陣LED,做個(gè)紅心,弄個(gè)燈塔,擺個(gè)方陣,上移、下跳、斜跑……隨意,全在數(shù)組中編輯(EXCEL表中排排,導(dǎo)入到數(shù)組中),程序都不用改動(dòng)。
ID:1044091 發(fā)表于 2022-9-25 13:05
wulin 發(fā)表于 2022-9-25 06:37
給你補(bǔ)充正反轉(zhuǎn)顯示,糾正s的數(shù)據(jù)類型。

多謝大師指導(dǎo),感覺您代碼里有好多技巧,C語言控制單片機(jī)已經(jīng)用的得心應(yīng)手了,我還得繼續(xù)學(xué)習(xí)提高。
ID:213173 發(fā)表于 2022-9-25 06:37
ningsy 發(fā)表于 2022-9-24 23:44
感謝各位前輩指導(dǎo),尤其感謝8樓wulin大師,您這個(gè)代碼容我好好消化下,腦子已經(jīng)繞暈了

給你補(bǔ)充正反轉(zhuǎn)顯示,糾正s的數(shù)據(jù)類型。
示例程序 仿真.rar (126.79 KB, 下載次數(shù): 14)

ID:332444 發(fā)表于 2022-9-25 03:58
15,14,13,11,7,57,49,41,25,56
ID:1044091 發(fā)表于 2022-9-24 23:44
感謝各位前輩指導(dǎo),尤其感謝8樓wulin大師,您這個(gè)代碼容我好好消化下,腦子已經(jīng)繞暈了
ID:1034262 發(fā)表于 2022-9-24 22:30
像顯示數(shù)字那樣,搞個(gè)字形,按數(shù)字那樣顯示。
ID:137736 發(fā)表于 2022-9-24 21:26
看原理圖,找到每段對應(yīng)代碼,做個(gè)數(shù)組,按順序讀出數(shù)字中數(shù)字輸出到端口。
ID:1007932 發(fā)表于 2022-9-24 21:15
你的想法沒錯(cuò),就是萬能的狀態(tài)機(jī)嘛,一個(gè)個(gè)寫倒是沒必要,又不是Verilog,完全可以用數(shù)組存儲狀態(tài),然后循環(huán)調(diào)用
你的P0不復(fù)位確定不會(huì)影響下一個(gè)狀態(tài)?
ID:213173 發(fā)表于 2022-9-24 21:05

示例程序 仿真.rar (126.08 KB, 下載次數(shù): 14)



ID:384109 發(fā)表于 2022-9-24 20:51
把現(xiàn)在代碼里的顯示數(shù)據(jù)取個(gè)反
ID:1044091 發(fā)表于 2022-9-24 20:26
遇到一個(gè)新問題:把代碼帶入主程序,也許是delay時(shí)間太長,主程序都不干活了,電機(jī)不轉(zhuǎn)了調(diào)短delay時(shí)間,電機(jī)轉(zhuǎn)了,顯示效果又太差了
ID:16255 發(fā)表于 2022-9-24 18:43
先顯示 [ ] ,再逐段熄滅。
ID:94031 發(fā)表于 2022-9-24 18:20
先想辦法讓指定的段亮起來,然后按順序執(zhí)行,就實(shí)現(xiàn)了數(shù)碼管筆劃跑馬燈。
ID:824490 發(fā)表于 2022-9-24 17:10
不規(guī)則的、萬能的碼表!

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表