#include "reg52.h"
#define led P0
int code light[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(int i)
{
while(i--);
}
void main()
{
led=0x01;
delay(50000);
int j;//为什么int在此处编译不通过?应该是编译器的问题
/*
int j;
led=0x01;
delay(50000);
放在上边这种就可以*/
while(1)
{
for(j=0; j<17; j++)
{
led=light[j];
delay(50000);
}
}
}
74HC138D 是一种三通道输入、八通道输出译码器,主要应用于消费类电子产
品。
(1)主要特性
①采用 CMOS 工艺
②低功耗
③工作电压:3.0V-5.0V
④封装形式:SOP16
(2)管脚功能定义
这里给大家总结一个方法:A0、A1、A2 输入就相当于 3 位 2 进制数,A0 是
低位,A1 是次高位,A2 是高位。而 Y0-Y7 具体哪一个输出有效电平,就看输入
二进制对应的十进制数值。比如输入是 101(A2,A1,A0),其对应的十进制数
是 5,所以 Y5 输出有效电平(低电平)。
这个是为什么?电路看不懂
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
u8 code smgduan[]={0x6d,0x5b, 0x3f,0x40, 0x06, 0x4f, 0x06, 0x66,};
// 0x6d,0x5b, 0x3f,0x40, 0x06, 0x4f, 0x06, 0x66,
u8 code weixuan[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void delay(u16 i)
{
while(i--);
}
void DigDisplay()
{
u8 i;
for(i=0;i<8;i++)
{
P1= weixuan[i];
P0=smgduan[i];//发送段码
delay(1); //间隔一段时间扫描
// P0=0x00;//消隐
}
}
void main()
{
while(1)
{
DigDisplay(); //数码管显示函数
}
}
数码管动态显示520-1314
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define DIGI P0
#define SELECT P2
uchar digivalue[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar select[]= {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void delay(uint i)
{
while(i--);
}
main()
{
uchar i=0;
while(1) {
for(i=0; i<8; i++)
{
SELECT=select[i];
DIGI=digivalue[i];
delay(50000);
}
}
}
动态显示0-7