跳转到主要内容

单片机

【下载】如何使用PIC16F单片机实现低成本的D类全桥音频放大器

judy /

本应用笔记着重介绍如何使用 PIC16F 单片机(MCU)实现低成本的 D 类全桥音频放大器。

D 类放大器的基本操作是将模拟输入信号转换为脉宽调制器(Pulse-Width Modulator,PWM)输出。PWM 输出用于驱动一对 PMOSFET 和 NMOSFET 以提供放大功能。然后,放大后的信号经过一个 X 阶低通 LC 滤波器进行外部滤波,这将重现原始模拟信号,除了信号被放大外。

<font color="#0000C6" size="4"><a href="http://mcu.eetrend.com/files/2017-12/wen_zhang_/100009364-31627-5a250a0…《如何使用PIC16F单片机实现低成本的D类全桥音频放大器》</a></font>

利用单片机快速实现家庭智能控制平台

judy /

一提到智能家庭,大家可能首先想到的是各种大佬级公司搞的牛逼产品,或者说是创新产品。想想就觉得很复杂,有的用工控机,有的用树莓派,还有的用arduino,不管用什么,都绕不过服务器进行控制,比如yeelink平台,腾讯的智能硬件平台等等。其实,真实实现起来,并没有想想中这么复杂,我们甚至只用一个小的单片机就能实现。

0×01单片机实现web服务器

探讨用单片机来实现web服务器的文章通过baidu也能找到几篇,但比较详实的实现方法并没有找到,这里考虑有两种思路可以完成,一种是有线的lan模块,如w5500,这种模块本身就带有web服务的部分功能,使用起来比较简单,但是只能基于lan进行访问。另一种是通过stm32等单片机,配合网络模块来完成。当前我能想到的最简单的方法就是用stm32+esp8266来实现。

基于第一种方法,我觉得受模块性能影响比较大,受限于模块,没有开发感。于是考虑用第二种方法。这个方法里,有人用arduino来完成,这要基于c进行编程。另外,就是考虑用micropython,这样直接可以用python来实现。这里依然使用tpyboard v202。

0×02模拟实现家庭智能家居控制平台

三极管在单片机中的应用图解

judy /

三极管在数字电路里的开关特性,最常见的应用有 2 个:一个是控制应用,一个是驱动应用。

所谓的控制就是如图 3-7 里边介绍的,我们可以通过单片机控制三极管的基极来间接控制后边的小灯的亮灭,用法大家基本熟悉了。还有一个控制就是进行不同电压之间的转换控制,比如我们的单片机是 5V 系统,它现在要跟一个 12V 的系统对接,如果 IO 直接接 12V电压就会烧坏单片机,所以我们加一个三极管,三极管的工作电压高于单片机的 IO 口电压,用 5V 的 IO 口来控制 12V 的电路,如图 3-8 所示。

<center><img src="http://mcu.eetrend.com/files/2017-12/wen_zhang_/100009316-31477-1.jpg&q…; alt="三极管在单片机中的应用图解"></center><center><i>图 3-8 三极管实现电压转换</i></center>

单片机仿真器作用介绍

judy /

单片机仿真器是指以调试单片机软件为目的而专门设计制作的一套专用的硬件装置。目前已经得到了广泛的运用,那么单片机仿真器有什么作用?

<strong>单片机仿真器发展</strong>

最早的单片机仿真器是一套独立装置,具有专用的键盘和显示器,用于输入程序并显示运行结果;随着PC机的普及,新一代的仿真器大多数都是利用PC机作为标准的输入输出装置,而仿真器本身成为微机和目标系统之间的接口而已,仿真方式也从最初的机器码发展到汇编语言、C语言仿真,仿真环境也与PC机上的高级语言编程与调试环境非常类似了。

仿真机一般具有一个仿真头,用于取代目标系统中的单片机,也就是用这个插头模仿单片机,这也是单片机仿真器名称的由来。

目前,随着单片机的小型化,贴片化和具有ISP,IAP等功能的单片机的广泛应用,传统单片机仿真器的应用范围也有所缩小。而软件单片机仿真器(即单片机仿真程序)的应用逐渐广泛,单片机仿真程序即在个人计算机上运行的特殊程序,可在一定程度上模拟单片机运行的硬件环境,并在该环境下运行单片机目标程序,并可对目标程序进行调试、断点、观察变量等操作,可大大提升单片机系统的调试效率。纯软件单片机仿真器往往与硬件设计程序集成在一起发布,使得开发者可以对单片机硬件与软件进行同步开发。

单片机按键设计的四个方案详解

judy /

在单片机系统里,按键是常见的输入设备,在本文江介绍几种按键硬件、软件设计方面的技巧。一般的在按键的设计上,一般有四种方案:
一是GPIO口直接检测单个按键,如图1.1所示;
二是按键较多则使用矩阵键盘,如图1.2所示;
三是将按键接到外部中断引脚上,利用按键按下产生的边沿信号进行按键检测,如图1.3所示;
四是利用单片机的ADC,在不同的按键按下后,能够使得ADC接口上的电压不同,根据电压的不同,则可以识别按键,如图1.4所示。

基于PIC18F系列单片机的嵌入式系统设计

judy /

前 言

嵌入式系统是指以应用为中心,以计算机技术为基础,软、硬件可裁剪,适应应用系统对功能、体积、成本、可靠性、功耗严格要求的专用计算机系统。嵌入式系统是面向应用的,系统的硬件选型和软件开发模式都必须根据具体的应用确定。

永磁无刷直流电动机是电机控制研究领域的热点之一,这与其自身固有的技术优势密切相关:以电子换相取代了有刷直流电动机的机械换相。从根本上革除了普通有刷直流电动机由于电刷换相带来的火花、噪音、高故障率等一系列问题,同时又使系统的性能能够与普通有刷直流电动机相媲美,因此得到了广泛的应用。永磁无刷直流电动机的电子换相离不开电机的转子位置信号,传统的方法是采用霍尔器件或其他位置传感器检测位置信号,这使得系统的维护和制造都不方便,并且由于传感器的工作特性不稳定,给系统的安全运行带来了一些隐患。因此,无位置传感器方案引起了人们的极大兴趣。

本文结合无位置传感器永磁无刷直流电动机控制系统的开发,以 MICroChip 公司的 PIC18F452 单片机 为主控器件,并采用嵌入式实时操作系统μ C/OS-II 作为软件开发平台,详细讨论了嵌入式系统的开发模式与流程。

2. 系统硬件平台设计

基于单片机的家居安防系统设计

judy /

<strong>1 引言</strong>

现在,人们对工作和生活环境不仅要求舒适健康、可靠便利,而且更加看重安全性,并利用安防系统来提高家庭抵御各种意外情况的能力。现在的安防系统可借助计算机技术、IC 卡技术、通信技术等来实现,CAN总线应用于安防系统对家居智能化发展起到了良好的促进作用。CAN总线是一种应用较为广泛的现场总线,它支持多主节点,有完善的错误处理机制,通信速率快,传送距离远,可挂接控制设备多。而把DTMF 技术应用于安防系统,不需要专门的布线,不占用无线电频率资源,没有电磁污染。文中设计了一种基于CAN 总线和DTMF技术的以AT89S52单片机为核心的新型智能家居安防系统,使原来小区安防系统的实时性和可靠性有了一个新层次的提高。本系统可以对整个家居的安全环境进行实时监控,监控的范围包括室内防盗、火灾报警、煤气泄露等一系列不安全因素。一旦有上述事故发生,该报警系统就会发出相应的报警信息,用语音播出警情类别,向远方用户和相关部门提供警情语音。

<strong>2 系统总体构成</strong>

基于单片机的智能计步器设计

judy /

<strong>1 引言</strong>

当今社会,随着经济的发展,人们生活水平的提高,肥胖的人越来越多,也就导致了越来越多的疾病产生,因此,人们越来越关注健康问题,而锻炼身体是让自己健康的最有效的方法。因此计步器应运而生,就成了时下流行的趋势。步行时,通过伸缩肌肉,血液在流动时的抵抗值下降,血压下降且稳定。经常步行的人很少患高血压或低血压病。坚持步行能减少血管内附着的脂肪性物质,使体重减轻,也逐渐减少心脏的负荷。而基于单片机为核心控制的计步器有着精确,可靠,稳定,方便等优点,已被大多数人所接受。通过计步器人们可以知道自己跑了多少步,实时掌握自己的锻炼情况。

<strong>2 总体设计方案</strong>

计步器由振荡电路、复位电路、显示电路以及按键电路几个部分组成,由电池进行供电。系统结构图如图1 所示。

单片机中C语言的程序与数据存储

judy /

<font size="3"><strong> 一、五大内存分区:</strong></font>

内存分成5个区,它们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。

1、栈区(stack):FIFO就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。

2、堆区(heap):就是那些由new分配的内存块,它们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。

3、自由存储区:就是那些由malloc等分配的内存块,它和堆是十分相似的,不过它是用free来结束自己的生命。

4、全局/静态存储区:全局变量和静态变量被分配到同一块内存中,在以前的C语言中,全局变量又分为初始化的和未初始化的,在C++里面没有这个区分了,他们共同占用同一块内存区。

5、常量存储区:这是一块比较特殊的存储区,它们里面存放的是常量,不允许修改(当然,你要通过非正当手段也可以修改,而且方法很多)

单片机控制lcm液晶模块指令

judy /

用单片机来控制LCM模块,方式十分简单,LCM模块其内部可以看成两组寄存器, 一个为指令寄存器IR,一个为数据寄存器DR,由RS引脚来控制。所有对指令寄存器或 数据寄存器的存取均需检查LCM内部的忙碌标志BF,此标志用来告知LCM内部正在 工作,并不允许接收任何的控制命令。而此位的检查可以令RS=0,用读取D7来加以判 断,当D7为0时,才可以写入指令或数据寄存器。LCM控制指令共有11组,以下分别介 绍。

1. 清屏

清屏指令格式如下:
<center><img width="600" src="http://mcu.eetrend.com/files/2017-11/wen_zhang_/100009017-30303-1.jpg&q…; alt="单片机控制lcm液晶模块指令"></center>

指令代码为01H,将DDRAM数据全部填入“空白”的ASCII代码20H,执行此指令 将清除显示器的内容,同时光标移到左上角。