#2
xianfajushi2020-04-01 14:15
|
程序代码:
#include<reg51.h>
void delay10ms(unsigned char i) //延迟函数(for循环需要时间) 当第二层for函数为p=100时(经过测量),i为多少,延迟时间就是i*10ms
{ //目的是在两次灯亮之间空出时间
int n,p;
for(n=0;n<i;n++)
for(p=0;p<200;p++);
}
void main()
{
unsigned int i;
unsigned char s[12]={0xc0,0xcf,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98};
//以下两行为片选语句,不可以删除。否则无法操作LED
P2 = 0xa0;P0 = 0x00;P2 = 0; //选中蜂鸣器,关闭蜂鸣器
P2 = 0xC0;P0 = 0xFF;P2 = 0; //位选全部选中
P2 = 0xE0; //选中数码管
while(1)
{
for(i=0;i<10;i++)
{
P0=s[i];
delay10ms(50);
}
}
}
void delay10ms(unsigned char i) //延迟函数(for循环需要时间) 当第二层for函数为p=100时(经过测量),i为多少,延迟时间就是i*10ms
{ //目的是在两次灯亮之间空出时间
int n,p;
for(n=0;n<i;n++)
for(p=0;p<200;p++);
}
void main()
{
unsigned int i;
unsigned char s[12]={0xc0,0xcf,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98};
//以下两行为片选语句,不可以删除。否则无法操作LED
P2 = 0xa0;P0 = 0x00;P2 = 0; //选中蜂鸣器,关闭蜂鸣器
P2 = 0xC0;P0 = 0xFF;P2 = 0; //位选全部选中
P2 = 0xE0; //选中数码管
while(1)
{
for(i=0;i<10;i++)
{
P0=s[i];
delay10ms(50);
}
}
}
程序代码:
#include<reg51.h>
void delay10ms(unsigned char i) //延迟函数(for循环需要时间) 当第二层for函数为p=100时(经过测量),i为多少,延迟时间就是i*10ms
{ //目的是在两次灯亮之间空出时间
int n,p;
for(n=0;n<i;n++)
for(p=0;p<200;p++);
}
void main()
{
unsigned int i;
unsigned char duanma[10]={0xc0,0xcf,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98};
unsigned char weima[8]={0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f};
//以下两行为片选语句,不可以删除。否则无法操作LED
P2 = 0xa0;P0 = 0x00;P2 = 0; //选中蜂鸣器,关闭蜂鸣器
while(1)
{
for(i=0;i<8;i++)
{
P2=weima[i];
P0=duanma[i+1];
delay10ms(100);
P0=0xff;
}
}
}
void delay10ms(unsigned char i) //延迟函数(for循环需要时间) 当第二层for函数为p=100时(经过测量),i为多少,延迟时间就是i*10ms
{ //目的是在两次灯亮之间空出时间
int n,p;
for(n=0;n<i;n++)
for(p=0;p<200;p++);
}
void main()
{
unsigned int i;
unsigned char duanma[10]={0xc0,0xcf,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98};
unsigned char weima[8]={0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f};
//以下两行为片选语句,不可以删除。否则无法操作LED
P2 = 0xa0;P0 = 0x00;P2 = 0; //选中蜂鸣器,关闭蜂鸣器
while(1)
{
for(i=0;i<8;i++)
{
P2=weima[i];
P0=duanma[i+1];
delay10ms(100);
P0=0xff;
}
}
}