静态显示与动态显示-51单片机

数组是事先放好的一种对应关系。在汇编当中叫做“格”。

静态显示

静态显示不能显示不同的数,因为阴极...

选“段”、“位”,让数码管显示我们需要的数值

#include<reg51.h>//头文件

unsigned char code leddata[]={0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//ledddata就是指针

void main(void)//主函数

{

    P0=leddata[8];//叫做“断码”,P0控制哪一点亮“0”,哪一点灭“1”

P1=0xfe;//控制哪一位亮“1”,哪一位灭“0”

while(1);

}

动态显示:做切换,切一个位,显示一个断码

#include<reg51.h>//头文件

#define u8 unsigned char//给它起个名“u8”

#define u16 unsigned int//也是起名

unsigned char code leddata[]={0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//ledddata就是指针

void delay(u16 time);//声明

void main(void)//主函数

{

    

while(1)

{

P1=0xff;

P0=leddata[6];//通过数组的索引,与断码实现一对一的对应关系

P1=0xfe;

delay(500);

P1=0xff;

P0=leddata[0];

P1=0xfed;

delay(500);

}

}

void delay(u16 time)

{

u16 t1,t2;

for(t1=0;t1<time;t1++)

{

for(t2=0;t2<125;t2++)

}

}

#include<reg51.h>//头文件

#define u8 unsigned char//给无符号的char起个名“u8”

#define u16 unsigned int//也是起名

unsigned char code leddata[]={0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//ledddata就是指针

u8 code wei[]={0x01,0x02,0x08,0x10,0x20,0x40,0x80};//用反码表示,这样比较简单

void delay(u16 time);//声明

void main(void)//主函数

{

    

u8 i;//定义循环变量i

while(1)

{

for(i=0;i<8;i++)

{

P1=0xff;

P0=leddata[i];

P1=~wei[i];

delay(1);

 }

// P1=0xff;

// P0=leddata[6];

// P1=~wei[0];//~表示取反

// delay(1);

// P1=0xff;

// P0=leddata[0];

// P1=~wei[1];

// delay(1);

}

}

void delay(u16 time)

{

u16 t1,t2;

for(t1=0;t1<time;t1++)

{

for(t2=0;t2<125;t2++)

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值