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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

數碼管動態掃描的種類與設計

作者:佚名   來源:本站原創   點擊數:  更新時間:2012年10月29日   【字體:

   數碼動態掃描可以節省I/O口,而且省電。一般的數碼管動態掃描可以用延時函數來實現,也可以用定時器。用延時的話程序比較復雜,效率也差點,容易占用單片機的資源,但是可以不用定時器;如果你兩個定時器都用在其他重要的地方,可以考慮這樣做。
下面先講什么是動態掃描,所謂動態掃描,就是數碼管的段極都接在一起,利用數碼管的位選腳在不同的時間點亮不同的數碼管,并發送段碼,利用人眼的暫留現象和數碼管的余暉效應,看起來所有的數碼管就是同時亮的,實際上,它們是在同一個時刻只亮一個而已,其它是不亮的,只是它們的掃描速度很快,我們人眼分辨不出來。
好了,先來講延時的數碼管動態掃描:
延時掃描有兩種方法,一直是位操作,一種是字節操作。
首先得先寫一個數碼管的段碼編碼,數碼管分為共陽和共陰,其編碼是不同的,而且根據不同的電路設計編碼也有所不同。下面我就舉兩個例子的0-9的數碼管常用的編碼值;
共陽:0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;
共陰:0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;
先把編碼值設置成一個數組,對其進行對10取余就可以顯示個位,取整可以顯示10位。
延時掃描的第一種方法:位操作
先發送段碼,再開位選,然后延時,最后關位選,接著顯示下一個,以此類推。
具體延時多久,要看數碼管的多少,一般每個點亮大約5ms到10ms左右,太久了會出現嚴重閃爍,太短了數碼管會很暗,根據具體情況做出調整。
延時掃描的第二種方法:字節操作
采用字節操作只需把段碼和位碼都編好,一次延時就可以了,可以用兩個FOR循環來完成,比如有8個數碼管,掃描延時5MS,可以這樣寫:
for(i=0;i<1000;i++)
for(j=0;j<8;j++)
{
P0=NUM(段碼)[j];
P1=NUM1(位碼)[j];
}
現在來介紹定時器掃描,用定時器掃描可以使掃描時間比較準確穩定,可以用switch語句來實現;例如打開定時器1,數碼管4個,可以這樣寫:
void main()
{
uchar t;
TMOD=0x01;
TH0=0xec;
TL0=0x78;//5ms
TR0=1;
while(1)
{
if(TF0==1)
{
TF0=0;
TH0=0xec;
TL0=0x78;
t++;
}
if(t==4)
{
t=0;
}
switch(t)
{
case 0:發送段碼;關位選3;開位選1;break;
case 1:發送段碼;關位選1;開位選2;break;
。。。。。
case 3:發送段碼;關位選:2;開位選3;break;
}
}
這樣寫比較直觀,當然,有其他方法大家可以探討!

關閉窗口

相關文章

主站蜘蛛池模板: 国产日韩视频 | 久久久久一区 | 一区二区三区高清在线观看 | 91高清在线| 久久国产成人午夜av影院武则天 | 午夜视频在线观看一区二区 | 国产视频久| 欧美成人激情 | 在线观看av网站 | 性高湖久久久久久久久aaaaa | se婷婷| a在线观看 | 天天干狠狠 | 成人一区二区三区在线 | 日韩欧美中文字幕在线观看 | 男女羞羞视频免费看 | 欧美精品一区二区三区在线 | 精品欧美色视频网站在线观看 | 久久综合欧美 | 一级大黄 | 99日韩| 三级成人在线 | 欧美成人一级 | 中文字幕免费中文 | 欧美色综合 | 美女亚洲一区 | 亚洲情侣视频 | 91伊人网| 99久久国产精 | 精品一区二区久久久久久久网站 | 国产午夜精品一区二区 | 激情福利视频 | 日本一区二区影视 | 亚洲综合在线视频 | 日本电影韩国电影免费观看 | 亚洲第一视频网站 | 色综合天天天天做夜夜夜夜做 | 亚洲一区av | 日本亚洲欧美 | 亚洲免费视频一区二区 | 在线中文字幕av |