单片机
阏男秀
Python
展开
-
51单片机总结之程序状态字(PSW)
1.简介PSW是一个8位寄存器。PSW的全称是Program Status Word,即程序状态字。其各位的含义如下:程序状态字各位的含义PWS位地址D7D6D5D4D3D2D1D0含义CYACF0RS1RS0OV-P下面分别对各位简单总结:2.进位标志位原创 2013-12-09 18:54:07 · 44771 阅读 · 4 评论 -
任务调度算法汇总
任务调度算法汇总原创 2016-10-05 13:54:54 · 19294 阅读 · 0 评论 -
【STM32】keil MDK下重定向printf到串口(基于STM32CubeMX)
在keil MDK环境下重定向printf与keil C51不同,由于本人使用了STM32CubeMX生成工程模板,HAL_USART_Transmit函数即是模板里串口输出的函数。由于printf最终是调用fputc输出数据,fputc是一个弱引用(weak)函数,覆写即可重定向printf。原创 2016-09-30 16:58:50 · 9497 阅读 · 2 评论 -
HT66F70A使用总结之定时器
HT66F70A芯片的定时器与51的定时器有很大的不同,我花费了很大的功夫才把HT66F70A的定时器弄清楚,下面是总结。原创 2014-01-13 21:41:55 · 8195 阅读 · 17 评论 -
HT66F70A使用总结之IO端口
背景:合泰公司开发了一款IDE3000编译器,想找一些学生测试编译器是否有BUG,不过测试编译器需要有芯片,于是经过长达两个半月的测试,完成测试编译的任务同时,我也了解了合泰HT66F70A芯片的使用方法。原创 2014-01-08 15:59:17 · 6713 阅读 · 5 评论 -
【STM32】使用STM32cubeMX的库读写FLASH数据
做项目时有时候需要对一些数据进行掉电可存储,一般来说可以把这些数据存储到到EEPROM或FLASH,这次项目中我使用到的芯片是STM32F051C8T6,只有64KB的FLASH,没有EEPROM。这个时候就需要考虑FLASH的读写操作。原创 2016-10-17 12:03:43 · 67403 阅读 · 19 评论 -
【ESP8266】ESP8266的MQTT客户端搭建教程(基于NONS_SDK_v2.0)
前言MQTT是IBM开发的一个即时通讯协议,面向M2M和物联网的连接,采用轻量级发布和订阅消息传输机制,并且有可能成为物联网的重要组成部分。ESP8266是一款物美价廉的Wi-Fi芯片,集成Tensilica L106 钻石系列的32 位处理器和片上SRAM,多达17 个GPIO口,并拥有IIC、IIS、UART、PWM、IR遥控等片上资源。ESP8266还提供官方的软件开发开发包(...原创 2016-11-08 22:18:18 · 55860 阅读 · 123 评论 -
【ESP32】M5Stack ESP32 套件初体验——开发环境脱坑记
作为一个物联网开发爱好者,偶尔会做一些单片机小玩意儿,可是由于自身资源和技术有限,做出来的玩意一直都是开发板或面板包的状态。后来最近看到了一篇关于M5Stack ESP32的文章。其中「堆叠即是产品」的概念让我耳目一新。原创 2017-08-29 23:01:58 · 21760 阅读 · 4 评论 -
【STM32】keil环境下移植cJSON
由于工作需要,需要在STM32上使用Json,所以把一个JSON库移植到了STM32(keil MDK),实际上keil已经有了JSON扩展包(Jansson),只需要从keil官网上下载JSON pack再导入就行,有兴趣的可以看这篇文章。这篇文章主要讲解如何把cJSON移植到keil环境下,用于STM32。原创 2016-09-30 16:49:38 · 23348 阅读 · 12 评论 -
ESP8266_NONOS_SDKv2.x的代码兼容到SDKv3.0.0步骤
前言很久没有玩ESP8266了,不知道什么时候乐鑫官方发布了ESP8266_NONOS_SDKv3.0.0,本文是使基于ESP8266_NONOS_SDKv2.x.x的app兼容到SDKv3.0.0的步骤。环境同样还是安信可 ESP 系列一体化开发环境。环境Windows 10安信可 ESP 系列一体化开发环境(基于 Windows + Cygwin + Eclipse + GCC 的...原创 2018-10-30 22:33:31 · 7664 阅读 · 6 评论 -
嵌入式系统的多道程序技术
嵌入式操作系统可以分为两种类型:单道程序设计和多道程序设计。所谓单道程序设计,就是在操作系统当中,在任何时候只能有一个程序在运行。所谓多道程序设计,就是在操作系统当中,允许多个程序同时存在并运行。在现代操作系统当中,为了提高系统资源的利用率,普遍采用了多道程序技术。在多到程序技术中,大多数传统操作系统是使用进程或者线程技术。转载 2016-07-23 09:23:08 · 1274 阅读 · 0 评论 -
Keil C51重定向printf到串口
进行C/C++开发的时候我们都会需要打印调试信息,打印调试信息时我们习惯使用printf函数,但是在Keil C51环境下,由于我们的程序是下载到单片机里,使用printf函数时不能直接打印到串口上,这个时候就需要我们对printf函数输出重定向。原创 2016-09-05 11:31:48 · 21294 阅读 · 2 评论 -
函数表驱动法
在这篇文章中,简单介绍了过长的if-else判断解决办法,里面提到了一个方法——函数表驱动法。由于本人在单片机开发中经常需要用到状态机轮询,这里可以使用switch-case和函数表驱动。下面给出一个在VS2013环境下编译通过的示例,方便以后移植。原创 2016-10-23 14:52:24 · 2290 阅读 · 0 评论 -
51单片机总结之定时器
1.引言我开始看单片机的书籍比较早,只有C语言基础而没有数电基础(不知道要学),所以我在很多地方概念都是模模糊糊的。尤其是什么控制位什么寄存器什么逻辑电路都不懂,只纯粹的想写C语言操作单片机就行了。现在有了一定的基础,发现了很多以前知其然不知其所以然的东西,所以在这里稍微的总结一下,同时我想可能对基础不扎实的同学有一定的帮助(其实我基础也不扎实~嘻嘻)。 2.定时器的控制寄存器原创 2013-12-10 11:05:57 · 5463 阅读 · 1 评论 -
51单片机总结之微型计算机(单片机)的组成
1.计算机的基本结构计算机一般由运算器、控制器、存储器、输入设备及输出设备五大部分组成。通常把运算器、控制器、存储器这三部分合称为计算机主机,输入输出设备称为计算机的外围设备。运算器和控制器合称为中央处理单元CPU。2.字长计算机内所有的信息都是以二进制代码的形式表示的。一台计算机所用的二进制代码的位数称为该计算机的字长。目前国内应用最多的是8位微机,16微机和32微机原创 2013-12-13 11:27:35 · 2052 阅读 · 0 评论 -
51单片机总结之时序单位
1.引言8051的时序单位有4个,分别是时钟周期、状态周期、机器周期和指令周期。如图(图片来自网络)2.时钟周期(振荡周期)P时钟周期就是为单片机提供定时信号的振荡源的周期,即晶振、RC振荡器等提供给单片机的频率的倒数。时钟周期又可以称为节拍或拍,用P表示。3.状态周期S两个时钟周期为一个状态周期,可以用S表示。第一个时钟周期(节拍)定义为P1,原创 2013-12-12 23:36:16 · 7073 阅读 · 0 评论 -
SPI接口基本原理与结构
SPI(Serial Peripheral Interface,串行外围设备接口)是由Motorola(摩托罗拉)公司开发,用来在微控制器和外围设别芯片之间提供一个低成本、易使用的接口(SPI有时候也被称为4线接口)。这种接口可以用来连接存储器(存储数据)、 A/D转换器、 D/A转换器、实时时钟日历、 LCD驱动器、传感器、音频芯片,甚至其他处理器。支持SPI的元件很多,并且还一直在增加。转载 2016-04-09 14:13:38 · 10027 阅读 · 0 评论 -
为什么有的芯片电源引脚在引脚中间——减小内部电感
在同步时序电路系统中,许多设备的输出端电平可能同时发生转换,毛刺和噪声将非常严重,以至于电路无法可靠地工作。这个问题在大尺寸印制电路板上尤为严重,因为器件间的连线以及地线更长。如果一组数据线恰好同时发生从高到低的电平转换,将产生非常大的地线电流,可能使整个电路发生逻辑错误。这种偶发性故障是由噪声引起的,它也说明了为什么有必要对微处理器系统的扩展存储器进行测试(这种测试使存储器的16根数据线和24根转载 2015-03-24 15:35:39 · 2734 阅读 · 0 评论 -
STC12C56XX的时钟周期
最近在做项目的时候要基于STC12芯片写一个延时函数,延时函数delay需要根据时钟周期来计算。查了一下STC12的数据手册:看到这里的时候就明白了,传统的51单片机指令周期是时钟周期的12倍,STC12的ADD指令周期是两倍。12倍的意思就是说:如果用12M晶振,则51的指令周期是1us;STC12则比51快了许多。但是STC12后面的指令不一定是时钟周期的两倍,原创 2015-03-10 16:13:38 · 2352 阅读 · 0 评论 -
STC51单片机下载程序的时候不要在VCC端接DHT11
今天使用51单片机学习板调试DHT11湿度传感器,下载程序的时候把DHT11烧掉了。原创 2015-01-05 12:41:52 · 13046 阅读 · 1 评论 -
关于单片机代码的风格
程序不仅要被计算机读,还要给程序员读。一个风格清爽而严谨的程序更容易被读懂,更容易被修改和排错。良好的编程风格和正确的习惯还有助于保持思维清晰,写出正确无误的代码。特别是一个开发团队共同工作时,保持一致的编程风格尤其重要。目前单片机开发人员对编程风格问题重视度还不够。事实上,每个初学者在项目初期都会因为不良编程习惯浪费大量时间,因此若能在开始写程序时就重视编程风格问题,对顺利渡过提高阶段有很大帮助。篇幅所限,本节仅浅述编程风格几个最基本原则。转载 2016-05-08 15:07:47 · 2407 阅读 · 0 评论 -
JTAG的调试原理
JTAG的基本原理JTAG(ointTestActionGroup,联合测试行动组)是一种国际标准测试协议(IEEE1149.1兼容)。标准的JTAG接口是4线——TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。转载 2016-08-26 22:43:24 · 15889 阅读 · 2 评论 -
使用ESP8266(基于官方SDK)接入阿里云物联网平台
引言作为物联网开发者,ESP8266应该一点都不陌生了。只需十几块钱淘宝一个小开发板,就可以连上Wi-Fi接入互联网,尽情享受从手机端或Web端控制设备的乐趣。ESP8266接入Wi-Fi是没问题,但是用户端不能直接设计成与ESP8266通信,还是需要一个中心服务器作为用户端和设备端的代理。一种方案是自己搭建设计这么一个中心服务器,只是费时费力;另一种方案,就是直接使用大厂提供的物联网平台服务...原创 2018-08-01 17:06:56 · 85153 阅读 · 193 评论