单片机函数库
1.延时
void delay(uint x)
{
uint i,j;
for(i=0;i<x;i++)
for(j=0;j<110;j++);
}
2.数码管显示
void dispw(uchar w,uchar s)//w为位数,s为显示的数字
{P2=_cror_(0x7f,w);
P0=smg[s];
delay1ms(1);
P2=0xff;
}
3.十六进制数字
uchar code smg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
4.矩阵按键扫描
uchar scan()
{
uchar hyw,lyw,hsm,lsm,jz;
flag=0;
for(hyw=0;hyw<4;hyw++)
{
P3 = _crol_(0xfe,hyw); //低4位输出低电平
for(lyw=0;lyw<4;lyw++)
{
lsm = _crol_(0xfe,hyw)&0xf0;//假设高4位出现低电平,&0xf0为低4位取0
hsm = P3&0xf0; //实际P3的高4位的值
if(lsm==hsm)//判断是否有按键按下
{
delay(20);
while(lsm==hsm)hsm=P3&0xf0;//等待按键松开,并且不断检查P3口高4位的值
jz=4*hyw+lyw+1;.//给按键赋值显示1—16
flag =