999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Linux的LED點陣應(yīng)用程序設(shè)計

2011-10-25 10:17:56張紹龍丁建國曹曉霞
唐山師范學(xué)院學(xué)報 2011年2期

張紹龍,趙 寧,丁建國,曹曉霞

(1.遷西縣氣象局,河北 唐山 064300;2.石家莊鐵道大學(xué) 經(jīng)濟(jì)管理學(xué)院,河北 石家莊 050043;3.石家莊鐵道大學(xué) 材料學(xué)院,河北 石家莊 050043;4.唐山市氣象局 科技服務(wù)中心,河北 唐山 063000)

設(shè)備驅(qū)動程序在Linux內(nèi)核中扮演著特殊的角色,它類似于一個獨立的黑盒子,使某個特定的硬件可以響應(yīng)一個良好的內(nèi)部編程接口,同時完成隱藏設(shè)備的工作。凡是操作系統(tǒng)控制的外部設(shè)備,即使是最簡單的硬件電路,也是需要驅(qū)動程序的。設(shè)備驅(qū)動程序在Linux里,除了直接修改系統(tǒng)的核心源代碼,把設(shè)備驅(qū)動程序加進(jìn)核心之外,還可以把設(shè)備驅(qū)動程序作為可加載的模塊,由系統(tǒng)管理員動態(tài)加載,使之成為核心的一部分。編寫驅(qū)動程序的主要工作就是編寫子函數(shù),并填充file_operations各個域。

此應(yīng)用程序是在LED驅(qū)動加載之后使用,否則無法正常運(yùn)行。本設(shè)計首先將LED點陣驅(qū)動起來,通過編寫測試程序,使其能夠按照設(shè)定的意圖顯示。

1 LED點陣數(shù)碼管工作原理

圖1 LED點陣示意圖

LED顯示選用8×8發(fā)光二極管點陣,用于發(fā)布消息、顯示漢字的點陣式LED顯示屏通常由若干塊LED點陣顯示模塊組成,8×8顯示點陣模塊每塊有64個獨立發(fā)光二極管,為了減少引腳且便于封裝,各種LED顯示點陣模塊都采用陣列形式排布,即在行列線的交點處接有顯示LED,因此,LED點陣顯示模塊的顯示驅(qū)動只能采用動態(tài)驅(qū)動方式,每次最多只能點亮一行LED(共陽形式LED顯示點陣模塊)或一列LED(共陰形式LED顯示點陣模塊)。如圖1所示的顯示驅(qū)動原理圖中,點陣為共陰,由總線鎖存芯片74573為點陣顯示模塊提供列驅(qū)動電流,8個行信號則由集電極開路門驅(qū)動器7407控制,行線和列線都掛在總線上,微處理器可以通過總線操作來完成對每一個LED點陣顯示模塊內(nèi)每個LED顯示點的亮、暗控制。

當(dāng)對應(yīng)的某一列置1電平,某一行置0電平,則相應(yīng)的二極管就亮;控制一個燈亮需使某一列的置‘1’,其它行為‘0’,其余的都為‘1’;如第一行,第八列的燈亮,其它的都滅,則DR8,DR7,DR6,DR5,DR4,DR3,DR2,DR1為 11111110,OC8,OC7,OC6,OC5,OC4,OC3,OC2,OC1為10000000可實現(xiàn)相應(yīng)的燈亮。

2 驅(qū)動程序和應(yīng)用程序的設(shè)計方案

在此設(shè)計中,整個LED顯示模塊是作為一個I/O進(jìn)行控制的,共16位輸入數(shù)據(jù),LED的鎖存信號由系統(tǒng)總線的寫信號和地址信號經(jīng)過簡單的組合邏輯而成,在板載的CPLD中完成。控制該顯示模塊的IO地址為0x08000000。

圖2 系統(tǒng)電路連接圖

編寫驅(qū)動程序?qū)崿F(xiàn)在Linux下控制LED點陣顯示,加載驅(qū)動程序后,顯示的效果是64位全亮。實驗步驟為打開終端窗口,利用ifconfig命令設(shè)置網(wǎng)絡(luò)設(shè)備,將宿主PC機(jī)的根目錄掛載到S3C2410-RP目標(biāo)板的mnt目錄下,而后通過insmod加載驅(qū)動程序,通過lsmod命令查看系統(tǒng)已經(jīng)加載好的驅(qū)動程序,最后運(yùn)行測試程序。

可將DR8-DR1作為高8位和OC8-OC1作為低8位連接起來構(gòu)成16位二進(jìn)制數(shù),再將此數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)控制所有燈的滅與亮。例如上述的就可以用111111101000000來表示,對應(yīng)的十進(jìn)制數(shù)65152來控制燈亮。以下函數(shù)可實現(xiàn)點亮64個點:

Int moban[8]={1,2,4,8,16,32,64,128};

For(i=0;i<8;i++)

For(j=0;j<8;j++)

A[i][j]=256*(255-moban[i])+moban[j];

以此可求出控制每一個的相應(yīng)數(shù)字,就可以輸出任何一種圖形。采用一個循環(huán)實現(xiàn)控制控制點的移動;再分別設(shè)計豎柱的右移,行柱的下移,平面的右移,平面的下移,數(shù)字循環(huán)顯示等。每種顯示的方案如下:

(1)豎柱循環(huán)右移

采用moban[8]中的數(shù)字依次顯示可以實現(xiàn)豎柱的右移。

(2)行柱的下移

采用語句

for(i=0;i<8;i++)

Row[i]=256*(255-moban[i])+255;求出每一行的控制數(shù)字后讓它們依次顯示,就是行柱下移。

(3)平面右移

先點亮一列,再點亮兩列,依次增加,直至全亮,可實現(xiàn)平面右移的效果。采用語句

for(i=0;i<8;i++) MianR[i]=2i+1-1;

求出的八個數(shù)實現(xiàn)平面右移的數(shù)字。

(4)平面下移

同上,先點亮一行,再點亮兩行,依次增加,直到八行全亮。采用語句

for(i=0;i<8;i++)

MianD[i]=256*(255-(2i+1-1))+255;

求出八個數(shù)就是實現(xiàn)平面下移的數(shù)字。

(5)0-9的數(shù)字循環(huán)

同樣依照上述算法計算。

3 結(jié)束語

利用驅(qū)動程序?qū)崿F(xiàn)最基本的顯示,而后通過編寫測試程序?qū)崿F(xiàn)各種顯示,如果再進(jìn)一步完善,可以編寫QT設(shè)計簡單測試界面,在顯示屏上可以有更直觀的效果。

主站蜘蛛池模板: 国产乱肥老妇精品视频| 亚洲第一区在线| 免费看久久精品99| 国产系列在线| 波多野结衣无码AV在线| 亚洲91精品视频| 亚洲综合一区国产精品| 国产午夜福利亚洲第一| 三上悠亚一区二区| 在线精品视频成人网| 国产精品一区二区不卡的视频| 久久男人资源站| 精品免费在线视频| 精品一区国产精品| 亚洲最新网址| 国产高潮视频在线观看| 久热中文字幕在线| 国产成人精品一区二区秒拍1o| 亚洲全网成人资源在线观看| 精品国产成人国产在线| 一本二本三本不卡无码| 免费中文字幕一级毛片| 国产一级视频久久| 亚洲女人在线| 亚洲第一视频区| 国产成在线观看免费视频 | 欧洲日本亚洲中文字幕| 久久久久亚洲精品无码网站| 五月婷婷丁香综合| 亚洲第一视频网站| 狠狠色成人综合首页| 久久免费成人| 88av在线播放| 午夜一区二区三区| 午夜限制老子影院888| 秋霞国产在线| 成人va亚洲va欧美天堂| 国产精品99r8在线观看| 国产丝袜精品| 国产精品一区在线麻豆| 亚洲欧洲天堂色AV| 亚洲AⅤ波多系列中文字幕| 97超爽成人免费视频在线播放| 免费无码又爽又刺激高| 成人91在线| 手机成人午夜在线视频| 欧美人在线一区二区三区| 全免费a级毛片免费看不卡| 亚洲精品国产乱码不卡| 精品视频在线观看你懂的一区| 精品福利一区二区免费视频| 四虎永久免费网站| 99在线观看国产| 国产激爽大片在线播放| 久久国产免费观看| 日本免费a视频| 免费AV在线播放观看18禁强制| 91精品啪在线观看国产60岁| 精品国产香蕉在线播出| 久久人人97超碰人人澡爱香蕉| 思思热在线视频精品| 亚洲天堂高清| 欧美a在线看| 怡春院欧美一区二区三区免费| 97超碰精品成人国产| 91精品国产无线乱码在线| jijzzizz老师出水喷水喷出| 色视频国产| 国产福利不卡视频| 手机在线免费不卡一区二| 欧美精品在线视频观看| 国产95在线 | 在线国产毛片手机小视频| 国产自在自线午夜精品视频| 专干老肥熟女视频网站| 国产色爱av资源综合区| 欧美第九页| 久久久波多野结衣av一区二区| 国产无吗一区二区三区在线欢| 99热国产这里只有精品无卡顿" | 麻豆精品在线视频| 熟女成人国产精品视频|