1.分类

数码管分 共阳数码管 和 共阴数码管。

数码管其实就是8个段的发光二极管,只点亮其中的几个段即可显示出数字或字母用来表达信息。

共阳数码管:把8段LED的正极并在一起作为公共端连接在5V上(共阳极),然后8个LED通过单片机的8个IO端口输出高低电平使其决定点亮哪几个段。原理跟第二章的8盏LED硬件连接一样。

共阴数码管的介绍参考《手把手教你学51单片机》文档5.3.1节即可,因为我们的开发板用的是共阳数码管,所以共阴数码管在这里就不讲解了。

2.硬件连接

我们先拿一个数码管进行简单讲解

上图是开发板上6个数码管中最右端那个的硬件连接简化图,我们叫它数码管0以好区分。引脚1和6(也就是A A)做为所有内部LED的公共端,此时IO0输出低电平三极管导通,那么这个公共端就接上了5V,而通过P0的8个IO端口中哪几个IO端口输出0数码管中的哪几个段就被点亮。

3.代码分析

我们把第二章第4讲的代码复制过来,修改三八译码器的逻辑选择,使IO0输出为0,也就是P1.2输出0,P1.1输出0,P1.0输出0。但这样之前讲的8盏小灯就不能被点亮了,因为三八译码器一次只能使其中的IOx输出低电平,其他7个IO都输出高电平了。

如果我们要让数码管显示数字0,那么看到上图所示,只需a,b,c,d,e,f段的LED点亮,剩下g段和dp段不点亮即可。

对应的二进制值为 11000000,十六进制就为0xC0。把0xC0赋值给P0即可点亮最右端的数码管0显示数字0。#include

sbit ADDR2 = P1^2;

sbit ADDR1 = P1^1;

sbit ADDR0 = P1^0;

sbit ENLED = P1^4;

sbit ADDR3 = P1^3;

void main()

{

ADDR3 = 1;//使能三八译码器

ENLED = 0;//

ADDR2 = 0;//*****************************************************************************

ADDR1 = 0;//让三八译码器的IO0输出低电平。此时的小灯是不可能被点亮了,因为IO6输出高电平了

ADDR0 = 0;//*****************************************************************************

P0=0xC0;  //使最右端的数码管0显示数字0

while (1);

}

c语言数码管,数码管原理相关推荐

  1. tm1650中文资料_[STM8入门资料]第53讲 TM1650 LED数码管驱动芯片工作原理

    刘洋[剑齿虎]STM8开发板学习笔记 第53讲TM1650 LED数码管驱动芯片工作原理 目 录 53.1 特性描述 TM1650是一种带键盘扫描接口的LED(发光二极管显示器)驱动控制专用电路.内部 ...

  2. 嵌入式硬件入门——LED数码管(工作原理+静态驱动)

    LED数码管是一种半导体发光器件,其基本单元是发光二极管(LED) 文章目录 数码管介绍 1.数码管的分类 2.数码管内部构造及原理 数码管硬件知识 1.数码管电压与电流 2.数码管典型电路 数码管的 ...

  3. atitit.js javascript 调用c# java php后台语言api html5交互的原理与总结p97

    atitit.js javascript 调用c# java php后台语言api html5交互的原理与总结p97 1. 实现html5化界面的要解决的策略1 1.1. Js交互1 1.2. 动态参 ...

  4. java swing调用H5_atitit.js javascript 调用c# java php后台语言api html5交互的原理与总结p97...

    atitit.js javascript 调用c# java php后台语言api html5交互的原理与总结p97 1.实现html5化界面的要解决的策略 1.1.Js交互 Firefox与Chro ...

  5. C语言学习笔记---001C语言的介绍,编译过程原理,工具等

    C语言学习笔记---001C语言的介绍,编译过程原理,工具等 创梦技术交流平台:资源下载,技术交流,网络赚钱: 交流qq群:1群:248318056 2群:251572072 技术交流平台:cre.i ...

  6. c语言单片机驱动数码管程序,51单片机IO口直接驱动LED数码管方法

    1.实验任务 如图13所示,利用AT89S51单片机的P0端口的P0.0-P0.7连接到一个共阴数码管的a-h的笔段上,数码管的公共端接地.在数码管上循环显示0-9数字,时间间隔0.2秒. 2.电路原 ...

  7. c语言共阴极数码管数字6,共阴数码管 显示数字 C语言程序

    共阴数码管显示数字C语言程序#include void Delay(unsigned char a) { unsigned char i; while( --a != 0) { for(i = 0; ...

  8. c语言 不用锁存器 数码管倒计时,倒计时器课程设计.doc

    倒计时器课程设计精选 河南机电高等专科学校 课程设计报告书 课程名称: 单片机原理及系统设计 课题名称: 倒计时器课程设计 专 业: 计算机控制技术 班 级: 学 号: 姓 名: 成 绩: 2013 ...

  9. 两位数码管秒表c语言,两位数码管显示计时器.doc

    两位数码管显示计时器 一.题目 用定时0的方式1实现数码管两位59S循环计时(计时器) 二.思路方案 本实验利用单片机的定时器/计数器定时和计数的原理,通过proteus 仿真软件来实现模拟实现.模拟 ...

最新文章

  1. 1小时学会:最简单的iOS直播推流(十)librtmp使用介绍
  2. 2021-03-01 Matlab 多项式的根求解
  3. 安装 | Anaconda3下载链接
  4. 学习《送东阳马生序》
  5. Android Annotation注解详解
  6. wxWidgets:stream流类概述
  7. 第二阶段团队项目冲刺第三天
  8. WebIDE discovery when destination is selected from dropdown list
  9. 【遥感物候】C#遥感数据GIMMS 3G NDVI头文件批量生成器(几何校正)
  10. springboot项目 tomcat8.x 频繁宕机 原因分析
  11. php 内容编码错误,PHP输出缓冲,ob_gzhandler引起的内容编码错误?
  12. Spring的入门学习笔记 (注解)
  13. spring-aop 的注释用法
  14. javaweb简单的登录增删改查系统_国产化之路统信UOS /Nginx /Asp.Net Core+ EF Core 3.1/达梦DM8实现简单增删改查操作...
  15. android UI进阶之布局的优化
  16. 执行stap测试例报错:“insmod: can‘t insert ‘xx.ko‘: invalid module format”
  17. openwrt的源码下载及其编译 (一)
  18. JSP常用内置对象方法
  19. 小甲鱼PE详解之资源(PE详解11)
  20. 学习总结——按下按键灯亮,再次按下按键,灯灭

热门文章

  1. 【牛客网】DB测试题+英文
  2. 小程序引流利器——好友砍价
  3. 电脑入门必懂的常识4
  4. 派遣和二分_改派与二次派遣的区别
  5. 月薪10K、15K、20K的Java程序员分别需要掌握哪些技术?
  6. czt算法c语言实现,基--2按频率抽取的FFT算法Decimation-in-Frequency(DIF).ppt
  7. MongoDB 未授权访问漏洞利用
  8. 互联网、政务外网、政务专网、政务内网概述
  9. H5 Plus移动APP开发之原理介绍-早会分享
  10. Java技术类校招面试题汇总:用java实现发送手机验证码