//雖然能一秒顯示一個數,但是2位7段數碼管還是不會用 。本來是想實現24秒,晚上18點到第二天6點路燈打開,用24秒代替24時顯示出來。還有單片機內部的AD轉換,,能夠用LCD顯示出光照強度。(本來應該是用LCD全部一起顯示出來的 )感覺實在不會
- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit duan=P2^6;
- sbit wei=P2^7;
- uchar code table[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xe6};
- //顯示0,1,2,3,4,5,6,7,8,9 共陰取反
- uchar num;
- void delay(uint);
- void delay(uint xms)
- {
- uint i,j;
- for(i=xms;i>0;i--)
- for(j=110;j>0;j--);
- }
- void main()
- {
- while(1)
- {
- for(num=0;num<24;num++)
- {
- int a,b;
- a=num%10;
- b=num/10;
- duan=1;
- P0=~table[b];
- delay(500);
- duan=0;
- P0=~0xff;
- wei=1;
- P0=~table[a];
- delay(500);
- wei=0;
- if(num>6&&num<18)
- {P1=0xff;}
- else
- {P1=0x00;}
- }
-
- }
-
- }
復制代碼
|