|
楼主 |
发表于 2018-4-20 21:42:31
|
显示全部楼层
静态数码管 比较简单
程序从0-F循环显示间隔1s
#include "reg52.h"
#include "intrins.h"
typedef unsigned int u16 ;
typedef unsigned char u8 ;
u8 code smgduan[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,
0x7c,0x39,0x5e,0x79,0x71}; //共阴
u8 i;
void delay1s(void) //误差 0us
{
unsigned char a,b,c;
for(c=167;c>0;c--)
for(b=171;b>0;b--)
for(a=16;a>0;a--);
_nop_(); //if Keil,require use intrins.h
}
void main()
{
while(1)
{
for(i=0;i<16;i++)
{
P0=~smgduan[i];
delay1s();
}
}
} |
|