单片机(AT89X52)四位数码管显示0123

来源:互联网 发布:linux .ssh目录 编辑:程序博客网 时间:2024/04/27 19:17

用一片3线8线译码器来选择4个数码管,其中有四个输出端不用。

原理图如下:

讲解注释我都写到程序里了,直接上程序:

#include<reg51.h>#define uchar unsigned charunsigned 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口先置0if (++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的方法。待续。

0 1
原创粉丝点击