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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 15984|回復: 13
收起左側

關于51Hei開發板板數碼管消隱的研究

  [復制鏈接]
ID:25279 發表于 2011-3-17 00:17 | 顯示全部樓層 |閱讀模式

  想必大家都看過站長推薦的能配合51hei-5開發板電路的那個視頻教程吧。我后來發現了視頻里有一個小小的失誤在消隱方面,如果完全按照視頻教程里的來就會出現數碼管暗亮影響美觀,于是我在找到原因之后做了一些修改,代碼在下面。

下面是本站板子數碼管部分的電路圖,

a63.jpg

//*===============================
//接線要求:P0口分時復用輸出,P2.6,P2.7做74ls573片選
//入口參數:0000--9999范圍內的二進制或十進制數
//出口參數:無
//函數功能:數碼管實現小于9999數的十進制顯
//by Oliver  21/03,21:59
//==================================

#include <AT89X52.H>
#define uchar unsigned char

sbit WEI=P2^7;
sbit DUAN=P2^6;
sbit LED=P1^4;
uchar wei[]={0xfe,0xfd,0xfb,0xf7};
uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

void delay(void)   //誤差 0us
{
unsigned char a,b,c;
for(c=1;c>0;c--)
for(b=222;b>0;b--)
for(a=12;a>0;a--);
}
//--------------6ms延時
void undo(void)
{    
WEI=1;
P0=0xff;
WEI=0;
}//使位選失效

void wei_cs(uchar a)
{  
P0=wei[a];//=====關鍵之處---------------------------------------------------消隱------
WEI=1;
WEI=0;
}
//-------------------位選---------
void duan_cs(uchar a)
{
P0=duan[a];
DUAN=1;
DUAN=0;
}
//-------------------段選---------
void show(int DATA)
{
uchar qian,bai,shi,ge;
uchar duan_flag=0;

if(DATA>9999)
{
LED=0;
P0=0xfe;
}//判斷是否超出顯示范圍
else
{
qian=DATA/1000;
bai=DATA%1000/100;
shi=DATA%100/10;
ge=DATA%10;
//-------------各位分離
if(qian!=0)
{
duan_cs(qian);
wei_cs(duan_flag++);
}
delay();

if((bai|qian)!=0)
{
duan_cs(bai);
wei_cs(duan_flag++);
}

delay();
if((shi|bai|qian)!=0)
{
duan_cs(shi);
wei_cs(duan_flag++);
}

delay();
if(1)
{
duan_cs(ge);
wei_cs(duan_flag);
}
}
}
void main(void)
{
while(1)
show(1545);
}

消隱的研究:隱紅的出現:1 ,段碼改變時,位碼未變,在位碼變化之前,會在前一個位碼處產生殘影;

2 ,位碼改變時,如先使P2^7有效,則段碼在位碼寫入之前會在新的位碼處產生殘影。

消除方法:1, 段碼改變之前將位碼全部置成無效,此時間間隔仍能滿足視覺暫留的要求;

2, 位碼改變時,先將下一個位碼寫入P0口,再使P2^7有效,則可消除此種殘
影。
另外,如P0口時序要求更為嚴格,為保證數據安全性,可將連接圖中的OC端統一接一控制引腳,使兩片573同時輸出使能,即可更好消除殘影。

 

視頻教程中的代碼是:

WEI=1; //開通
P0=wei[a];
WEI=0; //鎖存

 

我修改為下面的代碼后,殘影消失,感覺非常完美呵呵.

P0=wei[a];
WEI=1;
WEI=0;

[此貼子已經被作者于2011-3-17 0:21:47編輯過]

評分

參與人數 1黑幣 +12 收起 理由
weilanjuedou + 12 很給力!

查看全部評分

回復

使用道具 舉報

ID:1 發表于 2018-2-22 16:40 | 顯示全部樓層
引用小曾老師:“用鎖存器進行數碼管顯示,遵循的原則,不管送位碼,還是段碼,都先數據到位,在開鎖存在鎖存這是第一點,第二點,每顯示完一位應關掉所有顯示。這樣好處進行動態掃描互不干擾,顯示的數字非常干凈,感覺非常的好,不會有一點陰影”
回復

使用道具 舉報

ID:29055 發表于 2011-5-24 02:45 | 顯示全部樓層
不錯,解釋得很詳細,難怪我以前一直都沒發現可以這樣處理.
回復

使用道具 舉報

ID:1805 發表于 2012-6-9 22:08 | 顯示全部樓層
 這個程序顯示個位后面少了個delay();函數,  個位顯示比其他位暗。
回復

使用道具 舉報

ID:66061 發表于 2014-9-15 15:22 | 顯示全部樓層
樓主有心了,謝謝分享
回復

使用道具 舉報

ID:74621 發表于 2015-4-2 20:25 | 顯示全部樓層
總之看完后懂了!
回復

使用道具 舉報

ID:65232 發表于 2015-4-11 22:16 | 顯示全部樓層
與這個開發板配合的視頻是那個
回復

使用道具 舉報

ID:82145 發表于 2015-6-5 21:36 | 顯示全部樓層
贊一個
回復

使用道具 舉報

ID:386477 發表于 2019-1-24 17:43 | 顯示全部樓層
問題困擾了很久終于得到解決,感謝樓主!
回復

使用道具 舉報

ID:634141 發表于 2019-12-21 23:34 | 顯示全部樓層
已復制,回去研究一下
回復

使用道具 舉報

ID:675484 發表于 2019-12-27 15:51 | 顯示全部樓層
用兩個573會不會成本太高了?普中的板子用的是138位選+573段選。
回復

使用道具 舉報

ID:690948 發表于 2020-2-11 08:39 來自手機 | 顯示全部樓層
學習了
回復

使用道具 舉報

ID:699553 發表于 2020-2-28 12:56 | 顯示全部樓層
P0=wei[a]; WEI=1; WEI=0;請問樓主,這句是什么意思,是先送數據后再開通嗎?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99小视频| 国产区一区 | 精品久久久久久中文字幕 | 人人草人人干 | 在线中文字幕亚洲 | 国产三级网站 | 欧美在线a | 中文在线www| 狠狠撸在线视频 | 国产999精品久久久久久绿帽 | 天天操欧美 | 国产精品一区在线观看 | 日日夜夜91 | 久精品久久| 久久久久国产精品一区二区 | 在线免费看黄 | 亚洲日本一区二区三区四区 | www国产精品 | 日韩喷潮| 国产精品视频一区二区三区不卡 | 九九综合 | www.日韩| 99精品国产一区二区三区 | 91麻豆精品国产91久久久久久久久 | 黄网站涩免费蜜桃网站 | 日韩欧美二区 | 欧美区在线| 亚洲人精品 | 免费麻豆视频 | 久www| 日韩欧美国产一区二区三区 | 免费黄色片视频 | 国产在线观看网站 | 91国自产 | 天天操天天射综合 | 欧美日韩一| 欧美国产视频 | 亚洲精品中文在线观看 | 国产乱码高清区二区三区在线 | 国产高清视频在线观看 | 超碰免费观看 |