标题:
一键多用小程序
[打印本页]
作者:
腾飞的龙
时间:
2016-5-28 10:17
标题:
一键多用小程序
今天写了个一键多用的小程序,2种。数码管和流水灯显示。
#include <stc12c5a60s2.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define dat P0
sbit key=P3^7;
sbit wei=P2^7;
sbit duan=P2^6;
uchar jj,i;
uchar liushui[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar seg[10]={0xC0,0xCF,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //0~~9段码
uchar seg1[10]={0x40,0x4F,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//带小数点断码
void delay(int x)
{
int i,j;
for (j=0;j<x;j++)
for (i=0;i<420;i++);
}
void keyscan()
{
if(key==0)
{
delay(20);
if(key==0)
{
jj++;
if(jj==7)
jj=0;
}
while(!key);
}
/* if(jj==1)
{
wei=1;
dat=0xfe;
wei=0;
duan=1;
dat=seg[0];
duan=0;
delay(60);
dat=0xff;
}
if(jj==2)
{
wei=1;
dat=0xfd;
wei=0;
duan=1;
dat=seg[1];
duan=0;
delay(60);
dat=0xff;
}
if(jj==3)
{
wei=1;
dat=0xfb;
wei=0;
duan=1;
dat=seg[2];
duan=0;
delay(60);
dat=0xff;
}
if(jj==4)
{
wei=1;
dat=0x00;
wei=0;
for(i=0;i<10;i++)
{
duan=1;
dat=seg[i];
duan=0;
delay(900);
dat=0xff;
}
}
if(jj==5)
{
wei=1;duan=1;
for(i=0;i<8;i++)
{
dat=liushui[i];
delay(900);
dat=0xff;
}
}
if(jj==6)
{
wei=1;
dat=0xff;
wei=0;
duan=1;
dat=0xff;
duan=0;
}*/
switch(jj)
{
case 0: wei=1;
dat=0xfe;
wei=0;
duan=1;
dat=seg[0];
duan=0;
delay(60);
dat=0xff;
break;
case 1:wei=1;
dat=0xfd;
wei=0;
duan=1;
dat=seg[1];
duan=0;
delay(60);
dat=0xff;
break;
case 2:wei=1;
dat=0xfb;
wei=0;
duan=1;
dat=seg[2];
duan=0;
delay(60);
dat=0xff;
break;
case 3:wei=1;
dat=0x00;
wei=0;
for(i=0;i<10;i++)
{
duan=1;
dat=seg[i];
duan=0;
delay(900);
dat=0xff;
}
break;
case 4:wei=1;duan=1;
for(i=0;i<8;i++)
{
dat=liushui[i];
delay(900);
dat=0xff;
}
break;
case 5:wei=1;
dat=0xff;
wei=0;
duan=1;
dat=0xff;
duan=0;
break;
}
}
void main()
{
while(1)
{
keyscan();
}
}
复制代码
作者:
taoran
时间:
2016-6-3 14:26
很好,很有用,收藏,备用
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1