51单片机 静态数码管显示
本章博客讲述使用51单片机编写程序静态数码管显示
1.新建工程,选择芯片型号,这里注意——为了防止出现在插入头文件reg时出现某些引脚不定义的情况
可尝试切换为AT89C52型号的芯片,插入头文件即为reg52,当然,如果使用的是51型号的编译后成功的,也是可以的。
2.实现八位数码管上第三位显示6
首先看原理图,由于是第三位易知对应的是LED6
之后再看
结合两张图可以看到要使得第三位显示为6
LED6对应Y5,Y5对应的二进制为101,要让低电平Y5通电
对应由高位到低位得
P2_4=1;P2_3=0;P2_2=1;
之后再考虑排阻P0可得:由P07到P00,abcdefg dp——0111 1101
则有
P0=0x7D; //0111 1101
编译后的效果
注:这里的LED灯亮可能是由于引脚冲突,看数码管显示
3.同理,实现第四位显示6
只需将P2_2=0;修改即可
P2_2=0;
4.还可以采用C语言当中的编写子函数的方式来实现——switch语句
C51子函数:将完成某一种功能的程序代码单独抽取出来形成一个模块,在其它函数中可随时调用此模块,以达到代码的复用和优化程序结构的目的
其形式为:
代码部分:
#include <REGX52.H>
unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
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];//P0=0x7D;
}void main()
{Nixie(7,2);//Nixie(2,3);while(1){}}
case部分是进行二进制的增加,在此之前还定义了一段数组表示数码管段码表
在主函数中,可以对想要实现对第几位数码管进行修改
实现效果:
第二种方法最大的优点是:使用子函数优化程序结构
51单片机 静态数码管显示相关推荐
- 普中科技51单片机_【笔记】普中科技-51单片机-静态数码管显示
#include <reg51.h> #include <intrins.h> typedef unsigned char u8; typedef unsigned int u ...
- 51单片机+DS18B20+数码管显示+串口通讯+Proteus仿真
51单片机+DS18B20+数码管显示+串口通讯+Proteus仿真 本实验通过51单片机读取DS18B20温度传感器的温度,然后通过数码管显示,并通过串口,将读取到的温度数据发送出去. 本案例需要使 ...
- 51单片机实现数码管显示小数
51单片机实现数码管显示小数 要求 1 Proteus 面向编程的模型搭建 2 代码实现 2.1. 实现数码管刷新 2.2 对小数进行分解的函数 3 测试用例 4 仿真结果 要求 要求1:根据整数部分 ...
- Proteus:单片机静态数码管显示
题目概述: 单片机静态数码管显示. 编程: #include <reg51.h> #define uchar unsigned char #define uint unsigned int ...
- 51单片机七段数码管显示时钟无按键控制—①—74HC595版
参考链接: 51单片机七段数码管显示时钟加按键控制-③-74HC595版 51单片机七段数码管显示时钟加按键控制-②-74HC595版 文章目录 一.实验内容: 二.实验分析: 三.仿真图: 四.源代 ...
- 基于51单片机的数码管显示方案
这一次给大家带来的项目是课堂作业级别的51单片机数码管显示,本次的项目着重于讲解原理,让大家明白单片机的io对于外界设备的控制是如何进行的. 共阳极和共阴极数码管的差异 (1)驱动方法的差异.一个数码 ...
- 51单片机 动态数码管显示
本章博客写的内容主要围绕动态数码管显示,动态数码管显示与静态数码管显示比较稍有变化,主要在添加延时函数这点上 1.首先将上一章节使用子函数方法的代码复制过来 将Nixie( , )移到下方while循 ...
- 51单片机控制数码管显示
前言 今天学习51单片机的数码管模块 我的学习板上面的数码管是4为一体由12个引脚控制的模块. 今天就编程控制它显示我们想要的输出. 数码管本质上是由8个LED拼接而成的,他们分别叫做a,b,c,d, ...
- 普中51单片机按键-数码管显示
基于普中单片机按键-数码管显示 简介 1.硬件部分 普中单片机开发板 数码管 独立按键 2.软件部分 keil软件 硬件部分 普中单片机开发板 数码管 独立按键 (这些都是开发板的最基本的配置) 软件 ...
最新文章
- 蓝色起源送90岁《星际迷航》舰长扮演者上太空,刷新太空旅客最高年龄纪录...
- asp格式化日期函数
- 《系统集成项目管理工程师》必背100个知识点-20项目管理计划的主要用途
- VS2017创建Linux项目实现远程GDB调试
- Zepto 与 jQuery 的区别 小结
- 【Computer Organization笔记25】I/O:程序直接控制,程序中断方式,直接存储访问(DMA),通道控制方式
- win10 xampp mysql_Win10系统在本地安装XAMPP的方法
- 软件测试的步骤和方法
- Spring AOP实现原理
- 超图高性能分布式渲染技术解密与应用
- 温度对二极管伏安特性的影响
- 专利写作技巧以及流程
- 听小S教你如何瘦小腿
- 如何测试充电宝输出电压-20210127
- 【APP自动化测试】Python + Appium + 模拟器 +UiAutomatorViewer 实现APP自动化测试
- Vue 引入js文件并使用
- matlab 已实现极差波动,关于黄金期货论文范文写作 中国黄金期货价格SVR智能预测相关论文写作资料...
- MATLAB批量处理.nii文件----批量.nii转为jpg格式
- [ 数据结构 -- 手撕排序算法第四篇 ] 选择排序
- 要么承受自律的苦,要么承担自责的悔。
热门文章
- 学习英特尔线程构建模块开源2.1库
- 求圆形矩形面积java_Java求矩形面积和圆形面积的异常处理实例
- L2-025 分而治之
- 根据百度地图进行IP定位获取地址
- linux之修改静态ip,修改网卡名称为eth0,以及iso装系统后的配置ip
- 导入mysql 1044_MySQL导入sql文件错误#1044
- 金字塔pyramid
- 只有170字节,最小的64位Hello World程序这样写成
- 在…视域下是什么意思_视阈是什么意思论文范文 有关教师在社会视域中的角色认知毕业论文写作资料...
- 百度 oppo 滴滴出行 面试问题总结 阿里