久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 20526|回復(fù): 6
收起左側(cè)

請問數(shù)碼管動態(tài)顯示為什么必須要延遲呢?

[復(fù)制鏈接]
ID:1805 發(fā)表于 2012-6-9 01:11 | 顯示全部樓層 |閱讀模式
 以下是個簡單的數(shù)碼管動態(tài)顯示的C語言程序,
假如我們把延時的delay(2);這個去掉,結(jié)果雖然從邏輯上講是沒問題的,但是下載到板上后,看到顯示比較模糊,一些不該亮的地方也有點亮。
這是為什么呢?


1 #include <reg52.h>
2 sbit DUAN = P2^6;
3 sbit WEI = P2^7;
4
5 void delay(unsigned int z) //1ms延時
6 {
7     unsigned int x,y;
8     for(x=z;x>0;x--)
9         for(y=110;y>0;y--);
10 }
11
12 void main()
13     {
14     unsigned char code show[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07};
15     unsigned int i,which;
16     while(1)
17         {
18         which = 1;
19         for(i=0; i<8; i++)
20             {
21             DUAN = 1;
22             P0 = show;
23             DUAN = 0;
24             P0 = 0XFF;
25             WEI = 1;
26             P0 = 255-which;
27             WEI = 0;
28             which *= 2;
29             //delay(2);
30             }
31         }
32
33     }
34
35


delay函數(shù)還是有點浪費資源,改為定時器來完成延時,
以下是剛調(diào)試好的60秒倒計時。就是在調(diào)試這個程序時遇到了前面提到的數(shù)碼管模糊現(xiàn)象。



1 #include <reg52.h>
2
3 #define uchar unsigned char
4 #define uint unsigned int
5 #define LED_LOCK openLed = 1
6 #define MATRIX_LOCK P2 = 0x35
7 #define N 2
8 //N是顯示位數(shù)。
9 #define START 59
10 #define TIMER_NUM 1000
11
12 uchar tmp[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //數(shù)碼管0~9編碼
13
14 uint timer1 = 0; timer2 = 0;
15
16 sbit led1 = P0^0;
17 sbit openLed = P1^4;
18 sbit Duan = P2^6;
19 sbit Wei = P2^7;
20
21
22 void main()
23     {    
24     uint whichOne = 0;
25     uchar select[]={0xff - 1, 0xff - 2, 0xff - 4, 0xff - 8, 0xff-16, 0xff-32, 0xff-64, 0xff-128},
26         show[2],
27         num = START;
28     //select:位選編碼
29     LED_LOCK;
30     MATRIX_LOCK;
31
32     TMOD = 0x01;
33     TH0 = (65536 - TIMER_NUM) >> 8;
34     TL0 = (65536 - TIMER_NUM) % 256;
35     EA = 1;
36     ET0 = 1;
37     TR0 = 1;
38
39     while(1)
40         {
41         if(timer1 >= 1000)
42             {
43             if(num == 0)
44                 num = START + 1;
45             num--;
46             timer1 = 0;
47             }
48             
49         if(timer2 >= 10)
50             {
51             whichOne++;
52             whichOne %= N;
53             show[0] = num / 10;
54             show[1] = num % 10;
55             Duan = 1;
56             P0 = tmp[show[whichOne]];
57             Duan = 0;
58             P0 = 0xff;
59             Wei = 1;
60             P0 = select[whichOne];
61             Wei = 0;
62             timer2 = 0;
63             }
64         }
65         
66     }
67
68 void Timer0() interrupt 1
69     {
70     TH0 = (65536 - TIMER_NUM) >> 8;
71     TL0 = (65536 - TIMER_NUM) % 256;
72     timer1 ++;
73     timer2 ++;
74     }
[此貼子已經(jīng)被作者于2012-6-9 12:19:33編輯過]
回復(fù)

使用道具 舉報

ID:1 發(fā)表于 2012-6-9 01:58 | 顯示全部樓層
delay(2); 的作用就是讓他顯示一段時間啊
回復(fù)

使用道具 舉報

ID:27916 發(fā)表于 2012-6-9 06:40 | 顯示全部樓層
不延時的話,一閃而過,你看得清楚呀
回復(fù)

使用道具 舉報

ID:1805 發(fā)表于 2012-6-9 12:25 | 顯示全部樓層
 謝謝,以后記住這個例行步驟;)
回復(fù)

使用道具 舉報

ID:1805 發(fā)表于 2012-6-9 12:30 | 顯示全部樓層
從實驗的結(jié)果看,該顯的段顯示比較亮,奇怪的就是為什么不該顯示的段也會微微發(fā)亮。加延時后不該亮的段一點都不亮的。
回復(fù)

使用道具 舉報

ID:1 發(fā)表于 2012-6-9 19:51 | 顯示全部樓層

這個問題 就要考慮到消隱了,只所以出現(xiàn)那個微亮的,可見 消隱沒有做好 具體你可參考 http://www.zg4o1577.cn/bbs/dpj-10971-1.html

 

按上面的操作一下 應(yīng)該微亮問題可以解決,,

delay(2); 這段顯示的延時理論上  延時越長顯示的亮度就越大

回復(fù)

使用道具 舉報

ID:1805 發(fā)表于 2012-6-9 22:18 | 顯示全部樓層
 謝謝您的耐心解答,我程序中在WEI = 1 之前的 P0 = 0xff,也可以消影,當(dāng)然鏈接中程序的方法還可以節(jié)省一行,更好些。
如果把該程序的delay語句去掉,顯示的結(jié)果還是有點怪。
也不去深究了,繼續(xù)往下學(xué)習(xí)。謝謝;)
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久久久久久免费看 | 欧美在线小视频 | 日本精品免费在线观看 | 久久久久国产精品一区二区 | 欧美亚洲在线 | 成人免费观看视频 | 激情av网站| 黄色毛片一级 | 精品久久久一区 | 91久久国产综合久久91精品网站 | 永久av| 色综合久久88色综合天天 | www.蜜桃av.com| 日本在线观看网址 | 福利一区在线观看 | 日韩成人免费中文字幕 | 亚洲精品乱码久久久久久蜜桃91 | 羞羞在线视频 | 在线欧美日韩 | 91免费观看视频 | a级黄色片在线观看 | 久久伊人一区 | 精品免费国产一区二区三区四区介绍 | 国产黄色大片在线免费观看 | 91日b| 久久性 | 粉嫩国产精品一区二区在线观看 | 97日韩精品 | 亚洲二区在线观看 | 久久精品国产免费 | 亚洲精品二区 | 日韩不卡在线 | 国产福利资源 | 97人澡人人添人人爽欧美 | 精品久久香蕉国产线看观看亚洲 | 91av大全 | 在线视频91 | 91麻豆精品国产91久久久更新资源速度超快 | 精品一区二区三区视频在线观看 | 国产精品一区在线 | 亚洲小视频在线播放 |