當前位置:編程學習大全網 - 編程語言 - c51單片機編程遇到程序解讀問題:問題如下圖,解讀滿意者獎金豐厚

c51單片機編程遇到程序解讀問題:問題如下圖,解讀滿意者獎金豐厚

從“#define

clock_segment

XBYTE[0xBFFF]

這個語句可以看出,程序的作者用的是總線方式來控制數據流。壹般的51單片機的P0口和P2口***同作為地址總線,而P0口又作為數據總線,想想這樣的板子上壹般都接了鎖存器。上面這句話的意思是在後面的程序中如果遇到clock_segment就當成是XBYTE[0xBFFF],後面的註釋說明這個是數碼管段碼的地址。那麽舉個例子:

數碼管(***陰)的段碼表是:

unsigned

char

code

SMG_DM[10]={

0x3F,/*0*/

0x06,/*1*/

0x5B,/*2*/

0x4F,/*3*/

0x66,/*4*/

0x6D,/*5*/

0x7D,/*6*/

0x07,/*7*/

0x7F,/*8*/

0x6F,/*9*/

};

則如果程序中寫到clock_segment

=

SMG_DM[3];

意思就是XBYTE[0xBFFF]=

SMG_DM[3];

//

往數碼管送數字3的段碼

再說壹點就是在總線方式中單片機的P3.6和P3.7會作為讀寫控制而自動改變電平,目的是配合總線。這種方式可以給單片機擴展很多外設,而且總線自動控制讀寫會提高代碼效率。

下面的屬於動態顯示,但是因為沒有進行消隱操作,會導致顯示亂碼。

具體的消隱操作是,如果妳先送段碼,則在送段碼前將所有的位碼關閉,如果是***陰數碼管,則控制位的引腳全部置1,***陽的則置0即可。如果先送位碼,則要在送之前將所有的段碼關閉,***陰的話則全部置高,***陽的全部置低。消隱時間越短越好,在關閉段碼顯示或位碼顯示後立即送位碼或段碼,不要進行任何的延時,延時是在送數完成之後進行。

在妳的程序中是先送的位碼,則在送位碼之前要進行壹句:clock_segment

=

0xff;

//

如果用的是***陰數碼管。如果用的是***陽數碼管就是:clock_segment

=

0x00;

  • 上一篇:Java並發編程實戰的作品目錄
  • 下一篇:如何在沈陽找到靠譜的小程序開發公司?
  • copyright 2024編程學習大全網