找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8996|回復: 3
打印 上一主題 下一主題
收起左側

這個單片機數(shù)碼管顯示程序是什么意思?顯示緩沖區(qū)又是什么意思

[復制鏈接]
跳轉到指定樓層
樓主
ID:421426 發(fā)表于 2019-1-3 19:48 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
unsigned char dspbuf[8] = {10,10,10,10,10,10,0,0};//顯示緩沖區(qū)
unsigned char dspcom = 0;
void display(void)
{   
        P2 = ((P2&0x1f)|0xE0);
        P0 = 0xff;
        P2 &= 0x1f;

        P2 = ((P2&0x1f)|0xC0);
        P0 = 1<<dspcom;
        P2 &= 0x1f;
        
    P2 = ((P2&0x1f)|0xE0);                                                                                                   //dspduf  dspcom
        P0 = tab[dspbuf[dspcom]];
        P2 &= 0x1f;

    if(++dspcom == 8){
        dspcom = 0;
    }   

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:164602 發(fā)表于 2019-1-4 08:06 | 只看該作者
第一個問題不知道怎么回答,因為看了程序,它有一系列的運算,為什么這樣運算,從你給出的程序中沒看出來。
第二個問題很好理解,所謂顯示緩沖區(qū),就是先將要顯示的內(nèi)容計算好,存在其中,顯示時,直接使用就可以了,也就是說,不是將計算結果直接顯示——緩沖的意思很明白嘛。只要新計算沒完成,緩沖區(qū)的內(nèi)容就不變,顯示就不受影響。這樣的操作,對單片機使用數(shù)碼管很有效,因為數(shù)碼管顯示通常用掃描法,時間間隔太長就會閃。
回復

使用道具 舉報

板凳
ID:123289 發(fā)表于 2019-1-4 08:22 | 只看該作者
本帖最后由 yzwzfyz 于 2019-1-4 09:08 編輯

對于顯示:初學者會直接向連接LED燈的IO口送出顯示的數(shù)據(jù)(譯碼后)。
高手這樣做:從某個區(qū)域(A區(qū))中定向取數(shù),送至對應的IO口。這個A區(qū)就叫顯示緩沖區(qū)。甚至還有B緩沖區(qū)。
例如:B區(qū)放直觀數(shù)據(jù)、A區(qū)放顯示碼數(shù)據(jù)
這樣【顯示子程序】就固定為:從B區(qū)取數(shù)據(jù),譯碼后放入A區(qū)、從A區(qū)取數(shù)據(jù)送到IO口。
顯示動作就簡單了:用一個定時器,定期調用【顯示子程序】。
主程序就方便靈活了。它只要將需要顯示的直觀數(shù)據(jù)放入B區(qū)就行了。
要移動走屏也方便了:只要改變從A區(qū)取據(jù)的起點、終點就可以了。如:第一次從1-10,下次從2-10-1,再下次從3-10-1-2……
還即可以在緩沖區(qū)中做許多文章,改變顯示花樣!
回復

使用道具 舉報

地板
ID:421426 發(fā)表于 2019-1-7 13:10 | 只看該作者
HC6800-ES-V2.0 發(fā)表于 2019-1-4 08:06
第一個問題不知道怎么回答,因為看了程序,它有一系列的運算,為什么這樣運算,從你給出的程序中沒看出來。 ...

謝謝您的回答     這程序是我老師寫的   我沒把程序復制完整
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

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

快速回復 返回頂部 返回列表