1. 程式人生 > >【51微控制器】INT0及INT1中斷計數

【51微控制器】INT0及INT1中斷計數

前言
剛剛本著負責任的心,把上次的部落格補全(真的有點長,不過都是乾貨),再回來的時候本次編輯就消失了……,下次記得儲存線上草稿。友情連結: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,有趣,奔赴下一個實驗~

相關推薦

51微控制器INTINT中斷計數

前言 剛剛本著負責任的心,把上次的部落格補全(真的有點長,不過都是乾貨),再回來的時候本次編輯就消失了……,下次記得儲存線上草稿。友情連結:1.【51微控制器實驗】INT0中斷計數2.【51微控制器實

筆試題:1.翻轉int問題

問題: 輸入int,輸出倒序 例子: 輸入: 234 -123 -100 輸出: 432 -321 -1 程式碼: #!/usr/bin/env python2 # -*- coding: utf-8 -*- """ Created on Sat Dec 8 1

程式碼優化使用enum代替int常量

經常帶程式碼中看見這樣的程式碼: public static final int APP_START=1; public static final int APP_PAUSE=0; public static final int APP_STOP =2; public

讀書筆記Cronjob原理源碼分析

之前 jobs 所有 res net pes 垃圾回收gc ive 發現 原文鏈接:https://mp.weixin.qq.com/s?__biz=MzI0NjI4MDg5MQ==&mid=2715291842&idx=1&sn=e605f9b40

OpenCV+Python輪廓檢測繪製,可用以生成對應於不規則形狀ROI區域的mask

Overview 在OpenCV中文論壇上很多人問到這樣的問題,如何對影象的不規則區域設定ROI,即設定敏感區域,以用來做相關的影象處理。 根據若干博文的整理及自己的點點經驗,在此進行簡單的歸納: 第一部分主要敘述C++中對於不規則區域設定ROImask的方法,第二部分主要敘述Pyt

深度學習ResNet解讀程式碼實現

簡介 ResNet是何凱明大神在2015年提出的一種網路結構,獲得了ILSVRC-2015分類任務的第一名,同時在ImageNet detection,ImageNet localization,COCO detection和COCO segmentation等任務中均獲得了第一名,在當

基礎+實戰JVM原理優化系列之八:如何檢視JVM引數配置?

1. 檢視JAVA版本資訊 2. 檢視JVM執行模式  在$JAVA_HOME/jre/bin下有client和server兩個目錄,分別代表JVM的兩種執行模式。   client執行模式,針對桌面應用,載入速度比server模式快10%,而執行速度為server模

Spring訊息RabbitMq安裝簡單應用(二)

前言: 埋頭苦寫。先把官方文件翻譯過來。整個流程跑一遍。上一篇文章,【Spring訊息】RabbitMq安裝及簡單應用(一),把點對點發送訊息寫完了。之前雖然也可以一個生產者多個消費者,但是一條訊息只能被一個消費者處理,所以是點對點。這篇文章來講講釋出訂閱,一對多。一條訊息

Computer Graphics平面表示式相關計算

內容 引數化表示式 求平面法向量 求點到平面的距離 求直線與平面交點 求三個平面斜交 1.  引數化表示式 已知一個三維點 P 與法向量 N,設過點 P 且與 N 垂直的平面為點 Q 的合集,那麼 Q 滿足:   除此之外,平面方程還有一種常用的表達方

c51微控制器警燈警笛設計

 警燈警笛設計:通過獨立按鍵啟動警燈警笛,控制報警燈旋轉(旋轉燈用8個LED燈實現,旋轉時低3位亮,然後每次左移一位形成旋轉顯示),並讓蜂鳴器發出警報聲。 所需元件表:  元件名稱 型號 數量 Pro

演算法精練歌星大獎賽擴充套件

歌星大獎賽 要求:在歌星大獎賽中,有10個評委為參賽選手打分,分數為1到100分。選手最後得分為:去掉一個最高分,去掉一個最低分,最終得分為8個分數的平均分。請編寫C/C++程式實現。 演算法設計:這個

51微控制器驅動繼電器實驗程式碼

//驅動繼電器實驗 #include <reg52.h> sbit buzzer = P3^7; //宣告蜂鳴器位置 sbit relay = P3^6; //宣告繼電器位置 void delay(int); //宣告延遲函式 vo

面試題資料庫索引B樹、B+樹詳解

最近準備找一個實習,所以接下來,會通過其他人分享的面經陸續的總結面試中經常遇到的題 今天是關於資料庫索引,以及具體的實現(B樹及B+樹) 本文參考自兩篇部落格(個人認為是最好的相關部落格了) 資料庫索引部分:http://blog.csdn.net/weilianglian

C/C++磁碟排程常用排程演算法的實現

1、 實驗目的 (1) 瞭解磁碟結構以及磁碟上資料的組織方式。 (2) 掌握磁碟訪問時間的計算方式。 (3) 掌握常用磁碟排程演算法及其相關特性。 2、 實驗基本知識及原理 ( 1)磁碟資料的組織 磁碟上每一條物理記錄都有唯一的地址,該地址包括三

模板歸納網路流費用流

首先是網路流及最小費用最大流的兩種最基礎演算法 這兩種網路流演算法的思想核心都是尋找增廣路+沿增廣路擴充套件新流 首先是Dinic 演算法 使用bfs尋找增廣路,記錄增廣路中節點層數, 而在dfs中沿著層數+1的方向不斷遞推 直到無法再找到新的增廣路為止 程式碼 #include &

Java.NIOSelector,SelectionKey

java.nio.channels public abstract class Selector extends Object implements Closeable Selector(選擇器)是Java NIO中能夠檢測一到多個NIO通道,並能夠知曉通道是否為諸如讀寫

51微控制器延時函式計算問題以及如何準確延時

幾種週期介紹 週期名稱 描述 時間 振盪(時鐘) 微控制器提供時鐘脈衝訊號的振盪源的週期 T=1/f 狀態 振盪週期經二分頻後得到的 2T 機器 在一個機器週期內,CPU可以完成一個獨立的 操作

資料結構HashTable原理實現學習總結

有兩個類都提供了一個多種用途的hashTable機制,他們都可以將可以key和value結合起來構成鍵值對通過put(key,value)方法儲存起來,然後通過get(key)方法獲取相對應的value值。一個是前面提到的HashMap,還有一個就是馬上要講解的HashTa

前端知識點NodeJS優缺點適用場景分析討論解釋

概述:   NodeJS宣稱其目標是“旨在提供一種簡單的構建可伸縮網路程式的方法”,那麼它的出現是為了解決什麼問題呢,它有什麼優缺點以及它適用於什麼場景呢?   本文就個人使用經驗對這些問題進行探討。 一. NodeJS的特點   我們先來看看NodeJS官網上的介紹:   Node.js is a

51微控制器(手把手教你)串列埠通訊-基礎篇

通訊方式 並行 適合短距離通訊,並行通訊控制簡單、相對傳輸速度快(8位一起傳輸)。 序列 只能一位一位的傳送。 同步(瞭解) 建立傳送方時鐘對接收方時鐘的直接控制,使雙方達到完全同步。此