//虽然能一秒显示一个数,但是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;}
- }
-
- }
-
- }
复制代码
|