项目3—数码管0~9999显示(包含数码管原理)
数码管原理:
数码管按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、3位、4位、5位、6位、7位等数码管;
按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。数码管每段相当于LED灯。
如图所示:
共阳和共阴相反
利用8421码,如图所示
例如,你要显示数字1,共阳数码管就是B和C为0,其他为1,高四位为8+4+2+1=15,为F;
低四位就是8+0+0+1=9,所以为9,所以显示1,就是0XF9.
其他数字同理,所以从0~9分别为0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,共阴相反。
因为说数码管是由LED组成,画仿真时为了更体现出原理,可以这样画,和一个数码管一样。
如图:
数码管0~9999显示 程序和仿真如下:
#include<reg51.h>
unsigned char senven_seg[] =
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90
};
unsigned int i = 0;//这个为初始值,可以设置初始值为你想要的数字
void delay(unsigned int x)
{while(x--);
}
void main()
{while(1){P2 = 0x01;P0 = senven_seg[i / 1000];delay(1000);//千位P2 = 0x02;P0 = senven_seg[i / 100 % 10];delay(1000);//百位P2 = 0x04;P0 = senven_seg[i / 10 %10];delay(1000);//十位P2 = 0x08;P0 = senven_seg[i % 10];delay(1000);//个位i++;if(i > 9999)i = 0;}
}
要显示四个数字,要进行取余取整,来判断是个位还是十位百位千位。
仿真如图:
运行程序:
数码管显示0~9999
感谢观看,本人是如今是一个学生,会持续更新这个方面的内容,有问题的我可以帮忙的尽量会帮,还有很多不足的地方,求大佬多多指正!!!!
项目3—数码管0~9999显示(包含数码管原理)相关推荐
- 单片机 数码管0~F显示
#include <reg51.h> #define GPIO_DIG P0 //段选 #define GPIO_PLACE P1 //位选 #define uint unsigned i ...
- 【单片机】用定时器以间隔500ms在8位数码管上依次显示0、1、2、3、...C、D、E、F,重复
代码如下 #include <REGX52.H> #define uchar unsigned char #define uint unsigned int sbit LSA=P2^2; ...
- STC89C52单片机 点亮两个数码管,可以显示 00——10 共 11 个数字
手动显示 #include <reg52.h>//包含51头文件 #include <intrins.h>//包含移位标准库函数头文件#define uint unsigned ...
- AngularDart4.0 指南- 显示数据
2019独角兽企业重金招聘Python工程师标准>>> 您可以通过将HTML模板中的控件绑定到Angular组件的属性来显示数据. 在这个页面中,您将创建一个包含英雄列表的组件. 您 ...
- 【龙芯1B】:LCD显示图片文字背景色前景色、小创语音控制lcd显示、数码管倒计时
项目场景: 闲来无事,写了几个关于嵌入式技能大赛的任务.希望对大家有所帮助.本文开发板由百科荣创的龙芯1b开发板支持,关于嵌入式技能大赛的开发板. LCD显示图片&文字&背景 ...
- SSM项目实战【从 0 到 1】:个人博客
文章目录 前言 一.项目简介 二.项目技术栈 三.准备工作 1.Spring Boot 项目创建 2.mybatis 配置 3.数据库创建 四.基本框架搭建 1.实体层(model) 2.控制器层(c ...
- 【 FPGA 】控制数码管动态扫描显示的小实验
实验的功能很简单,就是让4个数码管每隔1s递增显示,使用动态扫描的方式来实现. 从这个功能的描述可以看出,我们首先要写一个计数器模块,来让计数值每隔1s增加1,暂时实现的是16进制的东西,从0到f,之 ...
- 51单片机按键控制数码管0~9_7种常见的51单片机时钟电路图
在MCS-51单片机片内有一个高增益的反相放大器,反相放大器的输入端为XTAL1,输出端为XTAL2,由该放大器构成的振荡电路和时钟电路一起构成了单片机的时钟方式. 电子学习资料大礼包mp.weix ...
- oracle百分比变成小数,oracle中计算百分比,并同时解决小数点前0不显示的问题...
select a.catalog_name,decode(substr(trunc((a.s/b.count2),4)*100||'%',0,1),'.',replace(trunc((a.s/b.c ...
最新文章
- 解决 apache 2.4.1 无法解析shtml中的expr指令问题
- python 对象类型有哪些?
- ASCII码八、十、十六进制对照表
- 【pyqt5学习——信号与槽】实例计时器(解决界面卡顿问题)
- 动态规划_数字三角形
- 【软件质量】对this或字符串加锁的弊病
- linux 分区个数限制,Linux分区个数限制[转载]
- 【九】Jmeter 实现验证码登录
- 【LeetCode题解】排序
- 浏览器汇总介绍--Opera
- 机器码(machine code)和字节码(byte code)是什么?
- 图形学人物简史:两位图灵奖与奥斯卡得主的图形学研究往事
- php邮箱发送,PHP的邮箱发送
- SHON WEBB:真正的自律,就是将这两件事做到极致
- UI设计图的标注工具大比拼
- 魔兽世界网站服务器搭建,网游服务器搭建方案图解(以魔兽世界为例)(示例代码)...
- 基于Flink的实时数据消费应用、功能质量保障方法
- 2019年别离职、别创业、别投资,收藏好这些热点好好干!
- 2021年第十二届蓝桥杯模拟赛(第四期)题目和解析
- 展讯的8825平台 在TP上实现距离传感器的功能