|
#include<reg52.h>
sbit WEI = P1^6; //定义位选
sbit DU = P1^7; //定义段选
void SMG();
#define uchar unsigned char // 8bit, 0 ~ 255
#define uint unsigned int // 16bit, 0 ~ 65,535
void delayms(uint m) // 11.0592MHz 晶振ms延时,偏差小于1%
{
uint i, j;
for(i=m; i>0; i--)
for(j=114; j>0; j--);
}
void main(void)
{
SMG();
}
void SMG()
{
DU = 1;
P0 = 0x00;
DU = 0; //消影
WEI = 1;
P0 = 0xfe; //位选,第一位
WEI = 0;
DU = 1;
P0 = 0x01; //段选,一横
DU = 0;
delayms(300);
}
如果延时选择 delayms(2);就会出现影子。而delayms(300);是试出来刚好合适只显示一横并且不会一横看起来不会有闪烁的的感觉。影子是怎样出现的,怎样选着合适的延时时间?
|
|