譚明良,王 偉
(沈陽工學院,遼寧 撫順 113122)
靜態(tài)顯示就是用單片機I/O口輸出固定的數(shù)值,每個數(shù)碼管的驅動電平不會改變,一般用來顯示固定的數(shù)值。動態(tài)顯示,也稱掃描顯示,是將所有數(shù)碼管的8段即a~dp段都連接在一起,分時使各個數(shù)碼管的位選端有效,也就是在某一個時刻只能有1個數(shù)碼管在顯示。由于人眼具有“視覺暫留”作用(通常在20ms左右),因此只要使多個數(shù)碼管顯示的時間間隔較短,人眼一般是感絕不到數(shù)碼管熄滅的,因此可以形成多個數(shù)碼管在“靜態(tài)顯示”的假象。動態(tài)顯示優(yōu)點是占用的I/O接口較少,但需要消耗一定的時間。
由四位數(shù)碼管用動態(tài)顯示“2018”,原理是由單片機的一個I/O口輸出顯示段碼,另一個I/O口輸出位碼。程序如下:
#include
#define uchar unsigned char P2=0x00;
#define uint unsigned int P2=a[2];
uchar code a[4]={0x7f,0x06,0x3f,0x5b};P1=b[2];
uchar code b[4]={0xfe,0xfd,0xfb,0xf7};delay();
uint time; P2=0x00;
void delay(); P2=a[3];
實際上,評書優(yōu)劣不僅僅取決于表演水平,還取決于選材和創(chuàng)作,甚至還有生活體驗。以這一視角度之,評書當是一門“系統(tǒng)化”藝術。近代評書名家無一例外既是表演高手,同時也是創(chuàng)作的大家。
void main() P1=b[3];
{P0=0x00; delay();
while(1) P2=0x00;
{P2=a[0]; }
P1=b[0]; }
delay(); void delay()
P2=0x00; {time=1300;
P2=a[1]; while(time--);}
P1=b[1];
動態(tài)顯示可以同時顯示多位數(shù)碼管,通過不停的刷新I/O口的數(shù)據(jù)來實現(xiàn)多位的持續(xù)顯示。硬件上,I/O口與所有的段碼輸入口相連,另外還要I/O口獨立連接每一位的數(shù)碼管的公共端作為該位數(shù)碼管顯示時候的選擇端。動態(tài)顯示較靜態(tài)顯示可以用更少的單片機控制更多的數(shù)碼管,減少硬件開銷。