void main(void )//主程序
{
TMOD=0x01// 定时器1工作方式一
ET0=1
EA=1
TH0=(65536-10000)/256//定时10ms
TL0=(65536-10000)%256
TR0=0//上电先不启动
while(1)
{
{
Delay1ms(10)//延时消抖
if(key1==0)
{
while(key1==0)//等待按键抬起
TR0=!TR0//启动或停止
}
}
if(key2==0&&TR0==0)//判断按键是否按下及是否在走时
{
Delay1ms(10)//延时消抖
if(key2==0)
{
while(key2==0)//等待按键抬起
a=0second=0
}
}
display(second)
}
}
//中断子程序
void Timer0(void) interrupt 1
{
TH0=(65536-10000)/256
TL0=(65536-10000)%256
a++
if(a==100 ) second++
if(second==60) second=0
}
假设8个数码管公共端均接地,同时显示1-9#include
#include
#define
uchar
unsigned
char
#define
uint
unsigned
int
uchar
code
dsy_code[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0x82,0xf8,0x80,0x90,0xff
}
void
delayms(uint
x)
{
uchar
t
while(x--)
for(t=120t>0t--)
}
void
main()
{
uchar
i=0
p0=0x00
while(1)
{
p0=~dsy_code[i]
i=(i+1)%10/*显示0-9*/
delayms(200)
}
}
下面程序从左到右显示
#include
#include
#define
uchar
unsigned
char
#define
uint
unsigned
int
uchar
code
dsy_code[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90
}
void
delayms(uint
x)
{
uchar
i
while(x--)
{
for(i=200i>0i--)
}
}
void
main()
{
uchar
i,k=0x80
while(1)
{
for(i=8i>0i--)
{
p2=0xff
k=_crol_(k,1)
p0=dsy_code[8-i]
p2=k
delayms(3)
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)