一、数码管静态显示
1.原理:数码管无非就是八块发光二极管集成在
了一起,如右图所示,数码管有共阴极
和共阳极数码管之分。

共阴极数码管:将八只发光二极管的负极通过一
根总线连接在了一起 , 然后每只二极管
的正极被引了出来,通过二极管的单向导
通性可知,当对应数码管的二极管段接入
高电平时,二极管点亮。
共阳极数码管:八只发光二极管的正极通过一根总线连接在了一起 , 然后每只二极管的负极被引了出来,通过二极管的单向导通性可知,当对应数码管的二极管段接入低电平时,二极管点亮。
(以共阴极数码管为例)显示数字 “1 ” ,那也就是让 b 和 c 亮,编程的话,即是0x06,这样一来给了 b和 c 段高电平,实现了点亮数字 “1”;则对应表格

2.锁存器74HC573:11引脚(LE)控制着开、关状态,D0-D7为输入,Q0-Q7为输出,在LE = 1,即输入高电平时,输入端=输出端,输入是什么,输出也就原封不动的输出;在LE = 0 ,即输入高电平时,大门关闭,实现锁存,不再输出。

在实现数码管的静态显示中,我们用到了两个锁存器,两个I/O口,P2.6和P2.7,分别是位选和段选。位选,也就是位置的选择,选择控制的数码管;段选,就是我们常说的控制一个数码管中的a,b,c…g 段,使其显示数字。
3.编程

二、80C51的中断系统
1、80C51的中断系统有5个中断源(8052有6个),2个中断优先级,可实现二级中断嵌套。

⑴ (P3.2)可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上有有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。
⑵ (P3.3)可由IT1(TCON.2)选择其为低电平有效还是下降沿有效。当CPU检测到P3.3引脚上有有效的中断信号时,中断标志IE1(TCON.3)置1,向CPU申请中断。
⑶ TF0(TCON.5),片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,置位TF0,并向CPU申请中断。
⑷ TF1(TCON.7),片内定时/计数器T1溢出中断请求标志。当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断。
⑸ RI(SCON.0)或TI(SCON.1)串行口中断请求标志。当串行口接受完一帧串行数据时置位RI,或者当串行口发送完一帧串行数据时置位TI,向CPU申请中断。

2、中断请求标志
⑴TCON的中断标志

IT0(TCON.0),外部中断0触发方式控制位。
当IT0=0时,为电平触发方式。
当IT0=1时,为边沿触发方式。(下降沿有效)
IE0(TCON.1),外部中断0中断请求标志位。
IT1(TCON.2),外部中断1触发方式控制位。
IE1(TCON.3),外部中断1中断请求标志位。
TF0(TCON.5),定时/计数器T0溢出中断请求标志位。
TF1(TCON.7),定时/计数器T1溢出中断请求标志位。

⑵SCON的中断标志

RI (SCON.0),串行口接收中断标志位。当串行口接收数据时,每接收完一帧串行数据,由硬件置位RI,向CPU申请中断,CPU响应中断时,不能自动清除RI,RI必须由软件清除。
TI (SCON.1),串行口发送中断标志位。当串行口发送数据时,每发送完一帧串行数据,由硬件置位TI,向CPU申请中断,CPU响应中断时,不能自动清除TI,TI必须由软件清除。
3、80C51中断的控制
⑴中断允许控制
CPU对中断系统所有中断以及某个中断源的开放和屏蔽,是由中断允许寄存器IE控制的。

EX0(IE.0),外部中断0允许位。
ET0(IE.1),定时/计数器T0中断允许位。
EX1(IE.2),外部中断1允许位。
ET1(IE.3),定时/计数器T1中断允许位。
ES(IE.4),串行口中断允许位。
EA(IE.7),CPU中断允许(总允许)位。
⑵中断优先级控制
80C51单片机有两个中断优先级,可以实现二级中断服务嵌套。每个中断源的中断优先级,都是由中断优先级寄存器IP中的,相应位的状态来规定的。
三条原则:
CPU同时接收到几个中断时,首先响应优先级别最高的中断请求
正在进行的中断过程,不能被新的同级或低优先级的中断请求所中断
正在进行的低优先级中断服务,能被高优先级中断请求所中断
为了实现上述后两条原则中断,系统内部设有两个用户不能寻址的优先级状态触发器,其中一个置1,表示正在响应高优先级的中断,他将阻断后来所有有的中断请求,另一个置1,表示正在响应低优先级中断,他将阻断后来所有的低优先级中断请求。

PX0(IP.0),外部中断0优先级设定位。
PT0(IP.1),定时/计数器T0优先级设定位。
PX1(IP.2),外部中断1优先级设定位。
PT1(IP.3),定时/计数器T1优先级设定位。
PS(IP.4),串行口优先级设定位。
PT2(IP.5),定时/计数器T2优先级设定位。

三、数码管动态显示
动态数码管就是让人感觉多个数码管一起亮
动态数码管显示和静态基本类似
就是多个数码管切换的过程,利用人的视觉效果差,来感觉数码管是一起亮的

#include <reg52.h>
#define uchar unsigned char
#define uint  unsigned int
sbit we = P2^7;
sbit du = P2^6;
void delay(uint x)
{ uchar y;for(x;x>0;x--)for(y=110;y>0;y--);
}uchar code table[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void main()
{               while(1){//第一位数码管显示1P0 = 0xfe;//1111 1110 第一位数码管显示,注意数码管的排序,P0.0对应连接的是左边第一位数码管we = 1;//打开位选we = 0; //关闭位选P0 = table[1];du = 1;   //打开段选du = 0;  //关闭段选delay(2);//延时//第二位数码管显示2P0 = 0xfd;//1111 1101  只选通第二位数码管we = 1; //打开位选we = 0;  //关闭位选P0 =table[2]; //显示2du = 1;//打开段选du = 0;    //关闭段选delay(2);//延时 //第三位数码管显示3P0 = 0xfb;// 1111 1011只选通第三位数码管we = 1; //打开位选we = 0;  //关闭位选          P0 =table[3]; //显示3du = 1;//打开段选du = 0;  //关闭段选delay(2);//延时P0 = 0xf7;//1111 0111  只选通第四位数码管we = 1;    //打开位选we = 0;  //关闭位选P0 =table[4]; //显示4du = 1;//打开段选du = 0;    //关闭段选delay(2);//延时P0 = 0xef;//1110 1111  只选通第五位数码管we = 1;    //打开位选we = 0;  //关闭位选P0 = table[5]; //显示5du = 1;//打开段选du = 0;   //关闭段选delay(2);//延时P0 = 0xdf;//1101 1111  只选通第六位数码管we = 1;    //打开位选we = 0;  //关闭位选P0 =table[6]; //显示6du = 1;//打开段选du = 0;    //关闭段选delay(2);//延时}
}

51单片机数码管显示相关推荐

  1. 基于51单片机数码管显示

    基于51单片机数码管显示 ## 数码管显示原理 数码管(LED Segment Displays)由多个发光二极管封装在一起组成"8"字型的器件,引线已在内部连接完成,只需引出它们 ...

  2. 51单片机数码管显示60秒倒计时(C语言)

    51单片机数码管显示60秒倒计时(C语言) 基于普中51单片机开发板,运用定时器/计数器0和1,实现60秒的倒计时和LED灯0.5s间隔闪烁 文章目录 51单片机数码管显示60秒倒计时(C语言) 前言 ...

  3. 单片机c语言数码管显示5,51单片机数码管显示实验报告(5页)-原创力文档

    51单片机数码管显示实验 实验内容: 编写程序让8只数码管初始显示0,每隔大约1s加1显示(可以用延时函数实现),到数码管显示9后,再从0开始显示,如此循环反复. C语言程序 #include #de ...

  4. 基于51单片机1602温度显示时钟

    基于51单片机LCD1602温度显示时钟 要在1602上显示时间和温度先要了解1602是如何显示的.详情可以参考我之前的文章基于51单片机1602显示 :时间显示可以用时钟芯片DS1302,但是此次我 ...

  5. 8脚51单片机DIY时间显示+闹钟技术分享(一)

    @[8脚51单片机DIY时间显示+闹钟技术分享(一) 最近因为家里闹钟被小朋友摔坏了,所以想着买来买去还是没什么新意,不如自己做一个,这样不是更有意义吗? 那就开始吧,想着自己做就可以用最小资源来实现 ...

  6. 51单片机数码管交通灯倒计时c语言,51单片机数码管倒计时模拟交通灯汇编程序...

    /********************************************************************** 51单片机数码管倒计时模拟交通灯汇编程序 LED数码管为 ...

  7. 51单片机 外部时钟_基于51单片机的LCD12864显示模拟时钟

    今天要分享的仿真和程序是基于51单片机的LCD12864显示模拟时钟.公众号之前也分享过数字时钟,但是那些时钟都是采用数字显示的形式来显示时间,而今天分享一个采用LCD12864显示的模拟指针式时钟. ...

  8. 基于51单片机的LCD1602显示温湿度

    51单片机基础难点知识理解后,直接通过下面3个小项目可以更好理解51单片机.中断 定时器 串口甚至是基础的IO输入输出都有结合,再加上一些外设模块的学习(如1602显示屏,L298N电机驱动等) 项目 ...

  9. 【嵌入式】51单片机+1602+dht11显示温湿度

    51单片机+1602+dht11显示温湿度例程代码如下: /*****************************************************************联系:请勿 ...

最新文章

  1. 专注年轻人的AI学习平台
  2. anasys hpc集群_这可能是最简单的并行方案,如何基于 AWS ParallelCluster 运行 ANSYS Fluent...
  3. core和node开发小程序_成都小程序开发:微信小程序开发要多少钱?
  4. 将 app 打包成 deb 发布安装
  5. WCF 之 消息契约(MessageContract)
  6. mysql查询没有权限试图_MySQL迁移后提示查询view权限不足的处理
  7. mac下载百度网盘文件限速_百度网盘限速怎么办 (20200412 )
  8. 使用Python中的mock模块进行单元测试
  9. 如何使用CineMatch的伪色指南功能来帮助评估图像
  10. Pascal 转 C++ 教程1
  11. 发动机冒黑烟_汽车发动机冒黑烟的原因与处理方法
  12. 大数据的价值,主要体现在哪几方面?
  13. 子域名收集 -- 提莫(teemo)
  14. linux搭建摄像头,Linux环境下配置虚拟摄像头akvcam
  15. FL Studio21水果软件最新中文版安装教程
  16. mysql查询每行重复_MySQL查询返回重复的行
  17. 你不知道的margin:auto居中原理
  18. matlab生成空图像,figure,imshow之后图像为空白图像
  19. mysql 常用函数
  20. ios添加邮件收件服务器,全球邮企业邮箱在iPhone上使用的设置说明

热门文章

  1. 贵州职称取消计算机,贵州老师们,在不久或将实行取消教师职称评定!按教龄直接晋升职称!...
  2. docker容器里面的root权限获取方法
  3. 习题 3.10 根据函数编写一程序,输入x,输出y值
  4. 网易新闻app自媒体号信息爬取
  5. 中英文说明书丨艾美捷T7 RNA聚合酶介绍
  6. 中继(负载均衡)工作原理
  7. shedule()调用时机
  8. 项目同时使用git和svn
  9. 计算机的安全知识有哪些少的,青少年网络安全知识有哪些
  10. 【无线芯片解读】LORA专题:SX1276