小白学习51单片机(第一天) 关于数码管
1.静态数码管显示(单个数码管和四位一体数码管)
·公共端选中给电平 位选端逐个点亮
·根据共阳共阴(箭头对的是阴极,一般51都是共阴)选择
·在同个时刻 只有一个数码管可以被点亮 即使有多个被点亮也只能是一样的数字,若想显示多个不同数字则需要动态显示数码管 根据人眼跳动时间
·1.公共端:译码器LS138 三位输入 八位输出 节约单片机的L口
GN是使能端 表示能够正常工作
CBA由高位到低位 由二进制到十进制转换至输出
C |
B |
A |
Y |
0 |
0 |
0 |
Y0-(01111111) |
1 |
0 |
0 |
Y4-(11110111) |
0 |
1 |
1 |
Y3-(11101111) |
此时注意译码器输出是低电平有效
2.位选端:双向数据缓冲器用来提高驱动能力 P口变成控制信号了而不是驱动,此时根据芯片的电源给力驱
LE是高电平 就将左边数据送到右边 否则则读出右边数据
高电平驱动能力弱 低电平能力更强
·滤波电容 104=10 0000pf稳定电源 确保电路稳定性
·限流电阻
总结:首先确定第几位数码管亮灯即确定Y0-,再通过译码器确定输入的CBA电平,再选择位选端呈现数字(数据高位对端口高位 由于数码管位选端g是高位 故对P0_7)
可通过数组或者选择循环来优化程序,达到便利控制
2.动态数码管:需要消影
·位选 段选 位选 段选 位选 段选(串位)------位选 段选 清零 位选 段选 位选 段选
优化程序 需要延迟 否则数码管会比较暗
·数码管驱动方式:单片机直接扫描(耗费CPU时间)+专用驱动芯片(TM1640)
#include <REGX52.H>unsigned char NixieTable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};void Delay(unsigned int xms) //@12.000MHz
{unsigned char i, j;while(xms--){i = 2;j = 239;do{while (--j);} while (--i);}
}void Nixie(unsigned char Location,Number)//位置 显示的数字
{switch(Location){case 1:P2_4=1,P2_3=1,P2_2=1;break;case 2:P2_4=1,P2_3=1,P2_2=0;break;case 3:P2_4=1,P2_3=0,P2_2=1;break;case 4:P2_4=1,P2_3=0,P2_2=0;break;case 5:P2_4=0,P2_3=1,P2_2=1;break;case 6:P2_4=0,P2_3=1,P2_2=0;break;case 7:P2_4=0,P2_3=0,P2_2=1;break;case 8:P2_4=0,P2_3=0,P2_2=0;break;}P0=NixieTable[Number];//调用子程序,如果数字是0,刚好是第0个变量Delay(1);//延迟1ms再清零,否则数码管会变暗P0=0x00;//进行清零
}void main()
{while(1){Nixie(1,1);
// Delay(20);Nixie(2,2);
// Delay(20);Nixie(3,3);//不断扫描 是个循环过程
// Delay(20);延时200ms的时候会快速闪动,延迟20ms的时候慢速闪动导致会串位现象很明显,因此需要进行消影}
}
小白学习51单片机(第一天) 关于数码管相关推荐
- 两位动态数码管电子秒表c语言,清翔电子51单片机6课动态显示数码管作业秒表...
单片机数码管电子钟单片机数码管电子钟单片机数码管电子钟单片机数码管电子钟单片机数码管电子钟单片机数码管电子钟单片机数码管电子钟单片机数码管电子钟单片机数码管电子钟 相关下载链接://download. ...
- 如何自己学习51单片机
第1章 如何学习单片机 在错误的道路上日夜兼程,最终也无法成功,方法和思路绝对是最重要的.一些学技术的同学,往往看到这类章节会直接跳过去,因为大多数类似章节都是废话连篇.但是,今天在这里作者可以很负责 ...
- 零基础学习51单片机
零基础学习51单片机 前言 51单片机是一款非常经典的8位单片机,广泛应用于各种嵌入式系统和电子产品中.本文将从零开始,以简明易懂的方式介绍51单片机的基本原理.基本语法和应用. 什么是单片机 单片机 ...
- 【深入学习51单片机】二、一个极简RTOS源码分析
目录 一.书接上回 二.初始化过程 三.任务的创建 四.任务的切换 五.任务的等待(系统延时) 一.书接上回 上回写了一个测试程序,可以直观的体会PC指针和堆栈指针的变化和影响.这章写下参考程序的过程 ...
- 51单片机-8段四位数码管
51单片机-8段四位数码管 8段数码管工作原理 8段四位数码管工作方式 下面是本人自写的四位数码管模板程序 模板程序 应用方法 8段数码管工作原理 我们最常用的是七段式和八段式LED数 ...
- 51单片机c语言学习感想,学习51单片机心得体会
在这里给大家分享一下学习51单片机心得体会: 1.我从不说51是基础,如果我这么说,也请把这句话理解为微机原理是基础. 2.对51单片机的操作本质上就是对寄存器的操作,对其他单片机也是如此.库只是一个 ...
- 用 C学习51单片机——记录 4、中断系统 (1)外部中断
用 C学习51单片机--记录 4.中断系统 用 C 学习51单片机过程与自我拓展--记录(STC89C52芯片) 前言--其实51并不太难,多看 多写代码,多调试,就一定会有所感悟. 所以我在此留下一 ...
- 74hc164驱动数码管c语言程序,基于51单片机的74HC164驱动数码管显示程序与仿真
基于51单片机的74HC164驱动数码管显示程序与仿真 基于51单片机的74HC164驱动一位数码管显示程序与仿真 #include #include #define uchar unsigned c ...
- 51单片机AD转换pcf8591+数码管显示+Proteus仿真二
51单片机AD转换pcf8591+数码管显示+Proteus仿真二
最新文章
- python和c有什么区别_c 跟 python的区别有哪些
- .NET Core开发实战(第17课:为选项数据添加验证:避免错误配置的应用接收用户流量)--学习笔记...
- 解决django3.x manage命令makemigrations无法创建数据表
- 信息学奥赛一本通1159:斐波那契数列
- matlab仿真电子秤,基于51单片机电子秤的代码
- 嵌入式Linux应用开发完全手册 pdf 韦东山
- html向上移动图片代码,图片随网页上下移动的代码实例
- ccs 动态梦幻西游
- 大小写字母c语言,C语言 大小写字母转换
- 如何自己编写一个交通仿真软件(一)火种。
- 搭建自己的V Rising自建服务器,以及常见的V Rising服务器问题解决方案
- 坚持不懈2 android游戏,坚持不懈的赛跑者
- 洛谷 P3975 [TJOI2015]弦论 解题报告
- Recyclerview嵌套Recyclerview,条目显示不全和宽度不能铺满不能同时满足
- 2008年七月七日,按照要求我提前进入中心,今天就是我博士的第一天
- 利用百度云盘同步Zotero
- JAVA学习笔记-----Thirteen(正则表达式,Math)
- 沧海一粟小组(第三次作业)
- 市面主流软件静默安装参数
- c#开发的漂亮高仿QQ打包安装程序界面