服务器数码管不显示,求助,数码管不显示数字。

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

typedef unsigned int uint32;

typedef unsigned char uint8;

sbit Dula = P2^6;

sbit Wela = P2^7;

uint8 code table[]={0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71,0x00}; //数字排列

uint32 key=0,x=0;

void display(uint32 num) //数码管显示

{

void delay(uint32 x);

Wela = 1;

P0 = 0xc0;

Wela = 0;

delay(5);

Dula = 1;

P0 = table[num]; //显示数字

Dula = 0;

delay(5);

}

void delay(uint32 x) //延时函数

{

int a,b;

for(a=0;a

{

for(b=0;b<112;b++);

}

}

void main()

{

int num = 16;

int a;

while(1)

{

P3 = 0xf0; //P3.1输出低电平

key = P3;

key = key&0xf0;

while(key!=0xf0) //判断P3是否有输入,有就进循环

{

delay(5) ; //延时5毫秒

key = P3;

key = key&0xf0;

while(key!=0xf0) //再次判断P3是否有输入

{

key = P3;

key = key&0x0f;

switch(key)/*判断P3输入是第几排 0123

4567

89AB

CDEF */

{

case 0x0E:a = 0; break;

case 0x0D:a = 1;break;

case 0x0B:a = 2; break;

case 0x07:a = 3; break;

}

key = P3;

key = key&0xf0;

switch(key) //判断P3输入是第几位

{

case 0xe0 : num = 0+a*4;break;

case 0xd0 : num = 1+a*4;break;

case 0xb0 : num = 2+a*4;break;

case 0x70 : num = 3+a*4;break;

}

while (key!= 0xf0) //判断按键是否松开,松开走出循环

{

key = P3;

key = key&0xf0;

}

}

}

display(num);//显示数码管

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值