#include<reg51.h>
#include<stdio.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int //设定四个按键 s
sbit X9C102=P2^0;
sbit X9C202=P2^1;
sbit X9C302=P2^2;
sbit X9C402=P2^3;
sbit X9C103_CS=P1^0;
sbit X9C103_INC=P1^1;
sbit X9C103_UD=P1^2;
void delay_nus(uint i)
{ while(i--); }
void delay_nms(uchar i)
{ for(i;i>0;i++)
{ delay_nus(1000); } }
void set_x9c103(uchar num,uchar ud,uchar save)
{ X9C103_CS=0;
delay_nus(1);
if(ud==1) X9C103_UD=1;
else X9C103_UD=0;
delay_nus(4);
for(num;num>0;num--)
{ X9C103_INC=1;
delay_nus(2);
X9C103_INC=0;
delay_nus(2);
}
delay_nus(2);
if(save==1)
{ X9C103_INC=1;
delay_nus(2);
X9C103_CS=1;
delay_nms(22);
}
X9C103_CS=1;
delay_nus(10);
}
void clear_down()
{ set_x9c103(100,0,1); }
void main_init()
{ X9C103_CS=0;
clear_down();
}
void main()
{ main_init();
set_x9c103(90,1,1);
while(1)//扫描按键,对应不同倍数的输出 {
{if (X9C102==0)
{ clear_down();
set_x9c103(10,1,1);}
if (X9C202==0)
{ clear_down();
set_x9c103(30,1,1);}
if (X9C302==0)
{ clear_down();
set_x9c103(60,1,1);}
if (X9C402==0)
{ clear_down();
set_x9c103(90,1,1);}
} }
评论4