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

標(biāo)題: 請(qǐng)問(wèn)數(shù)碼管動(dòng)態(tài)顯示為什么必須要延遲呢? [打印本頁(yè)]

作者: cir_biochem    時(shí)間: 2012-6-9 01:11
標(biāo)題: 請(qǐng)問(wèn)數(shù)碼管動(dòng)態(tài)顯示為什么必須要延遲呢?
 以下是個(gè)簡(jiǎn)單的數(shù)碼管動(dòng)態(tài)顯示的C語(yǔ)言程序,
假如我們把延時(shí)的delay(2);這個(gè)去掉,結(jié)果雖然從邏輯上講是沒(méi)問(wèn)題的,但是下載到板上后,看到顯示比較模糊,一些不該亮的地方也有點(diǎn)亮。
這是為什么呢?


1 #include <reg52.h>
2 sbit DUAN = P2^6;
3 sbit WEI = P2^7;
4
5 void delay(unsigned int z) //1ms延時(shí)
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ǎn)浪費(fèi)資源,改為定時(shí)器來(lái)完成延時(shí),
以下是剛調(diào)試好的60秒倒計(jì)時(shí)。就是在調(diào)試這個(gè)程序時(shí)遇到了前面提到的數(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編輯過(guò)]

作者: admin    時(shí)間: 2012-6-9 01:58
delay(2); 的作用就是讓他顯示一段時(shí)間啊
作者: 青蘋(píng)果    時(shí)間: 2012-6-9 06:40
不延時(shí)的話(huà),一閃而過(guò),你看得清楚呀
作者: cir_biochem    時(shí)間: 2012-6-9 12:25
 謝謝,以后記住這個(gè)例行步驟;)
作者: cir_biochem    時(shí)間: 2012-6-9 12:30
從實(shí)驗(yàn)的結(jié)果看,該顯的段顯示比較亮,奇怪的就是為什么不該顯示的段也會(huì)微微發(fā)亮。加延時(shí)后不該亮的段一點(diǎn)都不亮的。

作者: admin    時(shí)間: 2012-6-9 19:51

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

 

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

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


作者: cir_biochem    時(shí)間: 2012-6-9 22:18
 謝謝您的耐心解答,我程序中在WEI = 1 之前的 P0 = 0xff,也可以消影,當(dāng)然鏈接中程序的方法還可以節(jié)省一行,更好些。
如果把該程序的delay語(yǔ)句去掉,顯示的結(jié)果還是有點(diǎn)怪。
也不去深究了,繼續(xù)往下學(xué)習(xí)。謝謝;)





歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 99re视频在线 | 国产日本精品 | 国产视频h | 午夜www| 五月激情综合网 | 一级黄色大片 | 激情av网| 国产一级大片 | 中日韩毛片 | 日韩欧美中文 | 91视频网页 | 在线观看免费毛片 | 狠狠干2018 | 国产精品麻豆 | 黄色欧美大片 | 激情五月综合色婷婷一区二区 | 天天色天天色 | 一区二区三区四区在线播放 | 国产黄色免费视频 | 久久性生活视频 | 中文字幕免费在线看线人动作大片 | 天天干夜夜操 | 国产中文字幕在线 | 九色精品 | 国产精品久久久久久久久免费桃花 | 日韩综合久久 | 亚洲成a人 | 欧美日韩黄色片 | 黄色av免费在线观看 | 看黄色大片 | 日韩高清在线播放 | 日韩一区二区三区在线 | 91看片在线 | 欧美黄色片在线观看 | 国产精品欧美在线 | 亚洲国产天堂 | 中文字幕在线观看第一页 | 亚洲成人精品在线 | 婷婷在线视频 | 少妇一级淫片免费观看 | 一区二区免费 |