📄 led8.c
字号:
/*01数码管的显示,静态显示,只显示一位数码管*/
#include "reg51.h"
/********************/
unsigned char table[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//共阴数码管 0-9 表
/********************/
sbit LHJ_A = P1^0; //管脚定义 74HC138(3-8)译码器输入控制信号线
sbit LHJ_B = P1^1;
sbit LHJ_C = P1^2;
/********************/ //宏定义 ,定义数码管显示第几位
#define SMG_1 LHJ_C=0;LHJ_B=0;LHJ_A=0 //译码器的输入脚,全0选择第一位数码管。
#define SMG_2 LHJ_C=0;LHJ_B=0;LHJ_A=1 //译码器的输入脚,001选择第二位数码管。
#define SMG_3 LHJ_C=0;LHJ_B=1;LHJ_A=0 //同上类推
#define SMG_4 LHJ_C=0;LHJ_B=1;LHJ_A=1
#define SMG_5 LHJ_C=1;LHJ_B=0;LHJ_A=0
#define SMG_6 LHJ_C=1;LHJ_B=0;LHJ_A=1
#define SMG_7 LHJ_C=1;LHJ_B=1;LHJ_A=0
#define SMG_8 LHJ_C=1;LHJ_B=1;LHJ_A=1
/******************************/
void delay(unsigned int d_time);
//延时子函时,
/***************/
void main(void)
{
unsigned char i; //定义循环变量
while(1)
{
SMG_8; //选择第八位数码管,这是静态显示,P2口输出同一个数显示,不需要刷新,可选择其它位
//数码管显示,比如第一位,则为SMG_1
for(i=0;i<10;i++) //循环显示0-9
{
P2=table[i]; //P2,查表输出定义好的数码管段时,显示相应的0-9
delay(500); //延时
}
}
}
/*******************************/
//延时子函数
//参数范围 0-65536
void delay(unsigned int tmp) //延时子函数,tmp为延时时间长短
{
unsigned char i,j;
i=tmp;
while(i--){
j=255;
while(j--);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -