最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

[求助]一個(gè)LED點(diǎn)陣顯示的函數(shù)問(wèn)題

作者:網(wǎng)絡(luò)同行 欄目:單片機(jī)
我用LED做一個(gè)20*5的點(diǎn)陣顯示板(實(shí)驗(yàn)用),要求實(shí)現(xiàn)其中的一個(gè)功能是逐行顯示圖像。
這是這個(gè)功能函數(shù),請(qǐng)各位大俠幫我看看。
5為場(chǎng)點(diǎn)數(shù),3為行點(diǎn)數(shù)*8為實(shí)際點(diǎn)數(shù)。
void DisplayToptoBottom()//ÉÏΜ½ÏÂ4
{
    CHAR v,n;
    int h=0,x;
    bit a=HIGH;

    for(n=0;n<=5;n++)//一場(chǎng),為一動(dòng)態(tài)處理
    {
        for(x=0;x<200;x++)
        {
            h=0;
            a=HIGH;
        for(v=1;v<=5;v++)///一幀
        {
              
              CLK_H=LOW;
        DATA_H=a;
        CLK_H=HIGH;
              a=LOW;

           for(;h<(3*v);)
        {
                //for(b=0;b<(CONST_H_POINT*(CONST_V_POINT-n));b++) SBUF=0x00;
            if(h<(3*n))SBUF=0x00;
                  else SBUF=CCDataRom[CData_Value_K][h];
                  h++;
            while(!TI);
            TI=0;              
        }
               lock_state();
        //LOCK_H=LOW;
           //_nop_();_nop_();
        //LOCK_H=HIGH;
           }
       }
   }
}

目前出現(xiàn)的問(wèn)題是它能顯示一些圖像比如說(shuō)A,但如果讓它滿屏顯示,會(huì)出現(xiàn)閃爍現(xiàn)像而不是逐行顯示現(xiàn)像。
行用的硬件為8051RC通UART口的串行移位功能與595連接實(shí)現(xiàn)的。
場(chǎng)為模擬串行移位功能通過(guò)595實(shí)現(xiàn)。
請(qǐng)問(wèn)是硬件問(wèn)題還軟件問(wèn)題,如何解決。
如果各位大俠曾經(jīng)遇到過(guò)這樣的問(wèn)題,能否告知,小菜在此不勝感激
2樓: >>參與討論
aibxyz
掃描最好在定時(shí)中斷里做
另外,你是不是還添加了滾屏功能
如果是,滾屏功能不要放在這,這樣結(jié)構(gòu)混亂
還有l(wèi)ock_state()是延時(shí)加鎖定595的程序么
3樓: >>參與討論
網(wǎng)絡(luò)同行
lock_state()加鎖定功能,另外你說(shuō)的中斷,如果屏幕小的話沒(méi)問(wèn)題,但如大的話,我不用定時(shí)中斷都顯太慢,如果用了以后會(huì)產(chǎn)生數(shù)據(jù)未傳完,而另一幀數(shù)據(jù)又到了的結(jié)果。
另外您所提到的結(jié)構(gòu),上面只不過(guò)是一個(gè)功能函數(shù),有可能寫(xiě)得混亂了一點(diǎn)噢,它所實(shí)現(xiàn)的只有一種功能,那就是逐行顯示。(滾屏功能)
20*5只不過(guò)是一個(gè)實(shí)驗(yàn)板,真正的可能是40*40帶RGB三色。也就是40*120,我是保證uart口每秒鐘的數(shù)量為4800*100/8的數(shù)據(jù)量,否則就有可能出現(xiàn)屏閃現(xiàn)像,(這其中還沒(méi)有考慮到,其它一些功能函數(shù)的處理程序)
不過(guò)還是感謝一樓的建議,謝謝。
也同時(shí)希望哪位大俠解決一下小菜現(xiàn)在的這個(gè)問(wèn)題。
4樓: >>參與討論
aibxyz
如果屏幕大,用單片機(jī)是來(lái)不及的,即使你一直在循環(huán)掃描
這個(gè)時(shí)候應(yīng)該用硬件掃描了,比如火車(chē)站的那種車(chē)次顯示屏
想掃描沒(méi)有閃爍,就要保證每次的間隔相等

lock_state()里沒(méi)有延時(shí)的話,那你的延時(shí)在那啊
5樓: >>參與討論
沒(méi)有如果
樓上的都是高手啊
6樓: >>參與討論
網(wǎng)絡(luò)同行
595三態(tài)門(mén)啊,它在傳送數(shù)據(jù)的時(shí)候并口引腳信號(hào)是不會(huì)變的,所以我沒(méi)有使用延時(shí)。

另外掃描速度可用6CLOCK的芯片沒(méi)有問(wèn)題,大概在105Hz左右。

現(xiàn)在最希望的還是上面的那個(gè)關(guān)于全屏?xí)r的問(wèn)題,請(qǐng)各位大俠伸出源助之手吧!。。。。。!


「該帖子被 網(wǎng)絡(luò)同行 在 2005-9-21 16:08:55 編輯過(guò)」
7樓: >>參與討論
網(wǎng)絡(luò)同行
自己先頂一下,期待大俠們的幫助
8樓: >>參與討論
aibxyz
595的輸出鎖定不能算是延時(shí),因?yàn)槟愕某绦蛟诓粩嗟难h(huán)
當(dāng)一次循環(huán)結(jié)束后,你又送數(shù)據(jù)了,這樣來(lái)看延時(shí)也只有那些指令執(zhí)行的時(shí)間
點(diǎn)亮?xí)r間的比例并不高
9樓: >>參與討論
網(wǎng)絡(luò)同行
如果傳送15個(gè)字節(jié)的數(shù)據(jù)說(shuō)時(shí)間不夠長(zhǎng)的話,那么我傳送3個(gè)字節(jié)又怎么樣,我在3個(gè)字節(jié)上是成功的。

另外請(qǐng)樓上的想一想,我的每次鎖定是緊接著前一次的。

同時(shí)我不希望再討論這個(gè)問(wèn)題,實(shí)踐是沒(méi)有問(wèn)題。

我所擔(dān)心的是一提全屏點(diǎn)時(shí)不能出現(xiàn)動(dòng)態(tài)圖像,其它,我想應(yīng)該沒(méi)有什么問(wèn)題了,而且這個(gè)的逆續(xù)掃描已經(jīng)實(shí)現(xiàn)。
也不知道什么原因,兩個(gè)完全想同函數(shù)只是將
if(h<(3*n))SBUF=CCDataRom[CData_Value_K][h];
else SBUF=0x00;

改成if(h<(3*n))SBUF=0x00;
else SBUF=CCDataRom[CData_Value_K][h];

我想應(yīng)該出現(xiàn)在數(shù)據(jù)接口UART或者是595不支持長(zhǎng)時(shí)間置高或者至低,
但是還是有許多不明白,請(qǐng)專家們多多幫忙了。
應(yīng)該如何來(lái)解決這種比較棘手的問(wèn)題。
或者有什么工具可跟蹤uart口的數(shù)呢??????????




10樓: >>參與討論
aibxyz
占空比的意義不是說(shuō)15個(gè)字節(jié)會(huì)比3個(gè)字節(jié)高,因?yàn)樽止?jié)數(shù)不同,你的頻率也變了。

你這種方法讓每次的掃描頻率和顯示延遲時(shí)間存在很大的不確定性,所以你看到某種狀況下好像是好的并不是說(shuō)就真的是正確的。剛工作時(shí)偶也常這樣想,認(rèn)為既然開(kāi)始都看到這個(gè)程序/這塊板子運(yùn)行正常,就以為后來(lái)出的問(wèn)題肯定是后面那里改的不對(duì)了。其實(shí)很多時(shí)候,一開(kāi)始的設(shè)計(jì)已經(jīng)錯(cuò)了,只是沒(méi)有被發(fā)現(xiàn)而已。
而且這種方法,如果有其它中斷發(fā)生,也會(huì)發(fā)生不確定的閃爍。
所以,偶很不贊成你的這種方法。不但因?yàn)橐陨险f(shuō)的不確定性。
還因?yàn)?br>1、對(duì)CPU的占有率太高
2、這樣程序跑飛的概率會(huì)增大
3、對(duì)器件的損耗也會(huì)加大

另外,不要遇到問(wèn)題就去懷疑器件
11樓: >>參與討論
網(wǎng)絡(luò)同行
但是如果按照你所說(shuō)那樣,使用定時(shí)器,那么就會(huì)出現(xiàn)速度跟不上的原因。因?yàn)?1實(shí)在是太慢了。如果不能完全占有CPU就不能夠進(jìn)行正常的顯示工作。
當(dāng)初設(shè)計(jì)的時(shí)候說(shuō)做一個(gè)簡(jiǎn)單的就可以,所以綜合以后就使用了51,現(xiàn)在看來(lái)可能AVR更適合它。
現(xiàn)在所有的一切不可改變,也只能犧牲性能了……

你所說(shuō)的,不應(yīng)該懷疑硬件問(wèn)題,本來(lái)我也是這么想的,但經(jīng)過(guò)無(wú)數(shù)次的實(shí)驗(yàn),磨光了所有信心后,不得不做出這種懷疑。

如你有好辦法不仿說(shuō)出來(lái)讓我們這些小菜共享你的經(jīng)驗(yàn)好嗎?

另外,你上面所說(shuō)中斷,我也考慮進(jìn)去了,如果進(jìn)入中斷那么會(huì)自動(dòng)停止顯示。我想不會(huì)因?yàn)橹袛喽a(chǎn)生的閃爍吧?

有一點(diǎn)我十分感謝你,我猜想,是不是因器件性能降低而導(dǎo)致這種不確定性。
但是又有一個(gè)疑惑,為什么我在傳送一些圖案的時(shí)候,它又會(huì)按照我預(yù)想工作呢?
12樓: >>參與討論
aibxyz
22。1184M情況下51做32X8是沒(méi)問(wèn)題的,這個(gè)偶做過(guò)
如果再大,就要用別的方法了,如硬件掃描,偶記得當(dāng)時(shí)使用了8片6264做顯存,然后掃描電路不通過(guò)單片機(jī)直接從6264里讀取數(shù)據(jù)送到顯示屏。

硬件是可能有問(wèn)題的,偶說(shuō)的是懷疑器件,硬件電路是你們剛設(shè)計(jì)的,但一般的器件已經(jīng)很多年被很多人使用過(guò)了。
器件性能損耗不是說(shuō)你在這短時(shí)間就會(huì)體現(xiàn)的,所以也不用懷疑。

中斷進(jìn)入后會(huì)停頓,但中斷結(jié)束后又退回到原來(lái)繼續(xù)顯示,這就造成了閃爍。

如果發(fā)現(xiàn)當(dāng)初設(shè)計(jì)又問(wèn)題,最好是重新設(shè)計(jì),除非問(wèn)題還不大,而項(xiàng)目時(shí)間又很緊,那先想辦法調(diào)試到一般用戶無(wú)法看出來(lái)的狀態(tài),然后再去重新設(shè)計(jì)以來(lái)補(bǔ)救
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
msp430有無(wú)10pin以內(nèi)的芯片?
有誰(shuí)對(duì)GPRS感興趣的?
找兼職的兄弟們進(jìn)來(lái)看看
請(qǐng)教IAR Embedded Workbench如何查看程序運(yùn)行時(shí)間?
大拇指!讀寫(xiě)U盤(pán)的模塊、USB接口全面解決方案
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號(hào)