用一片3线8线译码器来选择4个数码管,其中有四个输出端不用。
原理图如下:
讲解注释我都写到程序里了,直接上程序:
#include<reg51.h>
#define uchar unsigned char
unsigned char code LED[10]= //0-9的数码管字形数组
{
0x3F,
0x06,
0x5B,
0x4F,
0x66,
0x6D,
0x7D,
0x07,
0x7F,
0x6F,
};
sbit A0 = P1^0;
sbit A1 = P1^1;
sbit A2 = P1^2;
void main(void){
uchar c=0; //用于做延时
uchar d=3; //用作控制显示的位置
while (1){
for (c=0;c<80;c++); //这个for循环用于延时
P2=0; //由于单片机复位时所有端口输出都为1,为了不产生鬼影,所以将P2口先置0
if (++d>3) d=0;
if (d==0) //前面说了,d是用作索引,选择数码管显示的位置
{
P1=0x03; //选通千位数码管进行显示
P2=LED[0]; //千位显示0
}
else if (d==1)
{
P1=0x02;
P2=LED[1];
}
else if (d==2)
{
P1=0x01;
P2=LED[2];
}
else
{
P1=0x00;
P2=LED[3];
}
}
}
以上便是四位数码管显示0123的方法。待续。
4位数码管显示控制
本文介绍如何使用一片3线8线译码器控制4个数码管显示,并通过程序实现0123的循环显示。文章包含完整的C语言程序代码及详细注释,适用于初学者了解数码管显示原理。
507

被折叠的 条评论
为什么被折叠?



