N76E003
文章平均质量分 62
XS30
这个作者很懒,什么都没留下…
展开
-
N76E003控制双路步进电机(开环)
0、引言实验材料类目型号MCUN76E003步进电机42步进步进电机驱动器设置800细分电源24VTTLCH3401、程序逻辑1.1、程序采用PWM中断,实现对PWM脉冲计数,由此实现开环控制步进电机,设定为下降沿触发。1.2、步进电机驱动器提供EN、Pulse、DIR、COM四个接口,其中COM接单片机的VCC,EN用于控制电机使能,DIR用于电机换向,Pulse为输入脉冲。1.3、根据上述说明,单片机PWM持续产生脉冲,通过EN控制步原创 2020-12-10 17:15:05 · 1033 阅读 · 4 评论 -
基于单片机的电机转速PID控制
0、引言&实验器材2020的国庆节一个人呆在实验室有点无聊,翻了翻还未填上的坑,发现对PID的理解一直停留在纸面上,不曾在现实中的系统中实际操作过(倒立摆和小四轴这些DIY入门训练都还没完整的做过,实在不甘心),于是从零搭建实验平台,以便深入理解PID算法,最后便有了此篇博客,仅作为记录本人学习之用,如有错误,还望指出,谢谢。由于使用的串口助手没有曲线绘制功能,故暂无实际效果图(PID参数效果通过时间计算比较)以下为本次所使用的材料类目型号MCUN76e003电机原创 2020-10-10 00:50:16 · 19105 阅读 · 15 评论 -
N76E003 驱动 UC1705并口屏(8080)
Tips:本文主要代码源于原子哥STM32驱动8080液晶屏代码,在此表示感谢。通过数据手册可以得知CD引脚其实就是控制命令与数据切换的I/O。在程序中我们使用RS代替下图为8080并口连接图下图为N76E003引脚分配(因为没钱开板,所以本次全部使用热转印制作测试,故GPIO分配存在不合理的地方)其中D0-D7使用下列函数赋值,具体操作就是每次右移一次,到最低位与1进行&运...原创 2019-03-11 20:24:59 · 2696 阅读 · 0 评论 -
N76E003 下载引脚 Dat、Clk、Rst做常规使用
N76e003单片机在驱动8080并口屏时,因为占用引脚太多,无法实现更多的功能,所以我对下载引脚动了歪脑筋。在之前的博文中,我尝试了使用Dat(P16)、Clk(P02)的串口功能——N76E003串口1、串口0,中断程序(模式0),既然串口都可以用,那常规IO不就也可以吗。需要注意的是,这几个引脚无法再调试中正常使用,如需要debug,建议用点灯、打印等办法//--------------...原创 2019-03-15 11:06:43 · 4659 阅读 · 0 评论 -
N76E003 驱动 串口屏
原创 2019-02-24 17:10:47 · 1092 阅读 · 0 评论 -
N76E003 BH1750光照传感器
BH1750.c#include "N76E003.h"#include "Common.h"#include "Delay.h"#include "SFR_Macro.h"#include "Function_define.h"#include "BH1750.h"#include <math.h> //Keil library原创 2019-01-30 20:59:09 · 1531 阅读 · 0 评论 -
N76E003 HMC5883
HMC5883.c#include "N76E003.h"#include "Common.h"#include "Delay.h"#include "SFR_Macro.h"#include "Function_define.h"#include "HMC5883.h"#include <math.h> //Keil library原创 2019-01-29 20:09:30 · 349 阅读 · 0 评论 -
DIY小型气象站(单电池供电)——持续更新
材料电源:18650电池1节(2000mah)主控:N76E003单片机传感器:BMP180气压传感器、BH1750光照度传感器无线串口模块:LC12S(2.4G)LDO:XC6204外壳:3D打印PLA开发环境:KEIL4电路其中PPG与PPG1为推挽输出,用于给传感器供电,与对IIC总线提供上拉电源。其中CS1为无线串口模块休眠控制管脚,设置为开漏输出。(特点见下图)...原创 2019-02-05 01:38:10 · 2226 阅读 · 0 评论 -
N76E003 超声波测距
#include "N76E003.h"#include "Common.h"#include "Delay.h"#include "SFR_Macro.h"#include "Function_define.h"#define uint unsigned int#define uchar unsigned char#define NOP() {_nop_();_nop_();...原创 2019-02-01 23:45:23 · 1007 阅读 · 0 评论 -
Keil多次调用头文件导致重定义报错(L104)
分为三个文件Main.c(主程序文件)LCD.c(液晶屏驱动程序)LCDFont.h(液晶屏字库&图形库)调用结构:Main.c同时调用LCD.c和LCDFont.h(图形库)LCD.c调用LCDFont.h(字库)此时会报错L104重定义(字库和图形库)修改方式:新建图形库————LCDImg.h取消Main.c中调用LCDFont.h改为调用LCDImg.hL...原创 2019-04-06 13:33:55 · 3551 阅读 · 0 评论 -
N76E003之ADC 多通道采样
首先让我们来看看N76E003单片机的ADC工作方式,从下图中可以看到ADCHS寄存器决定当前使用哪一个通道的寄存器。接下来我们再来看看具体的寄存器含义接下来就是N76e003库中包含的相关宏定义,可以看到每次使能一个ADC通道时,会先关闭所有通道,再去打开指定对象的通道,之后将对应ADC设置为输入模式#define Enable_ADC_AIN3 ADCCON0&=0xF0...原创 2019-03-28 00:04:53 · 3832 阅读 · 2 评论 -
N76E003之模拟EEPROM
之前在使用STM32时,常可以将内部flash作为数据储存,用于保存diaodian原创 2019-04-14 02:17:41 · 5796 阅读 · 9 评论 -
N76E003之ADC采集NTC温度
RG选用10k 1%精度NTC热敏电阻,R1使用10k 1%精度贴片电阻,电路如下图1所示,使用N76E003单片机AIN4通道进行采样,使用带隙电压进行修正。(图1)下图2为NTC热敏电阻数据手册中给出的电阻值对应温度表(图2)在程序中建立一温度/电阻对应数组(其中温度为数组的对应位)//正温度数组 float TemperList1[55]={32.1,30.6,29.1,2...原创 2019-04-22 11:50:49 · 4683 阅读 · 0 评论 -
N76E003 避坑指南(持续更新)
Tips:本文仅作为我个人在使用N76E003单片机过程中遇到的一些问题,可能不具有广泛性,望周知!单片机内部的10KHz低速振荡器,受温度影响较大,如需要精准定时,请使用16MHz振荡器或外部晶振。(使用定时唤醒时,设定50S唤醒一次,一小时启动一次,竟然能偏差十几分钟。。。)当单片机有多个中断程序时,尽量设定好各自的优先级。(但是串口1如果设定了优先级,有可能会失效。。。)...原创 2019-05-14 15:42:47 · 7420 阅读 · 2 评论 -
N76E003 IIC OLED
#include "N76E003.h"#include "Common.h"#include "Delay.h"#include "SFR_Macro.h"#include "Function_define.h"#include "math.h"#include "oledfont.h"#define u8 unsigned char #define u32 unsigne...原创 2019-05-12 11:51:55 · 2212 阅读 · 5 评论 -
N76E003 之 RS485 通讯
RS485技术参数两线电压差2~6V,兼容TTL电平10m距离,最高速度35Mbps。1km距离,100Kbps一般最多支持32个节点,某些特制芯片可达400终端电阻:120R通讯链路方式:总线型...原创 2019-06-03 03:07:46 · 1160 阅读 · 0 评论 -
N76E003 旋转编码器 EC11
1、概述本文所使用的编码器为EC11旋转编码器,该编码器由两个部分组成,第一部分(3脚ACB)分别为编码器A B相和公共端(接地);第二部分(2脚S1、S2)为按键,按下后导通。2、电路图如下图所示其中EC11_A接P17、EC11_B接P30;电容103为0.01uf3、信号分析由上图中可以看出,当我们使用A相上升沿触发中断时,B相如果为高电平,则是顺时针旋转,反之则是逆时针旋...原创 2019-07-14 19:46:51 · 7811 阅读 · 0 评论 -
N76E003 驱动 ST7567 (SPI串口)
需要工程文件包可在这里下载先液晶屏参数再看DXP原理图(+Bat为3.3V),LCD_Rst为硬件复位引脚,如不需要可直接设为高电平。BG_V/BG_G为背光端,单片机控制背光可使用三极管。初始化流程对比度调节COG.c文件代码#include "N76E003.h"#include "SFR_Macro.h"#include "Function_define.h"#in...原创 2019-07-10 18:44:18 · 11627 阅读 · 0 评论 -
DIY逻辑充电器
1、设计原因由于我经常开发一些奇奇怪怪的小东西,所以手上有较多锂电池,长时间保存对我这种懒人带来的困扰,正常逻辑是每次充电完成后,由人工更换下一个电池充电,如此往复,如使用多个充电器同时进行此项工作(并行),成本与效率均较高,于是设计了这个逻辑充电器,其最大支持4块电池充电,但每次充电一块,单块充电完成后,由单片机读取充电芯片信号,后关闭该通道充电,并开启下一个充电通道,如此往复,是一种用时间换...原创 2019-08-20 20:04:17 · 360 阅读 · 0 评论 -
N76E003 BMP180
#include "N76E003.h"#include "Common.h"#include "Delay.h"#include "SFR_Macro.h"#include "Function_define.h"#include "bmp180.h"原创 2019-01-27 11:24:10 · 501 阅读 · 0 评论 -
N76E003 低功耗(掉电模式&管脚中断唤醒)
N76E003每个管脚都提供管脚输入中断功能,用于检测管脚电平状态,如按键或键盘是否按下。最多配置8个I/O管脚用于管脚中断。任何按键按下时通过边沿或电平触发产生一个管脚中断事件。管脚中断能 使MCU从空闲模式或掉电模式唤醒可以通过外部中断使N76E003从掉电模式唤醒。触发外部中断管脚会重启系统时钟,在振荡器稳定后,设备执行外部中断对应的中断服务程序( ISR)。 从ISR返回后,设备立...原创 2019-01-31 19:51:44 · 6889 阅读 · 7 评论 -
N76E003 夏普GP2Y1010 PM2.5
首先来看传感器内部结构与单片机的连接图。由下图可知,实际上使用的I/O就是3、5脚。其中3脚为PWM驱动LED闪烁频率的引脚,在下文中可以看到时序。而5脚Vo则是传感器检测到的灰尘,而输出的电压值。在下文的程序中,将使用N76E003单片机自带的带隙电压进行测量,以此保证ADC不被供电电压影响。下图为GP2Y1010传感器的线序(注意,线的颜色不一定一致)下图为3脚输入的电平,这里我们使用...原创 2019-01-31 18:04:32 · 1894 阅读 · 0 评论 -
四、单片机读取ID卡(硬件调试及读码)
由于本人除了比较懒之外,还比较穷,手头只有台古董模拟示波器,带宽只有20M,所以有些波形需要“意会”,废话不多少,我们来看图说话。1、功率放大电路&amp;amp;amp;amp;125Khz载波......原创 2018-10-01 23:17:05 · 14508 阅读 · 26 评论 -
N76E003 PWM中断及设定新的占空比
首先还是来看看PWM中断寄存器,及其含义。PWM模块带有标志位 PWMF (PWMCON0.5) 用来标志当前 PWM周期完成状态。PWMF通过软件清零。别忘记了使能PWM中断,以及开启总中断。再来看看PWM中断的中断号。就是这么简单,就是这么直接,接下来我们就开始配置代码吧。在本次的例程中,我们将在中断中,修改初始设定的占空比,最后再逻辑分析仪中进行查看。void main...原创 2018-09-26 02:06:38 · 8356 阅读 · 2 评论 -
N76E003 PWM程序及分析2(互补模式&死区插入)
互补模式是N76E003单片机提供的第二种PWM输出模式,相较于上一次我们所讨论的N76E003 PWM 程序及分析(边沿对齐、独立输出模式),我们下面就来看看此种模式有合不同。首先我们需要了解,什么是“死区时间”通常,大功率电机、变频器等,末端都是由大功率管、IGBT等元件组成的H桥或3相桥。每个桥的上半桥和下半桥是是绝对不能同时导通的,但高速的PWM驱动信号在达到功率元件的控制极时,往往...原创 2018-09-24 23:18:55 · 4900 阅读 · 1 评论 -
N76E003串口1、串口0,中断程序(模式0)
关于串口1,串口0中断的相关寄存器配置请看N76E003双串口中断配置、问题及解决方法 完整代码已在本文中贴出,如出现无法编译的问题,可以考虑下载本文的工程文件 工程文件在此下载 串口1控制寄存器与串口0命名上后置”_1”再次不再赘述,官方技术手册表述如下 N76E003包含两个具备增强的自动地址识别和帧错误检测功能的全双工串口。由于两个串口的控制位是 一样的,为了区分...原创 2018-09-13 18:47:38 · 9198 阅读 · 0 评论 -
N76E003 PWM之极性控制
可能一些同学可能对PWM的极性控制不怎么理解(对,说的就是我自己。。。),那么就让我们在本次博文中,一起来探究下极性控制的原理及程序吧。如果有描述错误的情况,希望各位大佬指出。首先我们来看看官方手册中对极性控制的描述,其中可以发现,对于PWM极性,是通过PNPn来进行控制的。 知道极性控制寄存器后,我们再来看看单片机内部的模块图,我们可以发现,PNPn寄存器,是对应通道二选一选择器的...原创 2018-09-17 20:06:17 · 4256 阅读 · 7 评论 -
N76E003红外解码程序、电路
N76E003红外解码程序、电路红外解码和红外编码的数据一一对应,在此不再对红外编码协议过多赘述,红外编码相关知识可以看这里在N76E003单片机中,我们使用外部中断1进行读取红外信号。参照下图,进行配置,外部中断1的引脚为P17 外部中断1:中断号为2 IE = 0x84; //允许总中断中断,使能 INT1 外部中断TCON = 0x1...原创 2018-09-10 13:30:11 · 5550 阅读 · 1 评论 -
N76E003 PWM 程序及分析(边沿对齐、独立输出模式)
N76E003 包含三对( 6个PWM通道) 16位精度、可调周期和占空比的PWM输出让我们来看看六个通道的引脚分别是 可能有同学会疑问,为什么P1.5和P0.3都是PWM5,那如果要使用PWM5,该如何选择引脚呢?我们来看看芯片内部的原理图。 还是以PWM5为例:芯片内部是通过一个二选一选择器来进行引脚选择的,通过PIO05/PIO15寄存器来进行数据选择. 如果我...原创 2018-09-16 20:31:16 · 11790 阅读 · 7 评论 -
N76E003红外编码程序及NEC协议分析
N76E003红外编码程序及电路(38kHZ,NEC协议)N76E003是一款带有flash的增强型8位8051内核单片机,指令集与标准的80C51完全兼容,并且内置16M晶振,故在51上使用的红外发射程序,修改一下定时器数据(晶振不同),就可在N76E003上运行,本文重点说一下NEC红外协议,电路等。完整工程文件可以看此处由于 NEC协议需要工作在38kHZ载波上,在N76E003中我...原创 2018-09-09 22:59:11 · 6612 阅读 · 0 评论 -
N76E003 DHT11
#include "N76E003.h"#include "Common.h"#include "Delay.h"#include "SFR_Macro.h"#include "Function_define.h"#define uint unsigned int#define ucha原创 2019-01-24 19:36:39 · 867 阅读 · 0 评论 -
N76E003 低功耗(掉电模式&定时唤醒)
#include &amp;amp;quot;N76E003.h&amp;amp;quot;#include &amp;amp;quot;Common.h&amp;amp;quot;#include &amp;amp;quot;Delay.h&amp;amp;quot;#include &amp;amp;quot;SFR_Macro.h&amp;amp;qu原创 2019-01-24 16:13:05 · 6067 阅读 · 6 评论 -
N76E003 定时唤醒WKT
1、分析10KHz内部振荡器,通过WKTR寄存器控制是否启动,后进入分频器,通过WKPS进行预分频(1/1 到 1/2048),再通过RWK重载值,实现对溢出速度的控制,最后通过WKTF溢出标志触发自动唤醒定时器中断。计算公式大致如下定时时间/((Pre-scalar预分频+1)/10)=255-重载值(RWK)eg:定时1000ms,64分频,算重载值1000/((64+1)/10...原创 2019-01-24 01:34:49 · 1727 阅读 · 0 评论 -
N76E003 输入捕获
1、寄存器说明定时器2是一个16位的向上计数器,由高8位寄存器(TH2)和低8位寄存器(TL2)组成。通过配置寄存器RCMP2H和RCMP2L,设置 (T2CON.0)后,定时器2能工作在比较模式和自动重载模式下。 定时器2具有3通道输入捕获模块,可用于测量输入脉冲宽度或周期。 3通道捕获结果分别存放在寄存器C0H及 C0L, C1H 及 C1L, C2H 及 C2L中。定时器2的时钟来...原创 2019-01-13 12:30:18 · 4265 阅读 · 18 评论 -
N76E003 管脚中断
N76E003单片机的每个管脚都可用于触发中断,最多可配置八个管脚,四种触发方式(上升沿,下降沿,高电平,低电平),并且管脚中断可以使MCU从空闲模式或掉电模式唤醒。...原创 2019-01-07 15:35:41 · 8583 阅读 · 26 评论 -
三、单片机读取ID卡(EM4100的数据格式)
(一)EM4100的数据格式现在让我们来解释一下。(1)首先第一行,是9个“1”,这是EM4100固定的格式。(2)之后的D00~D03,就是第一个ID号,P0代表的是第一行的偶校验(例:0000_0/0001_1/0110_0)当不为偶数时,偶校验置1。P0-P9均为每行前四位的偶校验。(3)PC0~PC3为每列的奇校验,(例:10000000110_0记得算上第一行的“1”)当该列数......原创 2018-09-29 20:35:57 · 15236 阅读 · 0 评论 -
二、单片机读取ID卡(产生载波)
1、程序代码原创 2018-09-29 19:17:09 · 5728 阅读 · 0 评论 -
一、单片机读取ID卡(工作原理及电路)
N76E003读取ID卡程序、电路及原理分析原创 2018-09-29 16:52:44 · 30025 阅读 · 13 评论 -
N76E003双串口中断配置、问题及解决方法
N76E003双串口中断配置、问题及解决方法最近在调试N76E003串口0,串口1中断时,发现当串口0开启中断后,串口1中断无法正常工作,下面详细说说自己的办法。(我的问题原因是中断优先级造成的,取消串口1中断优先级即可解决)由下图1可以看到,N76E003这颗芯片,RXD_1、TXD_1为串口1,并且两个引脚也分别是仿真器的TICECLK、TICEDAT。所以无法在编译器中进行硬件仿真。...原创 2018-09-09 18:44:00 · 8274 阅读 · 0 评论