数码管不在同一组端口扫描数码管

通过位移来扫描数码管

#include <reg51.h>

//设置段对应的IO口
sbit a = P1^2;
sbit b = P1^4;
sbit c = P2^1;
sbit d = P3^5;
sbit e = P2^3;
sbit f = P3^7;
sbit g = P1^0;

//定义共阴极数码管0-9的显示数组
unsigned int code num[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x67}

//显示数据处理,逐位放入对应的IO口
void display_num(unsigned char n)
{
unsigned char temp;
temp = num[n];
a = temp & (0x01<<0);
b = temp & (0x01<<1);
c = temp & (0x01<<2);
d = temp & (0x01<<3);
e = temp & (0x01<<4);
f = temp & (0x01<<5);
g = temp & (0x01<<6);
}

int main(void)
{
unsigned char i;
while(1)
{
for(i=0;i<10;i++) //循环显示0-9
{
display_num(i);
delay(100);
}
}
}

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值