小白学习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仿真二
最新文章
- 北京集训:20180323
- javascript正则表达式介绍
- silverlight turntable
- 创建JPA工程时提示:at least one user library must be selected
- nginx location匹配优先级_一分钟搞清楚:Nginx之Location优先级
- CSS3属性之——filter
- 【matlab】访问结构体内部元素
- ArcGIS学习总结(17)—— 栅格数据条件计算及Con函数应用
- 这一刻只想好好做个平凡的人
- 低级鼠标钩子WH MOUSE LL
- 格子玻尔兹曼机(Lattice Boltzmann Method)系列5:LBM多相流实例之Shan-Chen模型
- python 基于smb通信协议实现NAS服务器文件上传和下载
- react中数组添加值,超时设置
- matplotlib显示宋体和Times New Roman
- 关于本人树莓派捣鼓过程中的一些记录
- 靠2块钱月入4万:越朴素的方法,往往越挣钱
- 第9周--项目1-Complex类
- Microsoft Edge浏览器不显示收藏夹栏 解决方法
- 开始愉快的学习编程了
- 2021.10.9小米一面