6腳三位一體數碼管

2021-10-08 20:54:15 字數 2619 閱讀 1904

最近遇到乙個比較特別的數碼管,6個引腳控制二十多個燈,和平常推的共陰共陽數碼掛不同,經過分析,需要採用位掃瞄的方式,對每個燈進行等時長的掃瞄。例:第乙個時間片點亮a1,1 輸出高 2輸出低 其他io高阻態(輸入懸空),這樣只有a1會被點亮,其他不亮,依次迴圈點亮所有燈

第一步,先在visual studio 上實現控制邏輯,把所有燈io按順序點亮,即com 和 seg

typedef

unsigned

char u8;

#define first_pin 1

#define last_pin 6

void

display

(void

)/* 點亮一bit之後準備下一bit,陰極先右移一位,如果引腳號等於陽極再移動一位 */

negative++;if

(negative == positive)

if(negative <= last_pin)

/* 掃瞄下一位 */

negative = first_pin;if(

++positive <= last_pin)

/* 所有位掃完,數碼管段位也要清除0 */

positive = first_pin;

negative++

;}

控制台輸出的資訊就和原理圖對上了,處理好io之後就要把顯示的數碼管處理出來

2輸出數碼管段位

void

display

(void

)printf

("\r\n ------------next msg number:%d --------- \r\n"

, sl_seg);}

/* 數碼管5-6之後只有6-5,所以這裡要直接跳過去 */if(

(6== negative)&&(

5== positive)

)/* 點亮一bit之後準備下一bit,陰極先右移一位,如果引腳號等於陽極再移動一位 */

negative++;if

(negative == positive)

if(negative <= last_pin)

/* 掃瞄下一位 */

negative = first_pin;if(

++positive <= last_pin)

/* 所有位掃完,數碼管段位也要清除0 */

positive = first_pin;

sl_bit =0;

sl_seg =0;

negative++

;}

此時控制台輸出的數碼管段位符合預期,仔細檢視會發現最後幾個單獨的led多了一位,因為原理圖中沒有5-3,但是掃瞄已經時沒有排除。

這時候驅動主體已經大功告成了。只需要將其當成共陽數碼管一樣處理buff,加上io控制,led輸出。這裡前提是io操作是連續的,如果使用的io不是連續的,可以自己使用乙個陣列來轉換,放在定時器中斷中掃瞄,頻率500us。移位操作原始碼處,貼原始碼

//共陰碼,1代表數碼管對應bit點亮.0熄滅

const u8 msg_table=

;u8 g_dsiplay_buff[4]

=;u8 g_dsiplay_times =0;

void

display

(void

)else

/* 數碼管段和位掃瞄,數碼管7段 3位,還有幾個單獨的點 */if(

(++sl_bit)

>=7)

}/* 數碼管5-6之後只有6-5,沒有5-3,所以這裡要直接跳過去 */if(

(negative ==6)

&&(positive ==5)

)elseif(

(negative ==2)

&&(positive ==5)

)/* 點亮一bit之後準備下一bit,陰極先右移一位,如果引腳號等於陽極再移動一位 */

negative++;if

(negative == positive)

if(negative <= last_pin)

/* 掃瞄下一位 */

negative = first_pin;if(

(++positive)

<= last_pin)

/* 所有位掃完,數碼管段位也要清除0 */

positive = first_pin;

sl_bit =0;

sl_seg =0;

negative++;}

void

display_buff_process

(void

)}

微信營銷三位一體

一種奇特的方法 移動網際網路的最大商機,人人都必須知道。運用網際網路思維 本地 線上 除此之外,您將了解近百家成功運 營 平台的 秘 密 法 則,lai三位一體運營法則。總結幾百家成功運營平台總結的運營模式,lai三位一體運營法則.微 營 銷 時 代,獻給所有對現有收入不滿的人,獻給苦苦尋找 賺 錢...

架構 專案 產品三位一體

寫 寫的久了考慮問題就不單純從 本身去考慮了,今天梳理一些語言基礎時突然想到這個話題,展開寫點自己的經驗和想法。對公司來說真正關心的是提供的產品和服務是否有足夠的競爭力,以給公司帶來可觀的收益,這個時候產品層面的重要性就體現出來了。一般來說,公司提供的產品都有相應的產品規劃,聚焦在哪些產品上怎麼體現...

業務架構 資訊架構 技術架構三位一體

客戶天天打 要修改產品功能,簡單的乙個需求可能要做乙個月。產品越改越笨重,為了趕工期bug越來越多。頭疼!產品從初級版到現在已經四個年頭,相關的程式設計師來去換了三批,在補丁上打補丁是常有的事,很多功能只是開了個頭,換個專案經理就被遺忘。我們總是害怕客戶在這個產品上提出新的需求,只要客戶還用得過去,...