- #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;
- }
- }
- }
復制代碼
|