在能夠正常顯示的條件下,只要在特定的時間段關閉顯示就能達到某一位閃爍的目的。簡單示例如下:
無標題1.jpg (144.45 KB, 下載次數: 45)
下載附件
2021-5-23 08:05 上傳
無標題2.jpg (145.57 KB, 下載次數: 63)
下載附件
2021-5-23 08:05 上傳
- #include <reg51.H>
- unsigned char code table[]={//共陰數碼管段碼"0~f"
- 0x3f,0x06,0x5b,0x4f,
- 0x66,0x6d,0x7d,0x07,
- 0x7f,0x6f,0x77,0x7c,
- 0x39,0x5e,0x79,0x71};
- unsigned char i;
- unsigned int j,k;
- bit b;
- void main()
- {
- unsigned char x=2;//閃爍位范圍0~3
- while(1)
- {
- P2&=0xe3; //清138位碼
- P2|=(i<<2); //送138位碼
- if(i==x && b==1)
- P0=0x00;//段碼關閉顯示
- else
- P0=table[i+1];//段碼正常顯示
- i=++i%4;//數碼管動態掃描計數
- k=250;
- while(--k);//延時約1ms
- j++;
- if(j==500)
- {
- j=0;
- b=~b;//約500ms閃爍標志取反
- }
- }
- }
復制代碼
|