【51单片机】INT0及INT1中断计数

2023-05-16

前言
刚刚本着负责任的心,把上次的博客补全(真的有点长,不过都是干货),再回来的时候本次编辑就消失了……,下次记得保存线上草稿。友情链接:1.【51单片机实验】INT0中断计数2.【51单片机实验】INT0中断控制LED
实验
INT0及INT1中断计数电路.png
程序分析

  • 同时允许INT0和INT1中断:连接P3.2和P3.3按键触发中断,对应中断例程(中断函数)分别计数分别显示在左右各三只数码管上【只要999】,
  • 另外两个按键:分别用于两组计数的清零工作,查询法;
  • 允许INT0和INT1中断:IE=0x85(1000 0101)
  • 两个均为下降沿触发:IT0,IT1=1;
  • 外部中断0和外部中断1中断号:0,2
    主程序whlie内循环调用显示计数**函数,中断例程只需累加计数,无需管理显示。
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int

sbit k3 = P3 ^ 4;
sbit k4 = P3 ^ 5;

uchar code DSY_CODE[] = {
    0xc0,0xf9,0xa4,0xb0,
    0x99,0x92,
};

uchar data Buffer_Counts[] = {0,0,0,0,0,0};
uint Count_A = 0, Count_B = 0;

void DelayMS(uint x)
{
    uchar t;
    while (x--)
        for (t = 0;t < 120;t++);
}

void Show_Counts()
{
    uchar i;
    Buffer_Counts[2] = Count_A / 100;
    Buffer_Counts[1] = Count_A % 100 / 10;
    Buffer_Counts[0] = Count_A % 10;
    if (Buffer_Counts[2] == 0x00)
    {
        Buffer_COunts[2] == 0x00;
        if (Buffer_Counts[1] == 0x00)
            Buffer_Counts[1] == 0x0a;
    }


    Buffer_Counts[5] = Count_B / 100;
    Buffer_Counts[4] = Count_B % 100 / 10;
    Buffer_Counts[3] = Count_B % 10;

    if (Buffer_Counts[5] == 0x00)
    {
        Buffer_Counts[5] == 0x0a;
        if (Buffer_Counts[4] == 0x00)
            Buffer_Counts[4] == 0x0a;
    }

    for (i = 0;i < 6;i++)
    {
        P2 = Scan_BITs(i);
        P1 = DSY_CODE[Buffer_Counts[i]];
        DelayMS(i );
    }

}

后语
比起上次【51单片机实验】INT0中断控制LED实验,这次实验使用了两种中断方式(中断和查询,怎么那么拗口?),显示也不特别难,就是C语言课后习题级别,注意两种中断的序号,1和3,有趣,奔赴下一个实验~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【51单片机】INT0及INT1中断计数 的相关文章

随机推荐

  • [工具]GDB的命令和使用

    目录 简介 一 GDB命令 1 1 断点 1 2 执行 1 3 信息查看 1 4 其他 二 GDB启动 2 1 用gcc编译程序 2 2 使用GDB调试 简介 GDB是一个跨操作系统的调试器 xff0c 是Linux系统分析漏洞 调试溢出程
  • 也谈Javascript里的commonjs模块和es6模块

    最近百家饭OpenAPI平台的JS API调用代码自动生成功能顺利进展中 xff0c 进展情况可以关注我们的博客 xff0c 我们计划先在内部完成 自举 xff08 自己平台开发的功能支持自己的开发 xff09 xff0c 将百家饭平台自身
  • [C++][题解]A+B Problem(高精)

    题目 题目描述 高精度加法 xff0c 相当于a 43 b problem xff0c 不用考虑负数 输入格式 分两行输入 a b 1 0
  • linux校园网自动认证脚本(改良)

    linux版校园网认证程序在执行之后 xff0c 会极大地占用计算机资源 xff08 可能是内存泄漏或者其他原因 xff09 于是自制一个改良版的脚本 xff0c 配合系统命令crontab xff0c 可以进行自动定期自动认证 xff0c
  • 向日葵远程控制引起惠普战笔记本亮度无法调节问题

    这次系统的异常状况出现得十分突然 笔记本没法调节亮度 xff0c 一开始是在系统的消息中心有亮度调节的功能 xff0c 但是拉动亮度条屏幕亮度变化 重启系统之后 xff0c 消息中心的亮度条不见了 xff0c 系统中找不到可以调节亮度的地方
  • [Python3]批量修改图片尺寸

    span class token keyword from span PIL span class token keyword import span ImageColor span class token keyword as span
  • 【ros】安装的时候执行 sudo rosdep init 遇到的问题 ‘ERROR: cannot download default sources list from...‘

    文章目录 一 问题描述二 解决办法三 新的问题和解决办法 一 问题描述 以前安装ros xff0c 照着ros wiki的教程就ok了 xff0c 之前重装了系统 xff0c 得重装一下ros xff0c 但是遇到了一些问题 在执行这两步骤
  • 第一篇:linux(ubuntu)系统实操学习

    系列文章目录 提示 xff1a 这里可以添加系列文章的所有文章的目录 xff0c 目录需要自己手动添加 TODO 写完再整理 文章目录 系列文章目录前言一 linux的认识1 Linux的应用领域2 Linux学习建议3 Linux的系统文
  • 第八篇:ROS的rviz三维可视化平台

    系列文章目录 提示 xff1a 这里可以添加系列文章的所有文章的目录 xff0c 目录需要自己手动添加 TODO 写完再整理 文章目录 系列文章目录前言一 功能二 安装并运行rviz1 安装rviz2 运行rviz 三 界面介绍四 数据可视
  • 将项目部署到GPU上,并且运行

    1 设置我的运行环境 2 登入我的GPU 3 在我的GPU中选择相应的环境 要选择自己要运行的虚拟环境下的python 选择自己要同步的文件夹 会出现两个框 前面一个框是你本地的目录 后一个是你要上传的目录 4 查看GPU上的每一片GPU的
  • 近红外光谱、拉曼光谱及高光谱的区别

    近红外光谱是介于可见光和中红外光之前的电磁波 xff0c 波长范围为780 2526 nm xff0c 其主要来源是对含氢基团X H xff08 X 61 C N O xff09 振动的倍频和合频吸收 xff0c 其反射信息包含了大多数类型
  • 阿里云轻量应用服务器简单图形化界面以及VNC安装使用

    购买服务器 amp 连接 根据自己地域选购 xff0c 安装操作系统 xff0c 配置实例的登陆密码 这里安装的是Ubuntu18 04 5LTS 使用OpenSSH连接 xff1a 安装OpenSSH 在本地主机的控制台输入命令 xff1
  • 【HDFS API编程】图解客户端写文件到HDFS的流程

    HDFS API编程 图解客户端写文件到HDFS的流程 posted on 2019 04 25 20 04 Liuyt 61 阅读 评论 编辑 收藏 转载于 https www cnblogs com Liuyt 61 p 1077062
  • Linux——常用命令汇总(man,date,cal,bc,重定向,cmp,Diff)

    man命令 xff08 查阅联机帮助文档 xff09 例如 man 1 sleep man 3 sleep date命令 xff08 读取系统日期和时间 xff09 cal命令 xff08 打印日历 xff09 bc命令 xff08 计算器
  • ubuntu 开机启动顺序配置(包括选择ubuntu内核)

    sudo gedit etc default grub 编辑grub配置文件 GRUB DEFAULT改为0 为默认以第一个启动 若想选择ubuntu内核 可以通过 GRUB DEFAULT 61 34 1 gt 2 34 选择第二个内核
  • C++出现“field has incomplete type“问题的解决

    出现错误的原因一般类似下面这种代码 xff1a span class token keyword struct span span class token class name Data span span class token punc
  • java 容器都有哪些?

    容器可以说是Java Core中比较重要的一部分了 数组 String java util下的集合容器 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • 树莓派3B+ 镜像烧录以及环境设置

    写在前面的话 xff1a 没啥好说的 相关软件下载 xff1a xff08 SD卡格式化工具 win32diskimager Raspbian系统镜像 Xshell ssh工具 xff09 xff09 链接 xff1a https pan
  • 串口调试助手

    一 前言 串口操作流程 xff1a 步骤一 xff1a 设置串口参数 xff0c 如 xff1a 波特率 xff0c 数据位 xff0c 奇偶校验 xff0c 停止位 xff0c 数据流控制等 步骤二 xff1a 选择串口 xff0c 如w
  • 【51单片机】INT0及INT1中断计数

    前言 刚刚本着负责任的心 xff0c 把上次的博客补全 xff08 真的有点长 xff0c 不过都是干货 xff09 xff0c 再回来的时候本次编辑就消失了 xff0c 下次记得保存线上草稿 友情链接 xff1a xff11 51单片机实