51单片机-系列-数码管中断和定时器

🌈个人主页:羽晨同学 

💫个人格言:“成为自己未来的主人~”  

 数码管

8051单片机的最小系统

  • 电源(5V)
  • 复位电路
  • 晶振(单片机的心脏
  • 如果要使用PO口,必须加4.7K-10K上拉电阻(这是因为PO口的内部没有上拉电阻
  • 如果下载程序,必须要与电脑连接的串口下载通道

电容两端的电压是不会突变的

复位分为自动复位和手动复位:

对于自动复位而言,有一个高电平要持续超过24个时钟周期,即两个机器周期,一个指令周期,24个时钟周期结束之后变成低电平(结束复位状态)

看门狗,帮助单片机更加稳定的运行,作为产品,看门狗是要打开的

 数码管的显示原理

在这张图中的a图是共阴极,b图是共阳极,对于共阴极而言,我们需要给高电平那边给1,对于共阳极而言,我们需要给低电平那边给0,来让他们显示。

 共阴数码管列表0-9

										0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

在这里,我们加上了code,这代表着我们告诉编译器,将此数组存放在程序存储区,而不是放在SRAM中 

接下来,我们就用这个实现一下数码管的简单代码。

#include<stc89c5xrc.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define beep P23
#define dula P26
#define wela P27
uchar num,temp;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void DelayMs(uint c);
uint Sum(uchar i,uchar j);
void main()
{while(1){temp=0xfe;for(num=0;num<6;num++){wela=1;P0=temp;//11111110 打开第一个数码管的位选temp=_crol_(temp,1);wela=0;dula=1;P0=table[num+5];dula=0;DelayMs(2);}}
}
uint Sum(uchar i,uchar j)
{uint k;k=i+j;return k;
}
void DelayMs(uint c)
{uint a,b;for(a=c;a>0;a--)for(b=115;b>0;b--);
}

 然后,我们将这里的数码管呈现的代码可以进行一下修改,使得我们利用数组的形式对数码管呈现的数字进行控制。

void Display(uint shu)
{wela=1;P0=0xfe;//11111110wela=0;P0=0;dula=1;P0=table[shu/100];dula=0;DelayMs(2);wela=1;P0=0xfd;//11111101 打开第二个数码管的位选wela=0;P0=0;dula=1;P0=table[shu/10%10];dula=0;DelayMs(2);wela=1;P0=0xfb;//11111011 打开第三个数码管的位选wela=0;P0=0;dula=1;P0=table[shu%10];dula=0;DelayMs(2);
}

中断和定时器

中断的概念

在主程序运行的途中,会发生一些中断请求,进行中断响应,然后执行中断处理程序,最后中断返回,在中断响应的过程中,会根据中断的不同的优先级从而发生中断嵌套。

高优先级的可以打断低优先级的

同一优先级中的中断产生多个时,则有中断优先权排队问题,由中断系统硬件确定的自然优先级决定哪个中断先响应。

对于STC而言,最多可以有四级嵌套

 

中断响应条件

  1. 中断源有中断请求.
  2. 此中断源的中断允许位为1
  3. CPU开总中断(EA(总中断)=1)

TCON中当IT0为1时为下降沿触发,当IT0为0时为低电平触发

	EA=1;//打开总中断EX0=1;//打开外部中断IT0=0;//设置中断类型为下降沿

 

 中断函数

可位寻址的寄存器可以直接进行操作,能被8整除的都是可位寻址的。

在中断号当中,中断号不能重复出现。

void Int0() interrupt 0
{beep=0;
}

定时器装初值的计算方法

从0加满需要65535个机器周期,再加1后溢出,产生中断,共65536个机器周期,每个机器周期是12个时钟周期。

如果是11.0592M晶振,每个时钟周期为:1/11.0059200=0.09us. 

定时器/计数器介绍

定时器/计数器的核心部件是一个加法(也有减法)的计数器,其本质是对脉冲进行计数,只是让脉冲来源不同,如果计数脉冲来自系统时钟(内部),此时定时器每12个时钟得到一个计数脉冲,计数值+1,如果计数脉冲来自单片机外部引脚(T0为P3.4,T1为P3.5),则为计数方式,每来一个脉冲+1;

定时器/计数器控制寄存器TCON

TCON为定时器/计数器T0,T1的控制寄存器,同时也锁存T0,T1溢出中断源和外部请求中断源。

这是它的格式:

TF0:定时器/计数器T0溢出中断标志,T0被允许计数之后,从初值开始加1计数,当最高位产生溢出的时候,由硬件置“1”TF0,向CPU请求中断,一直保持CPU响应应该中断时,才由硬件清“0”TF0

TR0:全手动,定时器T0的运行控制位,该位由软件置位和清零,(GATE=0)TR0=1时,允许T0开始计数,TR0=0时禁止T0计数,(GATE=1),TR1=0且INT0=高电平,才能允许T0计数。

定时器/计数器工作模式寄存器TMOD

好了,本次的文章就到这里了,我们下次再见。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/143618.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

ANSYS Workbench随机球体及过渡区三维混凝土细观建模

在ANSYS Workbench内建立随机球体及ITZ界面层混凝土细观模型可采用CAD随机球体颗粒&过渡区3D插件建模后将模型导入。 在插件内设置好模型参数后运行&#xff0c;插件会自动完成随机球体、界面过渡区、基体模型的建立。插件已将不同部件分图层进行建模&#xff0c;将模型整…

浅谈红外测温技术在变电站运维中的应用

0引言 随着市场经济的繁荣发展&#xff0c;社会对电力的需求持续增长。城市供电网络的规模和用电设备的总量也在不断扩大&#xff0c;这导致城市电力系统中潜在的网络安全隐患日益增多。作为电力系统核心组成部分的变压器&#xff0c;其安全、稳定的工作直接关系到电能的质量和…

完美解决 Uncaught ReferenceError: X is not defined 的正确解决方法,亲测有效!!!

完美解决 Uncaught ReferenceError: X is not defined 的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 亲测有效 完美解决 Uncaught ReferenceError: X is not defined 的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01;报错…

发布Java项目到Maven中央仓库

1.背景 本教程为2024年9月最新版 我有一个Java项目&#xff0c;想发布到Maven中央仓库&#xff0c;任何人都可以在pom文件中引用我的代码 引用格式如下&#xff08;以rocketmq为例&#xff09;&#xff1a; <dependency><groupId>org.apache.rocketmq</groupId…

[数据集][目标检测]智慧养殖场肉鸡健康状态检测数据集VOC+YOLO格式4657张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;4657 标注数量(xml文件个数)&#xff1a;4657 标注数量(txt文件个数)&#xff1a;4657 标注…

基于uniapp的奶茶店点餐微信小程序源码

基于uniapp的奶茶店点餐微信小程序源码 简介 2套模式&#xff0c;小程序和h5页面&#xff0c;都支持 h5可以配置公众号模式 小程序就直接小程序小程序截图 管理后台截图 下载地址 资源来源于网络&#xff0c;如有侵权请告知

隐藏excel单元格数据的两个方法

在Excel中&#xff0c;公式是用来计算数据和结果的非常重要的一部分。但是&#xff0c;有时候您可能希望隐藏公式&#xff0c;以保护其不被他人修改或查看。那么今天小编就来给大家分享隐藏excel单元格数据的方法。 一、使用“隐藏”功能 在Excel中&#xff0c;我们还可以使用…

网络封装分用

目录 1,交换机 2,IP 3,接口号 4,协议 分层协议的好处: 5,OSI七层网络模型. 6,TCP/IP五层网络模型(主流): [站在发送方视角] [接收方视角] 1,交换机 交换机和IP没有关系,相当于是对路由器接口的扩充,这时相当于主机都与路由器相连处于局域网中,把越来越多的路由器连接起…

宠物空气净化器该怎么选?希喂、352、霍尼韦尔哪款对吸附浮毛有效

明明我都成年很久了&#xff0c;我爸妈还把我当小孩一样&#xff0c;我干什么前都要和他们说一声。前段时间去朋友家玩&#xff0c;本来对宠物无感的我一下子就被她家可爱的猫咪萌化了。猫咪好可爱呀&#xff0c;毛茸茸的摸起来很舒服&#xff0c;眨巴的大眼睛看着你真的心软软…

ai头像免费软件有哪些?卡哇伊头像用这些

如果你的个性头像不再局限于单调的自拍&#xff0c;而是可以是任何你喜爱的动物形象&#xff01; 无论是温顺的小猫、活泼的小狗&#xff0c;还是憨态可掬的熊猫&#xff0c;ai技术都能将这些可爱的动物形象变成你独特的虚拟代表。 现在&#xff0c;就让我们一起探索这些超萌…

webGL 综合教程100+【目录】

webGL 综合教程100旨在为开发者提供两大方面的知识信息&#xff1a;&#xff08;1&#xff09;提供详细的每个api知识点的详解 &#xff08;2&#xff09;提供实战的示例&#xff0c;提供源代码。 在这量大系统性的知识下&#xff0c;给用户提供清晰的思路和示例参考&#xff0…

Kettle的安装与基本使用

什么是Kettle&#xff1f; Kettle最早是一个开源的ETL&#xff08;Extract-Transform-Load的缩写&#xff09;工具&#xff0c;全称为KDE Extraction, Transportation, Transformation and Loading Environment。是一个功能丰富的ETL工具&#xff0c;它允许用户轻松地进行数据抽…

Flutter 项目结构的区别

如果需要调用原生代码&#xff0c;请创建一个plugin类型的项目开发。如果需要调用C语言&#xff0c;请参考文档&#xff1a;Flutter项目中调用C语言plugin 其实是 package 的一种&#xff0c;全称是 plugin package&#xff0c;我们简称为 plugin&#xff0c;中文叫插件。 1. A…

动态分析基础

实验一 Lab03-01.exe文件中发现的恶意代码 问题&#xff1a; 1.找出这个恶意代码的导入函数与字符串列表? 2.这个恶意代码在主机上的感染迹象特征是什么? 3.这个恶意代码是否存在一些有用的网络特征码?如果存在&#xff0c;它们是什么? 解答&#xff1a; 1.找出这个恶意代…

idea使用阿里云服务器运行jar包

说明&#xff1a;因为我用的阿里云服务器不是自己的&#xff0c;所以一些具体的操作可能不太全面。看到一个很完整的教程&#xff0c;供参考。 0. 打包项目 这里使用的是maven打包。 在pom.xml中添加以下模块。 <build><plugins><plugin><groupId>org…

保护您的隐私:隐藏 IP 地址的重要性

在当今的数字时代&#xff0c;我们的在线隐私和安全变得比以往任何时候都更加重要。浏览互联网时保护自己的一种方法是隐藏您的 IP 地址。 但是为什么要隐藏您的 IP 地址以及如何有效地做到这一点&#xff1f; 隐藏您的 IP 地址有助于保护您的在线匿名性。您的 IP 地址就像您的…

鹰眼降尘模型

鹰眼降尘模型是一种集成了先进图像识别技术、机器学习算法和精准控制技术的环保解决方案&#xff0c;旨在解决无组织排放粉尘污染问题。以下是朗观视觉小编对鹰眼降尘模型的详细解析&#xff1a; 一、技术原理 鹰眼降尘模型主要基于以下关键技术原理实现其功能&#xff1a; 图…

网络安全。

文章目录 目录 文章目录 一. 网络安全概述 二. 密码学原理 三. 报文完整性和数字签名 密码散列函数 报文鉴别码 数字签名 公钥认证 四. HTTPS通信 总结 一. 网络安全概述 网络安全是保护计算机网络及其数据免受各种威胁和攻击的实践和技术。随着互联网的普及和数字化…

「数据科学」清洗数据,真实数据集中缺失值的查看与处理

在数据科学的工作过程中&#xff0c;我们通过查看数据的基本要素和元数据之后&#xff0c;需要根据查看的结果&#xff0c;考虑是否需要清洗数据。缺失值的查看与处理&#xff0c;就是清洗数据的一部分。如果我们的数据集中&#xff0c;存在缺失值的话&#xff0c;就需要考虑如…