推荐阅读最新更新时间:2024-03-16 14:25
51单片机按键程序中while(!key)的作用是什么
我相信大家也是常常遇到过这一句代码while(!key);,那么大家知道这句代码是有什么用吗?在这我就和大家分享一下,还是用代码来说话吧: #include reg52.h typedef unsigned int uint; typedef unsigned char uchar; sbit key=P1^0; void delay(uint x) { uchar i; while(x--)for(i=0;i 120;i++); } void scan_key(void) { uchar j; if(key==0)//判断按键是否被按下 delay(10);//按键消抖 if(key==0)
[单片机]
基于51单片机DS1302四位数码管可调时钟
#include reg52.h #define uchar unsigned char #define uint unsigned int sbit sda=P1^0; //ds1302的数据线 sbit clk=P1^1; //ds1302的时钟线 sbit rst=P1^2; //ds1302的复位线 sbit k1=P1^5; //设置/确定 sbit k2=P1^6; //加 sbit k3=P1^7; //切换 uchar code duan_code ={ 0xc0,0xf9,0xa4,0xb0,0
[单片机]
利用STM32F334的HRTIM实现PWM输出的实现原理
很多STM32系列的MCU内置高精度定时器,比方STM32F334、STM32G4、STM32H7等系列。利用高精度定时器实现PWM输出应该说是最基本的功能了。不过,在实际应用中,常有人觉得无法实现duty=0或duty=100%的PWM输出情形。这里以STM32F334的HRTIM为例,简单介绍下利用它实现PWM输出的实现原理。 STM32F334的HRTIM的功能框图如下,由一个MASTER定时器和ABCDE五个定时器单元组成。其中ABCDE五个定时器单元各可以产生2路输出信号,并支持互补输出。 先看看跟HRTIM有关的时钟。别的系列有支持向上、向下计数模式的。 在利用HRTIM中的定时器单元实现PWM输出时,基于不同
[单片机]
51单片机ALE、PSEN、EA、RD、WR脚的使用
使用ALE信号作为低8位地址的锁存控制信号。 以PSEN信号作为扩展程序存储器的读选通信号,在读外部ROM是PSEN是低电平有效,以实现对ROM 的读操作。 以EA信号作为内外程序存储器的选择控制信号,当其为低电平时,对ROM的读操作限定在外部的程序存储器,当其为高电平时, 对ROM的读操作是从内部存储器开始的,并可延至外部程序存储器. 由RD和WR信号作为扩展数据存储器和I/O口的读选通、写选通信号。 使用ALE信号作为低8位地址的锁存控制信号。 以PSEN信号作为扩展程序存储器的读选通信号,在读外部ROM是PSEN是低电平有效,以实现对ROM 的读操作。 以EA信号作为内外程序存储器的选择控制信号,当其为低电平时,对ROM的
[单片机]
MCS-51单片机内部结构——CPU结构 单片机原理学习笔记(二)
CPU结构 8051内部CPU是一个字长为二进制8位的中央处理单元,也就是说它对数据的处理是按字节为单位进行的。与微型计算机CPU类似,8051内部CPU也是由算术逻辑部件(ALU)、控制器(定时控制部件等)和专用寄存器组三部分电路构成。 1.算术逻辑部件 8051的算术逻辑部件ALU是一个性能极强的运算器,既可以进行加、减、乘、除四则运算,还可以进行与、或、非、异或等逻辑运算,还具有数据传送、移位、判断和程序转移等功能。 8051算术逻辑部件ALU由一个加法器、两个8位暂存器(TMP1和TMP2)和一个性能卓越的布尔处理器组成。虽然TMP1和TMP2对用户并不开放,但可用来为加法器和布尔处理器暂存两个8位二进制操
[单片机]
基于AT89C2051单片机的VCN-MIO智能节点模板电路设计
0.引言 基于具有三个CPU且固化了LonTalk通信协议的神经元(Neuron)芯片的智能节点模板,由于Neuron芯片是八位处理器,而且只提供了11个通用I/O口,并采用了基于事件巡检的软件调度机制,故其控制功能相对较弱,使它无法完成实时性高的多进程、多任务的并行处理,不能满足采集量和控制量要求较多的多现场设备管控的高要求,且性价比较低。要满足这种高要求,就要减少Neuron芯片在外部事件上的开销,让其充分发挥它在通讯组网上的优越性,能使现场设备之间快速地交换信息,满足系统实时监控的要求;而对于提高网络节点的测控能力,必须另择门路。嵌入控制功能强、物美价廉的单片机,专门完成多节点的智能测控,构成一种基于AT89C2051
[单片机]
MCS51单片机程序设计时堆栈的计算方法解析
用C语言进行MCS51系列单片机程序设计是单片机开发和应用的必然趋势。Keil公司的C51编译器支持经典8051和8051派生产品的版本,通称为Cx51。应该说,Cx51是C语言在MCS51单片机上的扩展,既有C语言的共性,又有它自己的特点。本文介绍的是Cx51程序设计时堆栈的计算方法。 1.堆栈的溢出问题。MCS51系列单片机将堆栈设置在片内RAM中,由于片内RAM资源有限,堆栈区的范围也是有限的。堆栈区留得太大,会减少其他数据的存放空间,留得太少则很容易溢出。所谓堆栈溢出,是指在堆栈区已经满了的时候还要进行新的压栈操作,这时只好将压栈的内容存放到非堆栈区的特殊功能寄存器(SFR)中或者堆栈外的数据区中。特殊功能寄存器的内容
[单片机]
基于DSP TMS320LF2407的PWM整流技术研究
引 言
整流器作为一种AC/DC变换装置,其发展经历了由不可控整流器(二极管整流)、相控整流器(晶闸管整流)到PWM整流器(门极可关断功率开关管)的发展历程。晶闸管相控整流和二极管不可控整流对电网谐波污染严重,且网侧功率因数低。PWM整流器已对传统的相控及二极管整流器进行了全面的改进。TMS320LF2407具有快速的数据处理能力和丰富的硬件资源,作为控制芯片可以提高系统的实时响应能力和控制精度,已经被广泛应用于电气自动化控制的各个领域。
1 总体设计及硬件电路
图1为PWM整流器系统硬件框图。在这个系统中,TMS320LF2407为数字控制芯片,整流器采用SVPWM控制策略。系统硬件由主电路、
[嵌入式]