关于51单片机晶振的二十一个问题 一,为什么51单片机爱用11.0592MHZ晶振?其一:因为它能够准确地划分成时钟频率,与UART(通用异步接收器/发送器)量常见的波特率相关。特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确,常被使用的。其二:用11.0592晶振的原因是51单片机的定时器导致的。用51单片... 2023-06-13 51单片机晶振PCB文章单片机基础知识
新型的按键扫描程序仅三行代码 我在网上游逛了很久,也看过不少源程序了,没有发现这种按键处理办法的踪迹,所以,我将他共享出来,和广大同僚们共勉。我非常坚信这种按键处理办法的便捷和高效,你可以移植到任何一种嵌入式处理器上面,因为C语言强大的可移植性。 同时,这里面用到了一些分层的思想,在单片机当中也是相... 2023-06-13 新型按键扫描程序三行代码单片机文章基础知识
单片机驱动为什么要设置为低电平有效 问题:单片机的外围电路设计及程序编写大多是以低电平有效来驱动电路的?回答:这是因为单片机的低电平时的灌电流一般比高电平时的拉电流要大。如一般的51 系列单片机的I/O 口可以输出4mA 的拉电流或20mA 的灌电流;而其他也有一些芯片,如PIC单片机有一些非常实用的通用特性:I/O口... 2023-06-13 单片机驱动设置低电平有效文章单片机基础知识
单片机不起振的几个原因 现如今,单片机已经成为电子电路设计当中必不可少的一部分,单片机在电路中起到一种对信息进行汇总处理的作用。在工作过程当中,晶振是影响单片机工作效率的一部分因素,晶振是单片机内部的一种时钟频率,频率越高,说明单片机的运行速度越快。晶振之所以重要,是因为单片机的所有指令... 2023-06-13 单片机晶振PCB电路设计文章基础知识
51单片机七个不易掌握的概念总结(初学者必看) 一、总线:我们知道,一个电路总是由元器件通过电线连接而成的,在模拟电路中,连线并不成为一个问题,因为各器件间一般是串行关系,各器件之间的连线并不很多,但计算机电路却不一样,它是以微处理器为核心,各器件都要与微处理器相连,各器件之间的工作必须相互协调,所以就需要的连线就很多... 2023-06-13 单片机总线堆栈仿真文章基础知识
嵌入式入门:八个学习顺序玩转单片机 数字I/O的应用在大多数的单片机实验中,跑马灯实验正是数字I/O的典型应用,也是跑马灯的实验被安排第一个的原因。通过将单片机的I/O引脚位进行置位或清零来点亮或关闭LED灯,虽然简单,但是这就是数字电路中的逻辑功能。数学I/O应用的实验还有按键实验,当按下某键时,某LED灯被点亮... 2023-06-13 单片机嵌入式基础知识文章
怎样选择一款合适的晶体振荡器 本文介绍了一些足以表现出一个晶体振荡器性能高低的技术指标,了解这些指标的含义,将有助于通讯设计工程师顺利完成设计项目,同时也可以大大减少整机生产厂家的采购成本。一、 总频差:在规定的时间内,由于规定的工作和非工作参数全部组合而引起的晶体振荡器频率与给定标称频率... 2023-06-13 单片机晶振的选择文章基础知识
单片机当中ICP与ISP有哪些不同? 在开发阶段改code时, 不再需要将MCU从板子上拔起来, 拿到烧录器上烧, 然后再装回去。可以直接利用ISP/ICP Programmer做板上烧录, 为开发者提供了极大的便利性。在量产阶段客户可以采用”先焊到板子上再烧code”的方式, 将烧code的动作安排在生产线的某一站。那么传... 2023-06-13 单片机基础知识ISPICP文章
几种常用的单片机系统RAM测试的方法介绍 1 RAM测试方法回顾(1)方法1该方法是分两步来检查,先后向整个数据区送入#00H和#FFH,再先后读出进行比较,若不一样,则说明出错。(2)方法2方法1并不能完全检查出RAM的错误,分析介绍了一种进行RAM检测的标准算法MARCH—G。MARCH一G算法能够提供非常出色的故障覆盖率,但是所需... 2023-06-13 单片机RAM故障测试文章基础知识
通过学习USART1深入STM32F107VCT6的串口通信 在STM32的参考手册中,串口被描述成通用同步异步收发器(USART),它提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互联网),智... 2023-06-13 USART1STM32串口通信文章单片机基础知识
单片机系统开发规范化问题 系统开发的规范化问题随着人才流动的加快和研发周期的缩短,我们个人需要快速高效的完成自己的设计,维护和升级,公司需要人走不影响项目进度、新员工很快就能接手。这就需要:一个系统设计完成以后,它不应该仅仅是一些源代码,还应该包括各种各样的开发文档。(这对以后自己对系统的... 2023-06-13 单片机程序设计规范文章基础知识
详解DSP、FPGA及其组合方案的选择 1 DSP和FPGA的结构特点1.1 DSP的结构特点DSP是一种具有特殊结构的微处理器。DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP 指令,可以用来快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有... 2023-06-13 DSPFPGA单片机文章基础知识
单片机外部中断详解及程序 如果这个时钟足够准确而又不掉电的话,它可能一直处于这种封闭运行状态。但事情往往不会如此简单,在时钟刚刚上电、或时钟需要重新校准、甚至时钟被带到了不同的时区的时候,就需要重新调校时钟,这时就要求时钟就必须具有调校功能。因此单片机系统往往又不会是一个单纯的封闭系... 2023-06-13 单片机外部中断详解程序文章基础知识
单片机知识的一些小总结 理了下当时学习单片机不明白的概念,自己总结和百度整理来的,所以有可能会有不当之处,希望大家见谅硬件篇MCU:微控制器,就是指单片机这类,控制是mpu最根本的区别MPU:微处理器,就是cpu这一类,用于处理数据和运算;当然单片机也有处理和运算能力,但是在能力上弱了很多,更大的区别是相比单... 2023-06-13 单片机基础知识总结文章
AD数据采集的“数字滤波”:10个“软件滤波程序” 1、限副滤波A、方法:根据经验判断,确定两次采样允许的最大偏差值(设为A),每次检测到新值时判断: 如果本次值与上次值之差A,则本次值无效,放弃本次值,用上次值代替本次值 B、优点:能有效克服因偶然因素引起的脉冲干扰 C、缺点:无法抑制那种周期性的干扰,平滑度差程序:/* A值可根据实... 2023-06-13 单片机AD数据采集数字滤波软件滤波程序文章基础知识
串行口通信原理及操作流程 51单片机的串行口主要由两个独立的串行数据缓冲寄存器SBUF(发送缓冲寄存器和接收缓冲寄存器)和发送控制器、接收控制器、输入移位寄存器及若干控制门电路组成。51 单片机可以通过特殊功能寄存器SBUF队串行接收或串行发送寄存器进行访问,两个寄存器共用一个地址99H,但在物理上... 2023-06-13 串行口通信原理操作流程文章单片机基础知识
关于串行口控制寄存器SCON 具体步骤如下:1. 确定T1的工作方式(编程TMOD寄存器)2. 计算T1的初值,载入TH1、TL13. 启动T1(编程TCON中的TR1位)4. 确定串行口工作方式(编程SCON寄存器)5. 串行口工作在中断方式时,要进行中断设置(编程IE,IP)在第4步初始化当中:REN=-1;SM0=0;SM1=1;这三位都是串行口控制寄存器SCON里的... 2023-06-13 串行口控制寄存器SCON文章单片机基础知识
单片机提高C语言代码效率的方法 现笔者以一个LED闪烁的程序为例与您探讨。#i nclude//包含头文件sbit led=P2^0;//定义位变量led,使其关联单片机管脚P2.0void Delayms(unsigned int t);//定义延时函数int main(void)//主函数(C语言程序入口函数){while(1){led=0;//P2.0拉低,点亮LEDDelayms(500);/... 2023-06-13 单片机C语言代码效率方法文章基础知识
51单片机开发原则知识介绍 1.尽可能让变量使用占用代码空间最小的变量类型。例如无符号字符型和位操作(8051作为一款8位处理器提供了位操作支持,而且大多数操作指令都是8位或者位操作的通常用小的数据类型去编写代码其效率更高)2.尽可能使用无符号类型数据(8051单片机不直接支持有符号的数据类型,有符号... 2023-06-13 51单片机开发原则文章单片机基础知识
彻底解决AVR单片机EEPROM数据丢失问题 编译环境:WinAVR-20060421+AVRStudio4.12.498ServicePack4EEPROMSave.h文件: /*EEPROM管理定义*/ #defineEepromPageSize 64 //页容量定义 #defineEepromPage0Addr 0x0000 //各个页的其始地址定义 #defineEepromPage1Addr (EepromPage0Addr+Eep... 2023-06-13 AVR单片机EEPROM数据丢失问题文章单片机基础知识
关于OLEDSSD1306的滚动显示 在SSD1306控制器内部有滚动显示的控制命令,以向右滚动显示为例,命令如下OLED_SD1306_WriteCmd(0x26);//rOLED_SD1306_WriteCmd(0x00);//dutyOLED_SD1306_WriteCmd(0x04);//start pageOLED_SD1306_WriteCmd(0x07); //speed OLED_SD1306_WriteCmd(0x... 2023-06-13 OLEDSSD1306文章单片机基础知识
步进电机,伺服电机,舵机的区别 步进电机:是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。简单的说是靠电脉冲信号来控制角度与转动圈数。所以说他只靠脉冲信号来决定转动多少。因没有传感器,所以停止角度会有偏差。但是精确的脉冲信号则会将偏差减至最低伺服电机:靠伺服控制电路来控制电机的... 2023-06-13 步进电机伺服电机舵机区别文章单片机基础知识
单片机位操作的逻辑运算详解 首先,对一个字节,8位也好,16位也好,32位也好,只有两种操作,一种叫置位,一种叫清零。先从置位说起。置位可以对全部位进行操作,也可以对某个位进行操作。全部操作很简单直接赋值就ok了。我们假设一个无符号字符型uchar为8位。且最低位为0,也就是说0-7位,而不是1-8位,那么改变值的状态... 2023-06-13 单片机位操作逻辑运算详解文章基础知识
STM32 Printf函数实现方法 下面就说一下使用printf需要做哪些配置。有两种配置方法:一、对工程属性进行配置,详细步骤如下1、首先要在你的main 文件中 包含“stdio.h” (标准输入输出头文件)。2、在main文件中重定义函数 如下:// 发送数据int fputc(int ch, FILE *f){USART_SendData(USART1, ... 2023-06-13 STM32printf函数程序文章单片机基础知识
STM32中用到的Cortex-M3寄存器说明 在STM32的固件库中定义了三个结构体与这三个寄存器组相对应,这三个结构体与ARM手册中寄存器的对应关系如下:1)、NVIC寄存器组STM32的固件库中有如下定义:typedefstruct{vu32ISER[2];u32RESERVED0[30];vu32ICER[2];u32RSERVED1[30];vu32ISPR[2];u32RESERVED2[30];vu32ICPR[2]... 2023-06-13 STM32Cortex-M3寄存器说明文章单片机基础知识