1.什么是数码管
如图所示,这是二位的数码管
一个数码管,要有8个LED灯控制他显示是什么数字,7个LED控制数字,1个LED控制小数点。如上图
2.共阴极和共阳极
如上图,对于一个数码管,共阴极就是 组成数码管的二极管的阴极是连在一起的,想点亮数码管,就在单片机的对应 I/O 口给高电平。
共阳极就是 组成数码管的二极管的阳极是连在一齐的,想点亮数码管,就在单片机的对应 I/O 口给低电平。
3.让数码管显示数字原理
如上图,abcdefg分别控制数码管的8条led灯,如我要显示数字 8 ,则要把abcdefd全点亮,如上图右边,就是把abcdefg都置高电平。
3.段选和位选
如上图所示,上面八根线(a,b,c,d,e,f,g,dp)控制数码管显示的数字是多少,叫做段选
下面四根线,控制四个数码管中,哪一个数码管被点亮,叫做位选
位选的意义:
由第一点的知识可知,控制一个数码管的亮灭,需要8个LED灯,换言之,控制一个数码管,就要用掉8个 I/O口,控制5个数码管就要用掉40个I/O口,
I/O口的资源没有那么多,所以引入了位选,有了位选以后,只需要8个I/O口控制数码管的段选(数码管显示什么数字)就好,至于让哪一个数码管亮,就由位选来做。
4.用锁存芯片74HC573实现段选和位选。
如上图所示,是一片74HC573芯片,这片芯片的作用是锁住输入的值,(D1~D8为输入端,Q1~Q8为输出端),C段(就是上图的11引脚)为片选段。
当C段为1时,输出端=输入端,当C段为0时,当输入端改变,输出端也不会改变了,达到了锁存的作用
如图所示,上图是共阴数码管的原理图,从原理图可知,一块74HC573控制段选,另一块74HC573控制位选,分别接到最小系统的P2.6和P2.7引脚
由于是共阴极,所以位选置0时,数码管会亮
5.代码实现
我们显示数字时,为了方便,我们可以下载一个 数码管计算器 ,百度数码管计算器即可。可以快速显示 响应数字怎么引脚怎么设置
如上图,显示3 就是把对应8位 I/O口组 设置为 0x4F
#include
sbit WE=P2^7;
sbit DU=P2^6;
void main()
{
DU=1;
P0=0x4f; //让数码管显示数字3
DU=0;
WE=1;
P0=0xfe;//让第一个数码管点亮,1111 1110
WE=0;
while(1);
}
关键字:C51 数码管
引用地址:
(C51学习二)点亮数码管
推荐阅读最新更新时间:2024-03-16 16:24
二叉树算法在单总线上的C51软件实现
引 言 单总线技术是将地址线、数据线和控制线合成一根线,并允许在该线上挂接多个单总线器件。其搜索ROM命令可以在线识别挂接在总线上器件的注册码和器件的类型,并可在线确定总线上的器件数量;但是,对于多个在线器件,毫不遗漏搜索出每个器件的注册码比较困难,在本文中,作者把多个器件注册码的数据结构抽象为一种二叉树,从而通过二叉树算法实现对在线所有的单总线器件的注册码的自动搜索,并能根据注册码自动识别器件类型和总线上的器件数量。 1 单总线技术 单总线技术搜索ROM的过程是主设备获取单总线上从器件的注册码的过程,是一种简单的三步操作过程的重复,即先读一位,其次读该位的反码,然后再写一位,选中其中的一部分器件(详见参考文献 )。重
[单片机]
SPI总线单片机发送数据的C51程序
关于spi协议见: http://hi.baidu.com/gilbertjuly/blog/item/0be222eeac9abae5cf1b3e38.html ISD4002芯片资料参考: http://download.csdn.net/source/1208805 以下是单片机spi通信的通用程序,在不同晶振情况下可能需调整延时。这里单片机晶振为11.0592MHz。 _nop_();语句指延迟一个机器周期,约1us左右。写1bit约10us,spi传输率约100kbit/s。 程序中只用了MOSI,/SS,SCLK信号,没有用MISO信号。 #include REGX52.H #include string
[单片机]
MSP430F249数码管显示
/****************************************************************** ** ** File : Display.c | Display led segment | ** Version : 1.0 ** Description : led 7 segment display ** Author : LightWu ** Date : 2013-4-9
[单片机]
单片机 MSP430 G2553 HC595 数码管 SPI 通信
模拟SPI接法是任意的: //HC595 //VCC-VCC GND-GND RCK-P21 SCK-P22 DIO-P20 硬件SPI,调节成3线SPI模式 8bit就可以通信: P14 P12 分别是SPI时钟线和主机输出线。 //HC595 //VCC-VCC GND-GND RCK-P21锁存信号,传输一次完成后给595锁存信号 SCK-P14 SPI时钟线2553拉起 DIO-P12 SPI输出给595
[单片机]
C51学习笔记,数组和指针的程序设计
终于说到了指针。指针是C语言的精华部分,如果没有指针,c语言对底层的许多操作将无法完成。也是因为指针的存在,使得c语言看起来并不那么高级,因为指针操作的对象的是内存地址,想要熟练地进行指针操作,必须考虑到内存等偏硬件方面的东西。当然,也不需要了解过多。但是,数据结构这一关还是要过的。我对数据结构方面了解尚浅,就不多说了。数组与指针的关系如此复杂,让我不得不照着书来写这一篇笔记了。 一、数组不等于指针 C语言中,对数组的操作,是仿照指针的模式进行的。但是需要记住一点,数组不等于指针。对于一维数组a ,指向数组的指针p=a来说,他们之间最大的区别在于,数组方式使用数组名a(同时也是数组的首地址)对数组进行直接的访问和操作,而指针方式使
[单片机]
用PIC单片机制作的电源定时插座
本电源定时插座有三个操作按键S1、S2、S3,并用两位LED 数码管显示定时时间。其中S2、S3两个按键分别预置、设定个位和十位数的定时时间值,设定的定时时间调整范围是0 ~ 99 分钟,用一个S1 按键做定时插座的"启动/ 停止"操作按键。 并且程序中添加了蜂鸣器提示音部分,该部分程序功能是:每按下一次S1、S2 或者S3 按键,蜂鸣器就会发出"嘀"的一声响,以确定按键按下的有效性。 计时程序采用倒计时递减计数的工作方式工作,程序在运行时,时间每过一分钟数码管的个位显示值减"1",每过十分钟数码管"十位显示值"减"1". 预设定时时间一到,插座自动切断AC220V 电源输出,同时蜂鸣器报警。直至再次按下"启动/ 停止"按键
[单片机]
LCD1602液晶秒表C51程序
此程序是基于51hei单片机开发板上面写的,如需要移植到自己的电路上,修改相应的端口即可 *********************************************************************** * @file main.c * @author xr * @date 2014年5月8日22:11:33 -- 2014年5月9日12:03:49 * @version V1.2.3 * @brief LCD1602液晶跑表 单片机STC89C52RC MCU 晶振 11.0592MHZ **************************************
[单片机]
C51指针与A51汇编接口之间关系研究
最近在研究单片机C51对汇编的接口问题。char和int等都比较简单,使用寄存器或固定地地址传值都是可以的,具体可以参考keil的C51 user‘s guide。本篇短文主要重点讨论一下A51下如何遵循C51的接口标准来实现C51的指针。主要原因是,现在用C51的人越来越多,大家都图省事和方便。网上面有关A51的资料少得可怜,知道用汇编来实现代码优化的少之又少。本人是一直坚持用汇编写东西的。在嵌入式领域,很多东西都与硬件有关,多知道点底层东西还是有好处。 使用工具主要为keil,在windows 7环境下。C51测试程序如下: #include reg52.h unsigned pos; bit abc
[单片机]