草庐IT

51.4811109

全部标签

51 单片机【外部中断、定时器中断、回调函数】

51单片机【外部中断、定时器中断、回调函数】​ 这里的外部中断类似监听器,时时刻刻监视某引脚的电平变化;这里的定时器中断类似于定时任务,可以定时执行某函数;这里将回调函数和中断结合起来,案例里有点设计模式的味道(忘了哪个了,也可能就是感觉,关于高层不能调用低层的解决),也有点函数式编程的味道。1、中断(包括外部中断和定时器中断,串口todo)​ 中断可以狭义地看作是监听。它可监听如按钮按下、定时器溢出、CPU内部某值的改变等。​ 以下都是以89C52的某个(大概不是所有)单片机为例,(我也不知道这个是哪个,用哪个就查看哪个的手册) 它共有8个中断,这8个中断包含4个外部中断、3个计时器中断、

MCS-51单片机的硬件结构

2、1MCS-51单片机的硬件结构按功能可分为8个部件,通过片内单一总线连接起来控制方式:SFR对各功能部件集中控制1、微处理器:CPU运算部件控制部件2、数据存储器:RAM数据存储就是暂存一些在系统运行的过程当中所生成的一些临时性的数据,采集数据时临时采集到的一些数据和一些运算的中间结果数据保存在存储器当中,一般数据存储器的容量越大的话,它的控制系统相对可以实现比较复杂的控制功能。Mcs-51单片机内部是有128个字节的数据存储器,每个字节是8位,也就是说128*8位数的存储器。3、程序存储器:ROM或EPROM4、I/O口:51系列单片机有4个I/O口,其中每一个io口有八个输入输出端,可

单片机C51(STC89C52RC)矩阵键盘

1.矩阵键盘原理及按键检测原理矩阵键盘原理与独立按键原理相似,0表示按下,1表示松手,可以把矩阵键盘想象为一个四行四列的独立按键。 如上图所示,在矩阵键盘检测的时候可以采用按行检测或者按列检测,以按列检测为例,选中先选中P1_3后,既P1_3=0,此时再检测与P1_3相连的列,由上图可知,当P1_7=0,则表示S1被按下,用这种方法便可以实现对各个按键的检测。2.按键检测代码测试如何证明我们的想法的可行性?在没有外设的基础上,我们可通过数码管显示数字来验证按键是否被按下。其中可以定义KeyNumber用来存放被按下按键的键码值。#include#include"Delay.h"unsigned

51单片机 | 红外遥控实验

文章目录一、红外遥控介绍1.红外线简介2.红外遥控的原理2.1红外发射装置2.2红外接收设备二、硬件设计三、软件设计1.红外初始化函数2.红外解码函数3.主函数四、实验现象  这一节来介绍一种无线通信技术–红外遥控通信。我们开发板标配了一个一体化红外接收头和红外遥控器,我们来学习如何使用51单片机解码红外遥控器的信号。本节使用51单片机的外部中断功能来解码红外遥控器的编码信号。本节要实现的功能是:使用外部中断功能将遥控器键值编码数据解码后通过数码管显示。一、红外遥控介绍1.红外线简介  人的眼睛能看到的可见光按波长从长到短排列,依次为红、橙、黄、绿、青、蓝、紫。其中红光的波长范围为0.62~0

基于AT89C51单片机的交通灯设计与仿真

点击链接获取Keil源码与ProjectBackups仿真图:https://download.csdn.net/download/qq_64505944/87763760?spm=1001.2014.3001.5503源码获取主要内容:设计一个能够控制十二盏交通信号灯的模拟系统,:利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并用LED灯显示倒计时间。基本要求:1、通过单片机课程设计,了解并掌握汇编语言的编程方法,将理论联系实践,提高动脑和动手的能力。2、通过该控制系统的设计,掌握定时计数器及中断的使用方法,和简单程序的编写,提高自己的逻辑抽象能力。3、完成系统基本的硬件和软件设

51单片机数码管显示(三)

目录一、静态数码管显示1、一位数码管(1)LED数码管各段名称(2)数码管引脚定义(3) 共阴极(89C52RC单片机LED数码管采用共阴极方式)(4)共阳极2、四位一体数码管(1)四位一体数码管引脚定义(2)上面共阴极和下面共阳极 3、数码管模块原理图详解4、编写程序5、实物展示二、动态数码管显示1、数码管的消影2、编写程序3、实物展示4、数码管驱动方式一、静态数码管显示1、一位数码管(1)LED数码管各段名称(2)数码管引脚定义接线服从就近原则(3) 共阴极(89C52RC单片机LED数码管采用共阴极方式)中间是二极管,电流只能从下面流向上面,所以所有接口共用一个阴极,上面接口接地,给下面

51单片机控制数码管动态显示

首先打开proteus,导入8位数码管和89c51。然后如图连线,分清断码和位码,断码就是一个数码管的7个LED灯。位码:就是第几位显示,由于是共阴极,所以哪位接地就显示哪位。下面通过改变位码的接线就可以看出不同的效果下面就编写程序,从第1位到第8位显示从0到7的八个数字。也就是位码的第一位为低电平,然后断码的除了g灯不亮其他都亮也就是0x3f,这样第一位就显示了0,后面就依次类推。下面写c程序,之后编译。可复制后直接享用!#include"reg51.h"unsignedchardat[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}

【Proteus仿真】【51单片机】智能温控风扇设计

文章目录一、功能简介二、软件设计三、实验现象联系作者一、功能简介本项目使用Proteus8仿真51单片机控制器,使用LCD1602液晶、按键、蜂鸣器、L298N电机驱动模块、直流电机、DS18B20温度传感器等。系统运行后,LCD1602显示传感器检测的温度值;默认以自动模式运行,若按下K4键切换为手动模式,此时可以通过K1和K2控制风扇加减速,风扇档位共5档(0-5)。当再次按下K4键切换为自动模式;自动模式下,实时检测温度值,当温度高于上限且在2C范围内,以3档运行。当温度高于上限且在4C范围内,以4档运行。当温度高于上限且在6C范围内,以5挡运行。当温度高于上限且超过6C范围,以5档运行

C51中的sprintf()函数使用

 目录一、函数作用二、输出内容的格式化处理1.输出变量的类型2.输出变量的位数小数:整数:16进制: 在做蓝桥杯第五届国赛试题的时候,遇到这样一个问题:题目要求单片机通过串口返回电脑一组数据,包括温度、湿度、时间等,数据很多问且中间有大括号等符号做间隔,如果一个字符一个字符的分开重新定义,发送的话就非常麻烦。通过上网学习,发现了一个非常有效的办法:sprintf()函数来实现。但是,在C51中的sprintf函数与标准C语言中有所差别,注意区分。经过上网查阅资料,特此总结一下。首先,用这个函数的时候,前面要加上这个头文件:#include一、函数作用 sprintf()是格式化输出函数,保存字

基于51单片机制作频率计-测脉冲数法

本文为LED-执棋困局,csdn原创首发。>发布人:LED-执棋困局>欢迎大家与LED-执棋困局相互点赞+关注+收藏+评论,也祝大家顺顺利利,平平安安。>我的格言是:“尽最大努力,做最好的自己!版权声明:本文为CSDN博主「LCD-执棋困局」的原创文章。目录一、频率计简介1.1频率计概述1.2频率计组成1.3频率计原理1.4测量原理二、仿真设计2.1频率计仿真2.2仿真展示三、软件程序设计3.1主程序程序设计3.2定时器初始化程序设计3.3中断程序设计3.4计数程序设计3.5数码管程序设计四、提高测量精度4.1结果展现4.2测量误差4.3提高精度一、频率计简介1.1频率计概述数字频率计是计算机