- #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);
- }
- }
- }
复制代码
- #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;
- }
- }
- }
复制代码
|