要学习51单片机中断的朋友,拥有这一篇博文就够了,深入浅出,里面包含了寄存器,外部中断、定时器中断、中断嵌套等的讲解,还有代码实战。快一万字,写得不容易,还请大家点赞支持一下,后续持续更新(一)寄存器1.什么是寄存器2.寄存器怎么用(二)中断1.中断允许寄存器IEEX0ET0EX1ET1ESEA使用方法2.中断优先级寄存器IPPS——串行口中断优先级控制位PT1——定时器/计数器1中断优先级控制位PX1——外部中断1中断优先级控制位PT0——定时器/计数器0中断优先级控制位PX0——外部中断0中断优先级控制位中断优先级(高到低)3.TCON寄存器TF1:片内定时器/计数器T1的溢出中断请求标志
1.开发环境介绍使用C语言,环境为keilKeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用.什么是单片机单片机(Single-ChipMicrocomputer)是一种集成电路芯片,把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用.2.了解IO口怎么找到I
74HC595简介(个人理解)与模块代码SHCP是写入595芯片数据的配置STCP是发送595芯片内信息的配置DS是数据配置的区域595芯片有9个输出引脚,最后一个是供给下一块串联的595使用的,下一块串联的595stcp和shcp与上一块连接的引脚一致,下一块的DS与上一块的第9个引脚相连。实现了3位引脚当8位使用的功能,节省引脚。595串联的数据流动规则:倘若堆了16位数据进来,前八位会被推送到第二块串联的595芯片之中,后八位放在第一块595芯片内通用配置:定义引脚sbitDS=P2^1; sbitshcp=P2^0;sbitstcp=P2^2;写数值unsignedchari;for
硬件型号、软件版本、以及烧录流程操作系统:Windows10x84-64单片机:STC89C52RC编译器:SDCC烧录软件:stcgal1.6开发板:普中51单片机开发板A2套件(2022)在VSCode中新建项目到烧录的过程:左侧EIDE图标-新建项目-空项目-8位MCU项目-保存文件夹。更改构建配置:SDCC;更改烧录配置:stcgal。在项目文件夹下新建src/main.c,右键项目资源-添加源文件夹-普通文件夹,选择src。在src目录下开发,最后点击右上角构建、烧录,单片机上电,完成烧录。定时器(Timer)、计数器(Counter)我的单片机是89C52RC,属于STC89C52
❤️专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。☀️专栏适用人群:适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋。🌙专栏目标:实现从零基础入门51单片机和STM32单片机,力求在玩好单片机的同时,能够了解一些计算机的基本概念,了解电路及其元器件的基本理论等。⭐️专栏主要内容:主要学习51单片机的功能、各个模块、单片机的外设、驱动等,最终玩好单片机和单片机的外设,全程手敲代码,实现我们所要实现的功能。🌴专栏说明:如果文章知识点有错误的地方,欢迎
原理图整体本设计利用51单片机中断函数来查询抢答位置,除了一般抢答器用到的基本元件外,还用到了74LS30(八路与非门)与74LS04(非门)。下面对原理图进行分块介绍抢答按钮部分(注意非门接到AT89C52的P3.3 INT1触发)led灯连接部分 (采用灌电流的形式,注意P0口上拉电阻与led线路上的保护电阻)实际电路中,通常外界供电5V,led灯的压降为2V,工作电流为1-5mA,安全电阻通常在1-3KΩ数码管连接部分采用74HC573连接数码管,增加端口的驱动能力,也节约了端口P3端口与蜂鸣器蜂鸣器要保证供电,采用三极管增加驱动能力程序流程图C程序#include//添加两类头文件#i
矩阵键盘矩阵键盘一般和之前学的LCD1602液晶屏一起控制,建议先看一下之前的博客学习一下液晶屏的使用。当然矩阵键盘也可以和数码管和LED等一起操作,但是数码管需要扫描,很费CPU,LED又不能直观的看到键盘的操作。用LCD1602来学习矩阵键盘比较合适。简介在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排成矩阵形。采用逐行或逐列扫描,就可以读出任意位置按键的状态。解释一下从原理图中我们可以看到,独立按键每个按键要使用一个I/O口,而矩阵键盘只用了8个I/O口。假如矩阵键盘用独立按键的控制方式,四行四列需要16个I/O口。但是采用了扫描的控制方式后,我们只用了4+4=8个I/O口。
单片机笔记定时器/计数器定时器/计数器的结构AT89S51内部两个16位定时器/计数器:T0(P3.4),T1(P3.5),定时器/计数器T0由特殊寄存器TH0,TL0构成,T1由特殊功能寄存器TH1,TL1构成T0,T1都有定时器和计数器两种工作模式,两种模式实质都是对脉冲信号进行计数,只不过技术信号来源不同。计数器模式是对T0(P3.4)和T1(P3.5)两个引脚上的外部脉冲进行计数定时器模式是对系统时钟信号(fosc)经12分频后的内部脉冲信号(机器周期Tcy)计数.由于系统时钟频率fosc是定值,可根据数值计算出定时时间T(定时时间T=n*Tcy).振荡周期Tosc=1/fosc,机器
一AT89C51引脚图1.0中断1.0.1中断源AT89C51一共有5个中断源(1):外部中断0,外部中断请求信号由引脚输入,低电平或下降沿有效,中断请求标志位IE0。(2):外部中断1,外部中断请求信号由引脚输入,低电平或下降沿有效,中断请求标志位IE1。(3)T0:定时/计数溢出时发出中断请求信号,中断请求标志位TF0(也就是之前说的溢出标志位)。(4)T1:定时/计数溢出时发出中断请求信号,中断请求标志位TF1(也就是之前说的溢出标志位)。(5)串行口中断:发出或接收1字节数据以后发出中断请求信号,中断请求标志位发送时为TI,接收时为RI。1.0.2控制中断特殊寄存器控制中断的特殊功能寄
C51单片机的电子时钟(数码管显示+按键修改时间)效果预览相关的开发板原理图解析正式代码main.c代码部分key.h部分key.c部分效果预览IMG_1120相关的开发板原理图解析通过查看这三个原理图我们可以得知控制K1、K2、K3及K4是通过P31、P30、P32及P33来实现的,控制8个数码管是P22、P23及P24来实现,控制发光二极管则由P00-P07来实现。正式代码代码分为三部分分别为main.c、key.h、key.cmain.c代码部分#include#include"key.h"//这里定义了一个10个元素的只读数组zxCode,用于存放0~9的数码管显示码。codeunsi