51单片机:数码管显示

发布者:和谐共存最新更新时间:2022-07-25 来源: csdn关键字:51单片机  数码管显示  静态 手机看文章 扫描二维码
随时随地手机看文章

1. 静态数码管显示


点亮数码管需要用到P0端口和P2部分端口,P0端口负责显示要输出的数字,P2部分端口负责让哪个数码管点亮,具体的去看电路图,这次还包含了74HC245和74HC138芯片


现在让单片机数码管区域第三位的数码管显示数字5,程序如下


 #include"reg52.h"


//定义P2端口

sbit LSA=P2^2; 

sbit LSB=P2^3; 

sbit LSC=P2^4;


//用数组来表示数码管上每个数字输出对应的相关电平输入

int str[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f};



void  Display(int Location,int Number)

{

    //利用case语句将8个数码管显示的位置一一列举

    switch(Location)   

    {

        case 1: LSC=0;LSB=0;LSA=0; break;

        case 2: LSC=0;LSB=0;LSA=1; break;

        case 3: LSC=0;LSB=1;LSA=0; break;

        case 4: LSC=0;LSB=1;LSA=1; break;

        case 5: LSC=1;LSB=0;LSA=0; break;

        case 6: LSC=1;LSB=0;LSA=1; break;

        case 7: LSC=1;LSB=1;LSA=0; break;

        case 8: LSC=1;LSB=1;LSA=1; break;

    }


    P0=str[Number];

}


int main()

{

    Display(3,5); //参数1表示数码管位置,参数2表示要输出的0-9的数字

    while(1)

    {

    }

}


实验现象如下

2.动态数码管显示

这部分主要是注意延时和消除残影的问题,如不加延时的,两个数字切换的非常快,可能会导致篡位,程序如下


 #include"reg52.h"


//定义P2端口

sbit LSA=P2^2; 

sbit LSB=P2^3; 

sbit LSC=P2^4;


//用数组来表示数码管上每个数字输出对应的相关电平输入

int str[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f};


void Delay(int time)

{

    while(time--) //while循环一次需要10us

    {

    }

}


void  Display(int Location,int Number)

{

    //利用case语句将8个数码管显示的位置一一列举

    switch(Location)   

    {

        case 1: LSC=0;LSB=0;LSA=0; break;

        case 2: LSC=0;LSB=0;LSA=1; break;

        case 3: LSC=0;LSB=1;LSA=0; break;

        case 4: LSC=0;LSB=1;LSA=1; break;

        case 5: LSC=1;LSB=0;LSA=0; break;

        case 6: LSC=1;LSB=0;LSA=1; break;

        case 7: LSC=1;LSB=1;LSA=0; break;

        case 8: LSC=1;LSB=1;LSA=1; break;

    }


    P0=str[Number];


    //延时一段时间,等待显示稳定,如果不加延时,就可能上一个数字和下一下篡位

    Delay(100);

    //消除数码管残影

    P0=0x00;

}


int main()

{

     //参数1表示数码管位置,参数2表示要输出的0-9的数字

    while(1)

    {

        Display(1,1);

        Display(2,2);

        Display(3,3);


    }

}


实验现象如下

关键字:51单片机  数码管显示  静态 引用地址:51单片机:数码管显示

上一篇:51单片机:定时器与中断系统的运用
下一篇:51单片机:LED灯流水灯

推荐阅读最新更新时间:2024-11-08 10:31

51单片机GPIO口模拟串口通信
随着单片机的使用日益频繁,用其作前置机进行采集和通信也常见于各种应用,一般是利用前置机采集各种终端数据后进行处理、存储,再主动或被动上报给管理站。这种情况下下,采集会需要一个串口,上报又需要另一个串口,这就要求单片机具有双串口的功能,但我们知道一般的51系列只提供一个串口,那么另一个串口只能靠程序模拟。 本文所说的模拟串口, 就是利用51的两个输入输出引脚P1.0和P1.1,置1或0分别代表高低电平,也就是串口通信中所说的位,如起始位用低电平,则将其置0,停止位为高电平,则将其置1,各种数据位和校验位则根据情况置1或置0。 以11.0592MHz的晶振为例,通过定时计数器0产生中断信号来模拟串口电平,下面附上具体源
[单片机]
51单片机上拉电阻的作用
上拉电阻的作用: (1) 用于为OC和OD门电路,提供驱动能力。 以OC(集电极开路)电路为例: 例如,达林顿管(其实就是复合三级管)集成块ULN2003. 内部一路的电路如图,就是一个集电极开路电路。 如果不加上拉电阻是无法高电平驱动其他器件的。因为当三极管截至市没有电流流通的路径,更谈不上驱动了。这个跟单片机P0口加上拉电阻的原理一样。 (2)提高高电平电位: 单片机P1口外接4 4矩阵键盘。另外复用P1.0~P1.3外接ULN2003控制驱动步进电机。 实验中遇到的问题:当接入ULN2003时键盘无法工作,去掉ULN2003后键盘工作正常。ULN2003工作正常。(注,两个部分不同时工作) 问题分析
[单片机]
<font color='red'>51单片机</font>上拉电阻的作用
基于51单片机的瓦斯报警器设计
引言    当前,随着采矿技术的不断发展,井下作业的安全越来越有保障,但是仍然有许多采矿企业的机械化程度低,对现场采矿的工作人员的生命安全造成潜在的威胁,特别是针对瓦斯气体的检测和报警仍旧存在隐患,每年由于瓦斯泄露造成的特大事故依然很多。瓦斯是在成煤过程中形成并大量储存与煤层之中的气体,是煤矿井下危害最大的气体。瓦斯是一种无色无味的气体,主要成份是甲烷(CH4),密度为0.716kg/ m3,对人体的危害是超时限能引起人窒息死亡。在地下采矿时候,井内常常会泄露一定量的CH4、CO和SO2等气体,后一种含量少,切易溶于水。经煤矿开采时的喷水处理后变成酸。但前两种气体含量多,且几乎不容于水,属于易燃易爆气体。    由于瓦斯气体本身
[单片机]
基于<font color='red'>51单片机</font>的瓦斯报警器设计
51单片机(入门保姆级教程)——点亮一个LED灯
一、为什么要学习单片机? 作为一名工科学生,进入大学参加各种活动,例如:电子设计大赛、寻迹车比赛、LED电子灯比赛以及各种各样的微控、弱控强电路等,都离不开单片机的身影。电路、c语言、数电、模电、计算机控制等知识的学习,给单片机的学习增添了软辅助,但我认为,学习单片机更多的是自己的兴趣、爱好,正如“程序虐我千百遍,我视程序为初恋”。 此外,学习单片机知识,从最基础的51单片机入门学习,可以为我们后面学习STM32、ARM微控器等其微控制器的学习奠定知识基础和积攒一定的经验,给自己的大学及以后的职业道路增加一丝色彩。 二、首先了解什么是单片机? 单片机又称单片微控制器,把一整个计算机系统集成到一个芯片上,当于一个微型的计算机,和计算
[单片机]
51单片机开发中数码管显示与应用
#include reg52.h sbit dula=P2^6;//申明U1寄存器的锁存端,P2^6是段锁 sbit wela=P2^7;//申明U2,P2^7是挝凰? main() { wela=1; //打开U2锁存端 P0=0xfe;//送入位选信号 wela=0;//关闭U2锁存器 dula=1;//段锁 P0=0x5e;//0x06代表1 dula=0; while(1); } wela代表段选。 wela控制哪几个二数码管亮 dula 代表位选,控制数码管亮哪些?后者负责显示0~F中的十六进制中的任意字符 综合来说,控制段选是由一串二进制数字控制的,1111 1110,转化为十六进制为0
[单片机]
51单片机位传送指令MOV
MOV C,BIT MOV BIT,C 这组 指令 的功能是实现位累加器(CY)和其它位地址之间的数据传递。 例:MOV P1.0,CY ;将CY中的状态送到P1.0管脚上去(如果是做算术运算,我们就能通过观察知道现在CY是多少啦)。 MOV P1.0,CY ;将P1.0的状态送给CY。
[单片机]
真正的实时操作系统,如何用51单片机来构建
  目前,大多数的产品开发是在基于一些小容量的单片机上进行的。51系列单片机,是我国目前使用最多的单片机系列之一,有非常广大的应用环境与前景,多年来的资源积累,使51系列单片机仍是许多开发者的首选。针对这种情况,近几年涌现出许多基于51内核的扩展芯片,功能越来越齐全,速度越来越快,也从一个侧面说明了51系列单片机在国内的生命力。   多年来我们一直想找一个合适的实时操作系统,作为自己的开发基础。根据开发需求,整合一些常用的嵌入式构件,以节约开发时间,尽最大可能地减少开发工作量;另外,要求这个实时操作系统能非常容易地嵌入到小容量的芯片中。毕竟,大系统是少数的,而小应用是多数而广泛的。显而易见,μC/OS—II是不太适合于以上要求的
[单片机]
真正的实时操作系统,如何用<font color='red'>51单片机</font>来构建
将代码静态分析提高一个层次,Coverity提出布尔可满足性概念
布尔可满足性(Boolean satisfiability)的概念正在被用于确定软件代码中的“bug”,从而保证代码基本上不存在bug,满足编程者的愿望。 在2007年嵌入系统会议上,Coverity宣布了据称是第一种基于布尔可满足性(SAT)的源代码分析引擎。Coverity公司的SAT引擎利用了它的软件DNA图谱,自动、正确和精确地确定源代码中的缺陷。该软件DNA图谱精确地代表人们已写出来的任何软件。 Coverity在企业应用领域是领导厂商。它的静态分析软件客户包括财富500强上面57%的软件公司和50%的电脑外设公司。它的主要产品是Prevent Software Quality System (SQS),SQS通过在
[焦点新闻]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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