51单片机day2——数码管依次显示实验

发布者:chi32最新更新时间:2025-10-28 来源: bilibili关键字:51单片机  数码管 手机看文章 扫描二维码
随时随地手机看文章

/***

*八个八位数码管轮流显示0-9

*顺序:最后一位一次往前递进一位

*数码管接口:

*       1.数码管为共阳数码管

*       2.数码管一端由P0口经74HC245芯片链接至数码管a-dp

*       3.数码管另一端由P2^2-P2^4连接至74LS138译码器A-C管脚经处理后由74LS138译码器Y0-Y7管脚连接至数码管共阳端

* 原理:

*    1.8位数码管内由8个发光二极管组成,一端高电平另一端低电平即可点亮1位数码管

*    2.有八个接口接到8位数码管的一端,8位数码管的另一端统一接正(共阳)/接负(共阴)

*    3.单片机控制八个接口拉高/低控制数码管亮/灭组成不同字符

*思路:

*   1.每个数码管显示0-9后通过74LS138译码器切换到下一个数码管

***/

#include "reg52.h"     //头文件  


void delay(int a);     //延时函数

void smgxs(void);      //数码管显示0-9

void ymq(void);       //通过译码器切换要显示的数码管


sbit LS1=P2^2;       //接到译码器A角

sbit LS2=P2^3;       //接到译码器B角

sbit LS3=P2^4;       //接到译码器C角


int xssz[10]={0x3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};   //显示0-9的编码数组


void main()

 while(1)

 {

  ymq();    //调用译码器函数

 }

}


void smgxs(void)    //数码管函数:显示从0-9后返回

{

  int i;

  for(i=0;i<10;i++)  //循环10次

  {

   P0=xssz[i];     //根据i值的不同显示0-9

   delay(30000);    //延时方便观看

  }

  return;        //返回

}


void ymq(void)      //译码器:循环控制要显示的数码管

{

  int i;

  int LS1sz[8]={0,1,0,1,0,1,0,1};    //根据74LS138译码器的手册定义的P2^2向译码器A管脚发送的信息

  int LS2sz[8]={0,0,1,1,0,0,1,1};    //根据74LS138译码器的手册定义的P2^3向译码器B管脚发送的信息

  int LS3sz[8]={0,0,0,0,1,1,1,1};    //根据74LS138译码器的手册定义的P2^4向译码器C管脚发送的信息

  for(i=0;i<8;i++)   //依次调用八个数码管显示

  {

   LS1=LS1sz[i];    //向译码器A引脚发送的信息

   LS2=LS2sz[i];    //向译码器B引脚发送的信息

   LS3=LS3sz[i];    //向译码器C引脚发送的信息

   smgxs();      //数码管显示0-9

  }

  return;        //返回

}


void delay(int a)  //延时函数

{

  int i;

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

}


关键字:51单片机  数码管 引用地址:51单片机day2——数码管依次显示实验

上一篇:仿真设计|基于51单片机的光照及温湿度检测调节系统仿真
下一篇:基于51单片机及NB-IoT的水箱水位监测系统原理图PCB

推荐阅读最新更新时间:2026-03-24 17:07

4*4矩阵按键《行列反转法》扫描依次显示0-f
数码管采用共阴数码管; proteus电路接法如下: 程序如下: void key_scan() //按键扫描函数 { unsigned char code table = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; P2 = 0xf0; //列扫描 if(P2 != 0xf0) { delay(1000); if(P2 != 0xf0) { P2 = 0
[单片机]
4*4矩阵按键《行列反转法》扫描<font color='red'>依次</font><font color='red'>显示</font>0-f
仿真设计|基于51单片机的双机通信控制数码管显示
具体实现功能 (1)双机通信系统分为通讯发送端和通讯接收端。(2)通讯发送端通过按键发送相应的数值(1-3),通讯接收端接收后通过数码管显示(1-3)。 设计介绍 51单片机简介 51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。 本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。 资料内容 仿真实现(protues8.7) 本设计利用protues8.7软件实现仿真设计,具体如图。 程序(Keil5) 本设计利用KEIL5软件实现程序设计。程序运行结果如图: 全部内容 全
[单片机]
51单片机编程开发(五)之点亮数码管
数码管基础知识 今天我们先来了解一种新的元器件--数码管。数电教材中一般将他和译码一起讲解。它是一种显示器件,现在我们来看看它是一个什么样的东西。 各类数码管 以上是最常见的一些数码管,当然它的外观样式非常多,那它的工作原理是怎么样的呢? 我们现在来看一下它内部结构应该就能知道它的显示原理了。 数码管内部结构 其内部就是由一些LED电路构成,固定在其底面,然后表面通过注塑一些透明材料让显示部分在内部LED发光时能够显示出来,从而达到显示信息的效果。这种显示器是最简单,也是最经济的一种显示工具。在我们日常生活中的电器中是非常常见的,相信大多数人都遇到过,只是在这之前你可能不会想到它叫数码管显示屏。正是因为它的这些特点所以市面
[单片机]
51单片机用矩形键盘控制交通信号灯和数码管显示
仿真视频 电路图 C语言程序 #include reg51.h #define uint unsigned int #define uchar unsigned char //共阳数码管编码表 uchar code table ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //函数声明 void delay(uint time); //延时函数 void display(uchar w); // uchar getKey(); //读取键盘的数值 void delay0_5s(); void delay5s(); //主程序 void main() {
[单片机]
51单片机基础学习(四):动态数码管的消影
一、数码管简介 1. 数码管 数码管由七个LED(发光二极管)组成,可以显示0到9的数字以及一些字母和符号。每个数码管的七个LED分别代表不同的段,包括A、B、C、D、E、F和G段。通过控制每个段的亮灭状态,可以显示不同的字符。根据公共极所接的电平不同,可分为“共阴极数码管”和“共阳极数码管”。(由八个LED构成的数码管称为八段数码管,此处以七段数码管为例进行介绍。) 2. 四位一体的数码管(多位数码管) 四位一体的数码管由四个七段数码管组成。每个七段数码管由七个LED组成,四位一体的数码管可以同时显示四个字符,通常用于计时器、计数器、温度显示器等应用中。根据公共端不同,可分为“共阴极数码管”
[单片机]
<font color='red'>51单片机</font>基础学习(四):动态<font color='red'>数码管</font>的消影
51单片机】七段数码管显示实验+详细讲解
前言 继上次仿真实验—— 【51单片机】矩阵键盘线反转法实验仿真 之后,尽管也对点阵LED进行了学习,但是,点阵LED的显示效果不佳(仿真时的色彩、明亮程度等),加上大多数时候我们在计算器上看到的是七段数码管,所以在学习了学校课程之后,我也进行了尝试。这次主要是 记录七段数码管的使用方法 ,在此之后,我考虑 把键盘扫描(线反转法)、七段数码管、80C51结合起来 ,把整个计算器的功能完善,也算是完成一个小项目。 因为我认为光学理论只是很容易忘记,且容易磨灭兴趣,所以在学习过程中以做一个计算器为目标,循序渐进地学习,缺什么知识就补充什么知识,就像前几次所作的一样: 【51单片机】矩阵键盘线反转法实验仿真 【51单片机】点阵LED的
[单片机]
【<font color='red'>51单片机</font>】七段<font color='red'>数码管</font><font color='red'>显示</font>实验+详细讲解
基于51单片机数码管设计
导语 数码管/LED点阵是嵌入式系统中常见的显示方案,我们通过数码管可以将代码运行的结果可视化出来,是一种常见的显示器件,相对于屏幕,数码管成本低,被广泛的运用在各类小型家电,工业控制中。学会使用数码管,对于理解C语言控制GPIO有着很大的帮助。 数码管 数码管本质上是多个发光的LED等封装在一起,通过不同的LED灯点亮,使得数字或者符号显示出来,常见的由八段数码管,包括小数点在内共有8个LED灯封装在一起,其显示符号范围较广,配合封装显示可有更广泛的显示,被广泛使用。 其他更复杂的如米字数码管可以显示数字和26个英文字母,但其控制更加复杂,不常使用。 由于采用LED灯作为显示光源,由此数码管也存在共阴极和共阳极,其共阴极和共
[单片机]
51单片机实现数码管动态显示60~0
硬件电路原理图 元件清单 C语言程序 #include reg51.h unsigned char table ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //数码管字符码 void show(unsigned char n); void delay(unsigned int k); void main() { unsigned char i; int j; while(1) { for(i=60;j=60,i 0;i--) while(j--) show(i); } } void show(unsigned char n) { P0=table ; P1
[单片机]
<font color='red'>51单片机</font>实现<font color='red'>数码管</font>动态<font color='red'>显示</font>60~0
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved